假设我有如下代码。
model = Sequential()model.add(LSTM(units = 10 input_shape = (x1, x2)))model.add(Activation('tanh'))model.compile(optimizer = 'adam', loss = 'mse')## Step 1.model.fit(X_train, Y_train, epochs = 10)
在训练模型之后,我想重置模型中的所有内容(权重和偏置)。所以我想在compile
函数之后(步骤1)恢复模型。在Keras中最快的实现方式是什么?
回答:
是否是最快的方法可能还有待商榷,但这种方法确实简单直观,可能对你的情况已经足够了:序列化初始权重,然后在需要时反序列化,并使用io.BytesIO
来避免磁盘I/O操作(以及后续的清理工作):
from io import BytesIOmodel = Sequential()model.add(LSTM(units = 10, input_shape = (x1, x2)))model.add(Activation('tanh'))model.compile(optimizer = 'adam', loss = 'mse')f = BytesIO()model.save_weights(f) # 存储权重model.fit(X_train, Y_train, epochs = 10)# [在这里对训练后的模型做任何你想做的事情]model.load_weights(f) # 重置权重