在使用服务器运行YOLO模型的过程中,时常会因为各种原因而中断,如断网、关机等情况,YOLO中给提供了一个参数 resume:意为断点训练,即可以接着之前的训练来进行训练。
具体做法
修改 resume
参数:
parser.add_argument('--resume', nargs='?', const=True, default=True, help='resume most recent training')
修改权重文件,原本的权重文件为预训练权重,如今要使用其最后一次的训练权重,如下:
parser.add_argument('--weights', type=str, default='/home/ubuntu/conda/yolov7/runs/train/exp8/weights/last.pt', help='initial weights path')
此时运行报错:
File "/home/ubuntu/anaconda3/envs/python/lib/python3.8/site-packages/torch/serialization.py", line 1033, in _legacy_load
magic_number = pickle_module.load(f, **pickle_load_args)
_pickle.UnpicklingError: STACK_GLOBAL requires str
这是数据集错误,需要将原本的cache缓存文件删除:
随后运行train.py
就OK了
至于YOLOv5的做法也如法炮制即可。