基于darknet框架yolov3训练自己数据问题:
1. 问题一、CUDA Error: out of memory
需要修改所使用的模型cfg文件中的subdivision的参数。
由subdivisions=8改成subdivisions=64。
subdivision:这个参数很有意思的,它会让你的每一个batch不是一下子都丢到网络里。而是分成subdivision对应数字的份数,一份一份的跑完后,在一起打包算作完成一次iteration。这样会降低对显存的占用情况。如果设置这个参数为1的话就是一次性把所有batch的图片都丢到网络里,如果为2的话就是一次丢一半。
如果修改完subdivision后还是显示内存超限,可以修改所使用模型cfg文件中random=1修改为random=0
当random=1则打开随机多尺度训练,为0则关闭。
如果为1,每次迭代图片大小随机从320到608,步长为32;如果为0,每次训练大小与输入大小一致;
★★ 提示:当打开随机多尺度训练时,前面设置的网络输入尺寸width和height其实就不起作用了,width会在320到608之间随机取值,且width=height,每10轮随机改变一次,一般建议可以根据自己需要修改随机尺度训练的范围,这样可以增大batch。
持续更新中。。。。。