前言
由于实验室不准晚上使用电脑,双系统电脑有时候会莫名其妙关机从Windows去了Ubuntu系统…总之还有各种不得已中断实验的原因。所以使用断点训练继续之前中断的实验室很有必要的
实验中断
python train.py --img 640 --batch 6 --epochs 100 --data ./data/mask.yaml --cfg ./models/mask_yolov5l.yaml --weights ./weights/yolov5l.pt --device 0
可以用这种方式设置参数,也可以直接修改train.py 的默认参数
此时保存的最终的权重文件为last.pt,看模型后面的时间戳就行。
断点训练
将train.py中的resume参数设置成true,然后把权重文件设置为中断的权重文件路径,其他的参数继续用之前训练的默认的就行。
parser.add_argument('--resume', nargs='?', const=True, default=True, help='resume most recent training')
parser.add_argument('--weights', type=str, default='runs/train/exp9/weights/last.pt', help='initial weights path')
此时实验继续上次中断的地方
补充小实验
如果将训练完10个epochs的权重文件当成中断文件继续训练会报错,报错说此权重文件已经训练完成不可继续训练。所以断点训练模式适合于Epoch未完成的权重文件,这个跟基于迁移学习训练权重文件是差别的。