使用yolov5l模型训练时出现报错,但是昨天使用yolov5s模型时是可以正常训练的。
RuntimeError: Unable to find a valid cuDNN algorithm to run convolution
发生报错的原因是gpu内存占用过高,terminal输入nvidia-smi查看gpu的使用情况。
我们需要把bach_size调小,一般建议是8的倍数,内存不够用时尽量调低,此处我设置成了16。
parser.add_argument('--batch-size', type=int, default=16, help='total batch size for all GPUs, -1 for autobatch')
结果运行正常。
使用yolov5模型时,s和n模型的深度和通道层数都比较小,batch-size设置的稍大一些,gpu可以跑的动,但使用l和x模型跑的时候就不一定可以跑的动了。使用指令nvidia-smi,根据gpu的使用情况调整batch-size的大小,尽量缩短每次训练模型的时间。