[問題] keras如何使用上次訓練的weight繼續訓練

作者: eri820503 (snoopyahoo)   2018-05-02 12:03:28
目前剛開始接觸keras,
想問在硬體設備限制下,
該如何使用上次訓練出來的權重,進行下一次的訓練?
我將情況分成3種,
第1、2種是比較常見的作法,看很多標準寫法大概都像這樣,
第3種狀況是我自己的想法,我把minibatch跟epoch改成用迴圈控制,
這樣不用一次讀全部資料進來存在電腦記憶體,
而是改成讀一部分(要的minibatch)進行訓練。
但不知道這樣訓練時所使用到的權重,
是上次訓練所儲存的,還是重新random的?
因為目前試驗起來,比較像是重新random的,
不知道該如何改成使用上次的權重?
#############################################################################
1.電腦記憶體足夠、顯卡記憶體足夠
read_csv("全部資料") #讀取所有資料
model.fit(data,minibatch=256,epochs=100) #較大minibatch
2.電腦記憶體足夠、顯卡記憶體不足
read_csv("全部資料") #讀取所有資料
model.fit(data,minibatch=64,epochs=100) #較小minibatch
3.電腦記憶體不足、顯卡記憶體不足
for epoch times in range(100):
for minibatch_time in range(64/資料數):
read_csv("部分資料") #改成讀取部分資料
.
.
.
model.load_weights("weight.h5") #使用上次訓練出來的權重
model.fit(data,epochs=1) #使用讀取進來的資料進行訓練
model.save_weights("weight.h5") #儲存權重以供下次使用
#############################################################################
不知道有沒有人遇過類似的問題?
作者: pups003 (岡本)   2018-05-02 12:26:00
可以用fit generator
作者: eri820503 (snoopyahoo)   2018-05-02 16:36:00
謝謝,我研究看看

Links booklink

Contact Us: admin [ a t ] ucptt.com