anaconda下面多个虚拟环境下都有这个dll文件,要么都删掉,只保留一个,要么用另一种方法:见下面
解决办法:进入anaconda安装文件夹,搜索libiomp5md.dll,以我的环境为例,出现多个这个文件,在不同的文件夹下,但是当前运行程序环境下的这个文件肯定是两个。经过对比,发现没有安装torch的虚拟环境里面是图片1:C:\ProgramData\Anaconda3\envs\Deep-Learning-master\Lib\site-packages\torch\lib,安装了torch的虚拟环境的两个位置有这个文件:图片2:C:\ProgramData\Anaconda3\envs\yolov5-master\Lib\site-packages\torch\lib和图片3:C:\ProgramData\Anaconda3\envs\yolov5-master\Library\bin
所以我删除了C:\ProgramData\Anaconda3\envs\yolov5-master\Library\bin中的libiomp5md.dll
成功解决
另一种方法:
train.py 里面 在一大箩的导入语句后面添加
import os
os.environ["KMP_DUPLICATE_LIB_OK"]="TRUE"
不要在原有的import os后面添加语句,程序会报错
而且在项目中基本上含有import os的都要添加这个语句(只是猜测,你们可以试试)因为我只加了一个文件的时候还是会报错
原文链接:
RuntimeError: CUDA out of memory. Tried to allocate 20.00 MiB (GPU 0; 2.00 GiB total capacity; 1.15
网络上常用的三种方法
方法一:
仅需减小batchsize
改文件的配置cfg的batchsize=1,一般在cfg文件下的查找batch或batchsize,将batchsize调小后,再次运行,类似于改下面
方法二 :
上述方法还没解决,不改batchsize,可以考虑下面的方法的链接
不计算梯度:
ps: 在报错的哪一行代码的上面,加上下面一行代码,不计算梯度
with torch.no_grad()
不计算梯度的方法
方法三:
释放内存:链接如下
释放内存
if hasattr(torch.cuda, 'empty_cache'):
torch.cuda.empty_cache()
ps: 在报错的那一行代码的上面,加上下面两行代码,释放无关的内存
if hasattr(torch.cuda, 'empty_cache'):
torch.cuda.empty_cache()
方法四:我的解决方案
我没用上面的方法,最主要是我是新手不知道在哪改,所以在看了好多网上的解决方案后,试了一下这种方法,可以训练了,成功解决GPU内存不足的问题
解决方法:将img-size调小
我把原本的[640,640]改为上图所示,成功解决问题
原文链接:
yaml文件中 命令后面要加空格:
weights/yolov5m.pt 这种pt文件要用官方带的,复制粘贴过来改名子即可。
\VOCData\labels 里面的txt要有内容才是正常的
txt2yolo_label.py 里面的classes = ['hand', 'foot'] 标签集合也要改改
zero-size array to reduction operation maximum which has no identity :
txt2yolo_label.py 里面的classes = ['hand', 'foot'] 标签集合也要改改,基本就是各文件classes的值都不统一
TensorBoard: Start with ‘tensorboard --logdir runs\train’, view at http://localhost:6006/ 如何访问
#解决无法显示的问题
#(直接在PyCharm下面的 Terminal 进入输入命令就可以了)
#第一步:进入训练目录
cd C:\Users\lare\Desktop\pythoncode\BaiduSyncdisk\yolov5-master\runs\train
#第二步:设置生成这种文件的目录(events.out.tfevents.1634282239.xxxxxx.7676.0),一般都在训练目录的下一个目录
tensorboard --logdir=exp几几
#第三步:直接用浏览器打开生成的网址就可以了