1
我是Python和Keras的新手,我成功構建了一個神經網絡,可以在每個Epoch後節省體重文件。但是,我希望獲得更多的粒度(我將時間序列中的圖層重量分佈可視化),並希望在每批N次後保存權重,而不是每個時期。Python/Keras - 在每N批次後保存模型重量
有沒有人有任何建議?
我是Python和Keras的新手,我成功構建了一個神經網絡,可以在每個Epoch後節省體重文件。但是,我希望獲得更多的粒度(我將時間序列中的圖層重量分佈可視化),並希望在每批N次後保存權重,而不是每個時期。Python/Keras - 在每N批次後保存模型重量
有沒有人有任何建議?
您可以創建自己的回調(https://keras.io/callbacks/)。類似:
from keras.callbacks import Callback
class WeightsSaver(Callback):
def __init__(self, model, N):
self.model = model
self.N = N
self.batch = 0
def on_batch_end(self, batch, logs={}):
if self.batch % self.N == 0:
name = 'weights%08d.h5' % self.batch
self.model.save_weights(name)
self.batch += 1
我使用self.batch
,而不是在每個曆元提供,因爲稍後可重新啓動在0 batch
參數。
然後將其添加到您的健康呼叫。例如,爲了每5批次節省重量:
model.fit(X_train, Y_train, callbacks=[WeightsSaver(model, 5)])