作者eri820503 (money)
看板Python
标题[问题] keras如何使用上次训练的weight继续训练
时间Wed May 2 12:03:28 2018
目前刚开始接触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") #储存权重以供下次使用
#############################################################################
不知道有没有人遇过类似的问题?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 163.26.178.150
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1525233814.A.D21.html
1F:→ pups003: 可以用fit generator 05/02 12:26
2F:→ eri820503: 谢谢,我研究看看 05/02 16:36