[问题] 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