CV深度学习项目调试开发过程中报错记录【持续更新】

1、加载读取本地数据集报错:can't open/read file: check file path/integrity

can't open/read file: check file path/integrity

我排查定位到问题图片后分析出来的原因就是图片的命名中出现一些特殊的字符或者是无法被解析的字符,连续两个下划线也是不可以的比如我的就是"ad__name.jpg",这样的就是错误的,可以对自己的文件夹中的图像数据批量重命名处理即可。

2、导入模块报错:ImportError: cannot import name ‘get_num_classes’ from ‘torchmetrics.utilities.data’

ImportError: cannot import name ‘get_num_classes’ from ‘torchmetrics.utilities.data’

根据报错指示进行查看,发现报错位置是torchmetrics模块,大概率是安装的torchmetrics版本与代码要求的版本不一致。
这里千万不要手欠去修改源码
正确解决方案:更换torchmetrics版本为0.5版本。

pip install torchmetrics==0.5

3、模型转化onnx文件报错:AttributeError: 'Upsample' object has no attribute 'recompute_scale_factor'

AttributeError: 'Upsample' object has no attribute 'recompute_scale_factor'

CV深度学习项目调试开发过程中报错记录【持续更新】_第1张图片

报错原因是 由于torch的版本原因造成的,可以降级安装Pytorch 1.10以下

# CUDA 10.2
conda install pytorch==1.9.0 torchvision==0.10.0 torchaudio==0.9.0 cudatoolkit=10.2 -c pytorch

# CUDA 11.3
conda install pytorch==1.9.0 torchvision==0.10.0 torchaudio==0.9.0 cudatoolkit=11.3 -c pytorch -c conda-forge

# CPU Only
conda install pytorch==1.9.0 torchvision==0.10.0 torchaudio==0.9.0 cpuonly -c pytorch

如果不想修改PyTorch版本的话也可以修改已经安装的源码文件,如下所示:

CV深度学习项目调试开发过程中报错记录【持续更新】_第2张图片

修改Unsample类下的forward方法,修改如下:

CV深度学习项目调试开发过程中报错记录【持续更新】_第3张图片

 我把对应代码粘贴出来:

    def forward(self, input: Tensor) -> Tensor:
        try:
            return F.interpolate(input, self.size, self.scale_factor, self.mode, self.align_corners,
                   recompute_scale_factor=self.recompute_scale_factor)
        except:
            return F.interpolate(input, self.size, self.scale_factor, self.mode, self.align_corners)
       

4、指定CPU模式训练模型报错:DefaultCPUAllocator: not enough memory: you tried to allocate 5939200 bytes

CV深度学习项目调试开发过程中报错记录【持续更新】_第4张图片

这个报错很离奇,我全程盯着电脑的任务管理器中CPU的占用率,如下:

CV深度学习项目调试开发过程中报错记录【持续更新】_第5张图片

 明明距离40GB还差得很远就直接报错了,显示内存不足,这个就很离奇,后来想到了在windows环境下多进程加载数据集的时候报错的问题就想着排查一下dataLoader模块。找到之后把num_workers修改为0,如下所示:

CV深度学习项目调试开发过程中报错记录【持续更新】_第6张图片

 冲洗执行训练代码果然没有报错了,对这个错误还是不理解就继续深入查资料研究,最终找到了一个stackoverflow里面的答案,如下所示:

CV深度学习项目调试开发过程中报错记录【持续更新】_第7张图片

 意思就是:很可能每个线程都试图分配 5939200 bytes,因此很快就会填满你的 RAM并导致错误,这就明白了错误产生的原因了,不过还是得说,torch这个dataLoader在windows环境下的并发问题真的很大。

5、windows 安装pycocotools报错ERROR: ERROR: Could not build wheels for pycocotools, which is required to install pyproject.toml-based projects

    最开始看到会觉得是很莫名其妙的报错,感觉仅仅是装个python的库怎么会跟pyproject.toml-based扯上关系了,好在解决办法比较简单,如下:

pip install pycocotools-windows -i https://pypi.tuna.tsinghua.edu.cn/simple

6、安装第三方模块时报错: Microsoft Visual C++ 14.0 or greater is required. Get it with "Microsoft C++ Build Tools"

在Windows系统上使用pip安装一些软件时(如fasttext、scrapy等),会出现下面这样的问题

error: Microsoft Visual C++ 14.0 or greater is required. Get it with "Microsoft C++ Build Tools": https://visualstudio.microsoft.com/visual-cpp-build-tools/
主要是和Windows系统本身相关,如果按照错误提示的信息来做,那么会引导安装Visual Studio。

我这里推荐一篇文章可以解决,在这里。

7、使用pathlib模块出现 NotImplementedError: cannot instantiate 'PosixPath' on your system 路径问题报错

解决办法是定位到自己python版本安装目录下的Lib/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

8、yolov5+biFPN项目训练启动报错:AttributeError: module ‘seaborn‘ has no attribute ‘histplot‘

    这个错误本质上不是项目的问题,而是自己环境中安装的seaborn模块版本过低造车的

    解决办法就是升级seaborn模块即可。

python3 -m pip install -U seaborn -i http://pypi.douban.com/simple --trusted-host pypi.douban.com

你可能感兴趣的:(软件安装,机器学习,深度学习,开发语言)