我們優(yōu)化改進(jìn)了這個功能的算法,現(xiàn)在能更好的識別中斷模型的參數(shù)。
當(dāng)模型訓(xùn)練過程中,遇到意外中斷或者主動中斷訓(xùn)練,當(dāng)不改變訓(xùn)練參數(shù)(epoch參數(shù)值除外),需要加載上一次中斷前保存的完整的模型,就可以繼續(xù)接著該模型再次訓(xùn)練。
例如1:
當(dāng)我模型設(shè)置Epoch值為10輪,我訓(xùn)練到5輪的時候,checkpoint-500000,這里中斷了,測試checkpoint-500000該模型能力,發(fā)現(xiàn)并未達(dá)到訓(xùn)練需求,還想接著訓(xùn)練,那么就要確保checkpoint-500000模型完整。直接開啟新的訓(xùn)練即可,此時,epoch能增大而不能減少。意思就是:原始設(shè)置的Epoch為10,想加深訓(xùn)練,可以設(shè)置為20,而不能減少為9。
例如2:
當(dāng)模型設(shè)置Epoch為10輪,10輪訓(xùn)練結(jié)束,最后的模型為:checkpoint-1000000,測試該模型并未達(dá)到理想效果,還想接著訓(xùn)練,那么,就需要把epoch設(shè)置為20或者更多(這個數(shù)值自定義),設(shè)置好了后,就可以繼續(xù)讀取checkpoint-1000000模型參數(shù)繼續(xù)訓(xùn)練,那么下一輪就會保存:checkpoint-1100000。
也就是說,新的模型算法,加載為最新的保存模型,而不是讀取完整三輪模型。想要接著訓(xùn)練,僅需要保存最新的模型即可,但是請不要更改訓(xùn)練學(xué)習(xí)率或者訓(xùn)練的JSON。JSON不能新增也不能減少。否則無法繼續(xù)訓(xùn)練。
值得注意的是:1.8.3版本之前的模型,如果接著訓(xùn)練,loss值會重新計算更迭,但是訓(xùn)練的學(xué)習(xí)內(nèi)容,模型都是完整接上,不必?fù)?dān)心模型沒有接上訓(xùn)練。
1.8.3版本之后,如果模型中斷,繼續(xù)訓(xùn)練,loss值會接上(該算法為測試版,可能會對loss值有遺漏)
內(nèi)容豐富,邏輯嚴(yán)謹(jǐn)
搞一個試試