问题描述

在使用预训练模型的时候,加载了官方提供的预训练模型出现以下问题:

  File "D:\ImageClassification\BiFormer_Demo\train.py", line 196, in <module>
    model_ft = biformer_tiny(pretrained=True)
  File "D:\ImageClassification\BiFormer_Demo\models\biformer.py", line 333, in biformer_tiny
    checkpoint = torch.hub.load_state_dict_from_url(url=url, map_location="cpu", check_hash=True, file_name=f"{model_key}.pth")
  File "D:\Users\wh109\anaconda3\lib\site-packages\torch\hub.py", line 731, in load_state_dict_from_url
    return torch.load(cached_file, map_location=map_location)
  File "D:\Users\wh109\anaconda3\lib\site-packages\torch\serialization.py", line 712, in load
    return _load(opened_zipfile, map_location, pickle_module, **pickle_load_args)
  File "D:\Users\wh109\anaconda3\lib\site-packages\torch\serialization.py", line 1049, in _load
    result = unpickler.load()
  File "D:\Users\wh109\anaconda3\lib\pathlib.py", line 1084, in __new__
    raise NotImplementedError("cannot instantiate %r on your system"
NotImplementedError: cannot instantiate 'PosixPath' on your system

本地的电脑是Win11环境。
在这里插入图片描述

问题原因

通过在网上搜索同类的问题分析:应该是PosixPath不支持Window的路径。所以需要做修改,来适应Win11环境。

解决方法

点击报错的脚本pathlib.py,将下面的代码:

    def __new__(cls, *args, **kwargs):
        if cls is Path:
            cls = WindowsPath if os.name == 'nt' else PosixPath
        self = cls._from_parts(args, init=False)
        if not self._flavour.is_supported:
            raise NotImplementedError("cannot instantiate %r on your system"
                                      % (cls.__name__,))
        self._init()
        return self

在这里插入图片描述
修改为:

#修改后    
def __new__(cls, *args, **kwargs):
        if cls is Path:
            # cls = WindowsPath if os.name == 'nt' else PosixPath
            cls = WindowsPath
        self = cls._from_parts(args, init=False)
        # Windows doesn't support PosixPath
        if type(self) == PosixPath:
            cls = WindowsPath
            self = cls._from_parts(args, init=False)
        if not self._flavour.is_supported:
            raise NotImplementedError("cannot instantiate %r on your system"
                                      % (cls.__name__,))
        self._init()
        return self

在这里插入图片描述

然后,就可以正常运行了。

总结

出现这个问题,主要是Win11的兼容问题。如果有条件还是使用Ubuntu系统。

在这里插入图片描述

专栏目录:神经网络精讲与实战

这篇文章,是对专栏的总目录,方便大家查看文章。这个专栏我计划整理一些经典常用的主干网络模型,对其进行讲解和实战。由浅入深,逐步增加深度,让大家更容易接受。

PDF版的文章和实战代码以及数据集,我会放到网盘上,大家在文章的末尾可以看到。

AlexNet

第一篇 AlexNet——论文翻译

第二篇 AlexNet——模型精讲

第三篇 制作数据集

第四篇 AlexNet——网络实战
在这里插入图片描述

VGGNet

第五篇 VGGNet——论文翻译

第六篇 VGGNet——模型精讲

第七篇 图像分类的评价指标

第八篇 VGGNet——网络实战
在这里插入图片描述

GoogLeNet

第九篇 GoogLeNet——论文翻译

第十篇 GoogLeNet——模型精讲

第十一篇 绘图matplotlib.pyplot的使用

第十二篇 GoogLeNet——网络实战
在这里插入图片描述

Inception V2——V4

第十三篇 Inception V2——论文翻译

第十四篇 Inception V3——论文翻译

第十五篇 Inception V4——论文翻译

第十六篇 Inception V2、Inception V3、Inception V4模型详解

第十七篇 PyTorch学习率调整策略

第十八篇 InceptionV3实战

ResNet

第十九篇 ResNet——论文翻译

第二十篇 ResNet——模型讲解

第二十一篇 数据增强

第二十二篇 ResNet实战
在这里插入图片描述

DenseNet

第二十三篇 DenseNet——论文翻译

第二十四篇 DenseNet——模型讲解

第二十五篇 argparse模块

第二十六篇 DenseNet实战

在这里插入图片描述

SE-ResNet

第二十七篇 SeNet——论文翻译

第二十八篇 SeNet模型解析

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐