在喀拉拉邦保存最佳模型
deep-learning
keras
neural-network
5
0

在keras中训练模型时使用以下代码

from keras.callbacks import EarlyStopping

model = Sequential()
model.add(Dense(100, activation='relu', input_shape = input_shape))
model.add(Dense(1))

model_2.compile(optimizer='adam', loss='mean_squared_error', metrics=['accuracy'])


model.fit(X, y, epochs=15, validation_split=0.4, callbacks=[early_stopping_monitor], verbose=False)

model.predict(X_test)

但是最近,我想保存受过最佳训练的模型,因为我正在训练的数据在“高val_loss vs epochs”图中出现了很多峰值,并且我想使用该模型中迄今为止最好的一种。

有什么方法或功能可以帮助您吗?

参考资料:
Stack Overflow
收藏
评论
共 2 个回答
高赞 时间 活跃

我猜model_2.compile是一个错字。如果您要将最佳模型wrt保存到val_losses,这应该会有所帮助-

checkpoint = ModelCheckpoint('model-{epoch:03d}-{acc:03f}-{val_acc:03f}.h5', verbose=1, monitor='val_loss',save_best_only=True, mode='auto')  

model.compile(optimizer='adam', loss='mean_squared_error', metrics=['accuracy'])

model.fit(X, y, epochs=15, validation_split=0.4, callbacks=[checkpoint], verbose=False)
收藏
评论

Keras文档中需要EarlyStoppingModelCheckpoint

您应该在ModelCheckpoint中设置save_best_only=True 。如果需要任何其他调整,则微不足道。

为了帮助您更多,您可以在Kaggle上查看用法。


如果上面的Kaggle示例链接不可用,请在此处添加代码:

model = getModel()
model.summary()

batch_size = 32

earlyStopping = EarlyStopping(monitor='val_loss', patience=10, verbose=0, mode='min')
mcp_save = ModelCheckpoint('.mdl_wts.hdf5', save_best_only=True, monitor='val_loss', mode='min')
reduce_lr_loss = ReduceLROnPlateau(monitor='val_loss', factor=0.1, patience=7, verbose=1, epsilon=1e-4, mode='min')

model.fit(Xtr_more, Ytr_more, batch_size=batch_size, epochs=50, verbose=0, callbacks=[earlyStopping, mcp_save, reduce_lr_loss], validation_split=0.25)
收藏
评论
新手导航
  • 社区规范
  • 提出问题
  • 进行投票
  • 个人资料
  • 优化问题
  • 回答问题

关于我们

常见问题

内容许可

联系我们

@2020 AskGo
京ICP备20001863号