日志提示“UnboundLocalError: local variable 'epoch'”
问题现象
使用YOLOv5算法增量训练时出现如下报错:UnboundLocalError: local variable 'epoch' referenced before assignment。
原因分析
增量训练作业设置的epochs参数有误,该问题是由YOLOv5的增量训练机制引起:
- 若第二次增量训练的epochs数值和第一次常规训练的epochs数值设置一样,则会报错。
- 若第二次增量训练的epochs数值小于第一次常规训练的epochs数值,则增量训练会出现少训练一个epoch的现象。
处理方法
第二次增量训练设置的epochs数值需要大于第一次常规训练设置的epochs数值。
举例:对一个已经完成的训练作业(假设训练了50个epochs),想要训练更多的epochs(追加30个epochs),假设上一个训练作业的输出目录为“obs://my_bucket/train_url”,则设置参数“checkpoint_url=obs://my_bucket/train_url/last.pt”,并设置参数epochs=80(如果第二次设置参数epochs=30则增量训练只会训练29个epochs)。