(一)训练自己的yolov5-lite
(1)anaconda环境:
问题:我的annconda是装在D盘的,但是在使用cmd或者conda prompt去创建一个新的conda环境时候会默认创建到c盘中,因为conda的虚拟环境一般很大所以我不想放在c盘,倒腾很久,比如用pycharm创建在E盘中,出现的新问题是创建出来的新环境只有地址没有环境名称。
解决办法:a:首先关于用cmd或者conda prompt创建环境默认在c盘的情况。
输入
conda info
可以查看到conda的一些配置信息
可以看到默认的环境是第一个,这是我改过的,正常应该是第二个路径为默认的。
修改路径:在c盘中找到名为.condarc的文件并用记事本打开
输入
envs_dirs:
- D://Anaconda//envs
建议把环境就放在conda环境中!!不要分开了
b:使用conda prompt或者cmd创建conda环境时候出现了在pycharm使用时,python interpret选用conda环境,选择自己创建的新环境即(D://Anaconda//envs )时找不到python.exe文件,只有一个文件夹而且啥东西都没有,如图所示
解决办法:在使用cmd或者conda prompt创建环境时候不能简单的使用
conda create --name env_name
而应该使用
conda cteate -n env_name python=3.7
python的版本应该根据自己电脑上的python而定
c:完整的创建conda环境流程和部署到pycharm上为:
如果是cmd操作的话应该先输入
conda
如果conda prompt或者pycharm terminal可以省去。
1、列出conda管理的所有环境*
conda env list
2、创建conda环境
conda cteate -n env_name python=3.7
3、查看有哪些conda环境
conda env list
4、进入conda环境
conda activate env_name
然后就可以下载需要的包了。
有些环境中可能在下载requirement时下载了一些不匹配的包,需要移除可以使用
conda remove package_name
5、进入pycharm ->python interpreter->add interpreter->conda environment_>use existing environment
应用就行了
(2)YOLOv5-lite训练出现的问题
a:训练模型的搭建
参考:链接: link
补充一点就最后在配置 train.py文件中的参数时,关于预训练权重需要自己设置。可以在github上下载权重然后创建一个weights文件夹,将权重放在里面
b:使用GPU训练
在配置环境时requirments中的torch和torchvision不是gpu版本不能调用GPU,表现为会报错:AssertionError: CUDA unavailable, invalid device gpu requested。可以新建一个测试python文件
import torch
print(torch.cuda.is_available)
运行看输出是否是False。
解决办法:
1、查看自己cuda的版本号,输入cmd指令
nvidia-smi
2、到pytorch官网下载对应的版本链接: link。
3、在pytorch上拿到指令后下载到虚拟环境中
4、最后打开yolov5-lite中的requirement.txt文件,将torch和torchvison删掉
5、运行train.py就可以运行啦
c:运行报错
1、OSError: [WinError 1455]页面文件太小,无法完成操作
解决办法:链接: link
建议在设置空间大小时候设大一点,我最开始按照上面设置总是报这个错。同时可以参考
链接: link
2、OMP: Error #15: Initializing libiomp5md.dll, but found libiomp5md.dll already initialized
解决办法:将下面代码段复制粘贴到train.py的顶部
import os
os.environ["KMP_DUPLICATE_LIB_OK"]="TRUE"
3、RuntimeError: result type Float can‘t be cast to the desired output type long int
解决办法:链接: link
4、TypeError: No loop matching the specified signature and casting was found for ufunc greater
解决办法:更换numpy,很大一部分原因是因为python包的版本不兼容引起的。查看conda 环境中的包
conda list
删除环境中的numpy并下载较低版本,实例中的版本可以解决报错
conda remove numpy
conda install numpy==1.23.5