按照这篇文章来训练的https://blog.csdn.net/didiaopao/article/details/119954291
浅浅记录一下遇到的一些磕磕绊绊以及解决方法!
1、安装依赖项
按照步骤来,输入命令pip install -r requirements.txt,会报错说找不到requirements.txt这个文件,可以从终端进入文件所在位置,再输入一遍命令即可:
打开anoconda prompt,查看已有的虚拟环境:
conda info --envs
进入虚拟环境:
activate TF2_1
通过cd+路径(requirements.txt文件的位置)进入requirements.txt文件所在文件夹,再执行
pip install -r requirements.txt的命令就可以啦。
2、跑demo(测试虚拟环境的可行性)
参考文章https://blog.csdn.net/Kefenggewu_/article/details/115840019
①运行detect.py,报错如下:
AttributeError: Can't get attribute 'SPPF' on <module 'models.common'……
参考文章https://blog.csdn.net/weixin_50920579/article/details/121307820
按照文章说的,把代码复制到common.py,注意把import那句挪到最前面去。
②继续运行detect.py,报错如下:
AttributeError: ‘Upsample’ object has no attribute ‘recompute_scale_factor’
参考文章https://blog.csdn.net/weixin_43401024/article/details/124428432
可能修改的行数对不上,对应一下代码内容就好。
③再次运行detect.py,报错如下:
RuntimeError: The size of tensor a (60) must match the size of tensor b (56) at non-singleton dimens
参考文章https://blog.csdn.net/qq_43108889/article/details/123910494
工程文件夹里的yolov5s.pt文件和data文件夹在同一级。
最后运行detect.py就成功啦!
运行结果如下:(运行的图片在run文件夹里面)
3、数据集处理及文件配置
数据集部分和第三部分的3.1修改数据配置文件那里,参考了Yolov5训练自己的数据集(详细完整版)里的第四部分,划分数据集以及配置文件修改。
这个需要修改的部分就按照这样改:
PS:VOCDData这个文件夹是自己创建的,具体过程可以看一下文章里第二部分,准备工作。
4、模型训练
模型训练部分看回开头链接那篇文章~
修改好train.py文件,可以开始运行了。
我是在anoconda prompt里运行的,激活虚拟环境,进入到train.py目录,输入python train.py,刚开始运行的时候会出现报错:
AssertionError: train: No labels in……
解决方法参考AssertionError: train: No labels(已解决,亲测有效)
最后,运行过程可以打开另一个prompt,激活虚拟环境,输入nvidia-smi -l 1,就可以查看动态gpu占用情况,如果利用率太低了,可以调高一下train.py里的batch-size参数,大概到百分之六七八十就差不多可以了,batch-size参数按照2的幂次方进行设置。
PS:nvidia-smi -l 1这条命令会一直刷新下去(每隔一秒刷新一次),如果想停止,可以ctrl+c终止。