我可以使用更多训练和测试图像从最终重量继续训练吗?
Can I continue to training from final .weight with more train and test images?
我用 darknet yolov3 训练了我的自定义对象检测,直到平均损失降低到 0.06,但现在我想用 more 训练和测试图像来训练它(可能 还删除了 一些图像文件)。我可以执行这些步骤并继续使用最终的 .weights 文件进行训练,还是应该从头开始?
是的,您可以使用当前训练的模型(.weights 文件)作为新训练课程的预训练模型。例如,如果您使用 AlexeyAB repository,您可以通过这样的命令训练您的模型:
darknet.exe detector train data/obj.data yolo-obj.cfg darknet53.conv.74
其中 darknet53.conv.74
是预训练模型。
在新的训练课程中,您可以添加或删除图像。但是,基本配置应该是正确的(如类的数量等)。
根据我提到的页面:
in the original repository original repository the
weights-file is saved only once every 10 000 iterations
打开.cfg,发现max_batches
代码可能在第22行,设置较大的值:
max_batches = 500200
max_batches与tranning迭代相同
如果你恢复,你需要指定更多的纪元。例如,如果你训练到 300/300,那么 resume 也会训练到 300(从 300 开始),除非你指定更多的 epochs..
python train.py --简历
您可以从之前保存的自定义模型权重中恢复训练。
使用“yolov3_custom_last.weights”而不是预训练的默认权重。
如果您发现恢复存在一些问题,请尝试更改批量大小。
这应该可以工作并使用新的图像集恢复您的模型训练:)
如果您刚刚修改了数据集,但对更改模型架构不感兴趣,可以直接使用AlexeyAB/darknet中的DarkNet从之前保存的模型中恢复。例如,
darknet.exe detector train cfg/obj.data cfg/yolov3.cfg yolov3_weights_last.weights -clear -map
clear
标志将重置保存在权重中的迭代,这适用于数据集更改的情况。那是因为学习率通常取决于迭代次数,您可能不想更改配置。
我用 darknet yolov3 训练了我的自定义对象检测,直到平均损失降低到 0.06,但现在我想用 more 训练和测试图像来训练它(可能 还删除了 一些图像文件)。我可以执行这些步骤并继续使用最终的 .weights 文件进行训练,还是应该从头开始?
是的,您可以使用当前训练的模型(.weights 文件)作为新训练课程的预训练模型。例如,如果您使用 AlexeyAB repository,您可以通过这样的命令训练您的模型:
darknet.exe detector train data/obj.data yolo-obj.cfg darknet53.conv.74
其中 darknet53.conv.74
是预训练模型。
在新的训练课程中,您可以添加或删除图像。但是,基本配置应该是正确的(如类的数量等)。
根据我提到的页面:
in the original repository original repository the weights-file is saved only once every 10 000 iterations
打开.cfg,发现max_batches
代码可能在第22行,设置较大的值:
max_batches = 500200
max_batches与tranning迭代相同
如果你恢复,你需要指定更多的纪元。例如,如果你训练到 300/300,那么 resume 也会训练到 300(从 300 开始),除非你指定更多的 epochs..
python train.py --简历
您可以从之前保存的自定义模型权重中恢复训练。
使用“yolov3_custom_last.weights”而不是预训练的默认权重。
如果您发现恢复存在一些问题,请尝试更改批量大小。
这应该可以工作并使用新的图像集恢复您的模型训练:)
如果您刚刚修改了数据集,但对更改模型架构不感兴趣,可以直接使用AlexeyAB/darknet中的DarkNet从之前保存的模型中恢复。例如,
darknet.exe detector train cfg/obj.data cfg/yolov3.cfg yolov3_weights_last.weights -clear -map
clear
标志将重置保存在权重中的迭代,这适用于数据集更改的情况。那是因为学习率通常取决于迭代次数,您可能不想更改配置。