在运行yolo时的一些报错及解决方法

Pytorch虚拟环境简介

Torch是一个用于深度学习的=数学计算库,而Pytorch则是一个基于Torch的Python机器学习库,可看作其提供了Torch应用于Python的接口。而搭建Pytorch虚拟环境,通俗地讲,就是搭建一个包含了Pytorch的相关包的Python解释器的环境,即是专门用于处理基于Python的深度学习的问题的环境。

虚拟环境

它是一个虚拟化的概念,从电脑独立开辟出来的环境。通俗的来讲,虚拟环境就是借助虚拟机来把一部分内容独立出来,我们把这部分独立出来的东西称作“容器”,在这个容器中,我们可以只安装我们需要的依赖包,各个容器之间互相隔离,互不影响

虚拟环境的作用

在一些项目开发中,我们需要一些项目的框架,但是可能每个项目使用的框架并不一样,或使用框架的版本不一样,这样需要我们根据需求不断的更新或卸载相应的库。这样显然会非常麻烦,大大降低工作的效率,而虚拟环境则很好的解决了这个问题,我们可以将不同框架分别安装在不同的环境中,当需要时只需要我们切换环境就可以了

————————————————

先进入pytorch环境的话可以通过cmd,输入conda env list,之后查看所想进入的环境名,输入conda activate xxx即可

问题1:ModuleNotFoundError: No module named ‘tensorboard‘

解决方法:在pytorch环境下conda install -c conda-forge tensorboard,#由于pytorch本身不自带tensorboard包,一般这样报错都是由于未安装tensorboard包导致的。

#可以通过pip 加载清华镜像源进行安装

sudo pip install  -i https://mirrors.aliyun.com/pypi/simple/ tensorboard

如果正确安装tensorboard之后,重新运行代码,还是报错找不到在torch.utils.tensorboard中找不到SummaryWriter该怎么办。

别着急,因为SummaryWriter是存在于tensorboardX(其作为tensorboard的子模块)因此同样通过pip进行安装:

sudo pip install  -i https://mirrors.aliyun.com/pypi/simple/ tensorboardX

如果正确安装tensorboardX依旧找不到SummaryWriter

请将报错的:

        from torch.utils.tensorboard import SummaryWriter

改为:    

        from tensorboardX import SummaryWriter

问题2:AttributeError: module 'distutils' has no attribute 'version'

解决方法:在pytorch环境下pip install setuptools==59.5.0

问题3:ModuleNotFoundError: No module named 'pandas'(一开始也有几个这种类似的问题,但是当时忘记记录了,不过都很简单)

解决方法:回溯到问题处,然后鼠标瞄住,点安装即可

问题4:ModuleNotFoundError: No module named 'cv2'

解决方法:安装opencv

问题5:ImportError: No module named 'seaborn'

解决方法:conda install seaborn

问题6:ModuleNotFoundError: No module named 'scipy'

解决方法:鼠标瞄住,然后点击安装

问题7:requirements: tensorboard>=2.4.1 not found and is required by YOLOv5, attempting auto-update...

解决方法:手动下载,pip install tensorboard==2.4.1

后续运行train.py即可

问题8:由于自己瞎搞了点,报错subprocess.CalledProcessError: Command ‘pip install ‘google-auth<2,>=1.6.3‘‘ returned non-zero exit

解决方法:从解释器设置中安装了google-auth1.33.0就好了,应该也可以在对应环境下pip install google-auth==1.33.0或者conda install google-auth==1.33.0

tensorboardX --logdir=runs

问题9:虽然在运行时可以查看它的输出效果,但是我想通过tensorboard来输出它的训练可视化,通过在pytorchtest的虚拟环境下输入命令tensorboard --logdir=runs,会报错,显示tensorboard ValueError: Duplicate plugins for name projector(这个的原因好像是因为tensorboard有重复导致的),但是我删了D:\Anaconda3\Lib\site-packages里面的对应的tensorboardxxx.dist.info后此错误消失。但是对应于train.py的训练就会报错,报错原因是tensorboard版本的原因。相当于房子漏雨,补好了一处另一处又坏了,不能同时把问题给解决掉。

解决方案:问题原因仍然是因为环境中安装了多个tensorboard造成了冲突,通过下面网站的脚本文件可以检测系统中的环境中是否按抓angle多个版本的tensorboard,会根据结果提示怎么解决

https://raw.githubusercontent.com/tensorflow/tensorboard/master/tensorboard/tools/diagnose_tensorboard.py

然后我执行了一次pip uninstall tb-nightly tensorboard,后面我看到上面显示成功卸载了tensorboard-2.11.0后就没再执行其他操作,因为我之前安装了tensorboard2.4.1,所以就发现了肯定是这个2.11.0导致的多版本。然后我就去tensorboard --logdir=F:\yolov5-5.0\runs(注意此处最好是绝对路径,而且不能带中文,不然页面可能会显示加载不出来内容)

问题10:我在训练完成后查看运行后生成的训练相关的文件时,发现一些图标不能把类别的名称正常的显示出来,只有小方框

解决方案:

from pylab import mpl

# 设置显示中文字体

mpl.rcParams["font.sans-serif"] = ["SimHei"]

# 设置正常显示符号

mpl.rcParams["axes.unicode_minus"] = False