恢复训练
对于训练一个新的YOLO模型或者是跑原模型,在训练过程中总会遇到误触或是异常操作导致训练终止,肯定不想重新开始训练,这样操作:
首先,找到刚刚跑完异常结束的那个训练后的结果保存处,一般是在runs\detect\train..
里边有个weight文件夹,就是保存训练过程中的权重文件,我们复制 last.pt 的绝对路径,把他作为下次训练的加载权重,进行训练就可以续上上次没跑完的实验
其次,还需要修改如下:
在train文件中将刚刚复制好的权重绝对路径,修改为你的训练加载权重
if __name__ == '__main__':
# 修改后的模型配置文件路径
model_config = r'D:\CVproject\ultralytics-main\ultralytics\cfg\models\v8\new\yolov8.yaml'
# 数据集配置文件路径
data_config ="D:/CVproject/ultralytics-main/datasets/new_COCO128.yaml"
# 创建并初始化YOLOv8模型
model = YOLO(model_config).train(data=data_config)
metrics = model.val()
将其中的
model_config = r'D:\CVproject\ultralytics-main\ultralytics\cfg\models\v8\new\yolov8_LAST_Guass.yaml'
修改为:路径前加个r 可以防止绝对路径与电脑编程器保持一致
model_config = r'D:\CVproject\ultralytics-main\runs\detect\train2\weights\last.pt'
最后在ultralytics\engine\trainer中:
找到def check_resume(self):
修改其中的resume = self.args.resume
改为: resume= r'D:\CVproject\ultralytics-main\runs\detect\train2\weights\last.pt'
并在 def resume_training(self, ckpt):
第一行添加:
ckpt = torch.load(r 'D:\CVproject\ultralytics-main\runs\detect\train2\weights\last.pt ‘ )
这样就可以继续训练了
训练过程中,修改训练周期
先终止训练
找到ultralytics/cfg/default.yaml文件,打开修改其中的
epochs: 300 # (int) number of epochs to train for
为你想要的周期,并修改ultralytics\engine\trainer中的
self.epochs = self.args.epochs
修改为
self.epochs=300(你想增加或是减少的周期)
最后!!!!
一定在按照上面的恢复训练去修改,才能恢复上次的训练,继续按照新的训练周期去训练