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