我们优化改进了这个功能的算法,现在能更好的识别中断模型的参数。
当模型训练过程中,遇到意外中断或者主动中断训练,当不改变训练参数(epoch参数值除外),需要加载上一次中断前保存的完整的模型,就可以继续接着该模型再次训练。
例如1:
当我模型设置Epoch值为10轮,我训练到5轮的时候,checkpoint-500000,这里中断了,测试checkpoint-500000该模型能力,发现并未达到训练需求,还想接着训练,那么就要确保checkpoint-500000模型完整。直接开启新的训练即可,此时,epoch能增大而不能减少。意思就是:原始设置的Epoch为10,想加深训练,可以设置为20,而不能减少为9。
例如2:
当模型设置Epoch为10轮,10轮训练结束,最后的模型为:checkpoint-1000000,测试该模型并未达到理想效果,还想接着训练,那么,就需要把epoch设置为20或者更多(这个数值自定义),设置好了后,就可以继续读取checkpoint-1000000模型参数继续训练,那么下一轮就会保存:checkpoint-1100000。
也就是说,新的模型算法,加载为最新的保存模型,而不是读取完整三轮模型。想要接着训练,仅需要保存最新的模型即可,但是请不要更改训练学习率或者训练的JSON。JSON不能新增也不能减少。否则无法继续训练。
值得注意的是:1.8.3版本之前的模型,如果接着训练,loss值会重新计算更迭,但是训练的学习内容,模型都是完整接上,不必担心模型没有接上训练。
1.8.3版本之后,如果模型中断,继续训练,loss值会接上(该算法为测试版,可能会对loss值有遗漏)