Keras回调保持跳过保存检查点的功能,声称缺少val_acc

焦虑

我将运行一些较大的模型,并尝试中间结果。

因此,我尝试在每个时期之后使用检查点来保存最佳模型。

这是我的代码:

model = Sequential()
model.add(LSTM(700, input_shape=(X_modified.shape[1], X_modified.shape[2]), return_sequences=True))
model.add(Dropout(0.2))
model.add(LSTM(700, return_sequences=True))
model.add(Dropout(0.2))
model.add(LSTM(700))
model.add(Dropout(0.2))
model.add(Dense(Y_modified.shape[1], activation='softmax'))

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

# Save the checkpoint in the /output folder
filepath = "output/text-gen-best.hdf5"

# Keep only a single checkpoint, the best over test accuracy.
checkpoint = ModelCheckpoint(filepath,
                            monitor='val_acc',
                            verbose=1,
                            save_best_only=True,
                            mode='max')
model.fit(X_modified, Y_modified, epochs=100, batch_size=50, callbacks=[checkpoint])

但是在第一个时期之后,我仍然收到警告:

/usr/local/lib/python3.6/site-packages/keras/callbacks.py:432: RuntimeWarning: Can save best model only with val_acc available, skipping.
  'skipping.' % (self.monitor), RuntimeWarning)

要添加metrics=['accuracy']到模型中还存在其他SO问题(例如,在使用预训练的VGG16模型时无法节省重量)的解决方案,但此处仍然存在错误。

Sreeram TP

您正在尝试使用以下代码检查模型

# Save the checkpoint in the /output folder
filepath = "output/text-gen-best.hdf5"

# Keep only a single checkpoint, the best over test accuracy.
checkpoint = ModelCheckpoint(filepath,
                            monitor='val_acc',
                            verbose=1,
                            save_best_only=True,
                            mode='max')

ModelCheckpoint将考虑该参数monitor来决定是否保存模型。在您的代码中是val_acc因此,如果增加,它将节省重量val_acc

现在在您适合的代码中,

model.fit(X_modified, Y_modified, epochs=100, batch_size=50, callbacks=[checkpoint])

您尚未提供任何验证数据。ModelCheckpoint无法保存权重,因为它没有monitor要检查参数。

为了进行检查,val_acc您必须提供一些验证数据,例如:

model.fit(X_modified, Y_modified, validation_data=(X_valid, y_valid), epochs=100, batch_size=50, callbacks=[checkpoint])

如果您不想出于任何原因使用验证数据并实施检查点,则必须ModelCheckpoint基于accloss类似方式更改

# Save the checkpoint in the /output folder
filepath = "output/text-gen-best.hdf5"

# Keep only a single checkpoint, the best over test accuracy.
checkpoint = ModelCheckpoint(filepath,
                            monitor='acc',
                            verbose=1,
                            save_best_only=True,
                            mode='max')

请记住,你必须改变modemin,如果你要monitorloss

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

检查val_acc饱和的回调

为什么keras跳过保存检查点?

Keras保存检查点

Keras-方法on_batch_end很慢,但是只有回调是检查点

回调函数模型检查点导致keras错误

在Keras中保存模型检查点与保存整个模型

Keras检查点未保存到Google Cloud Bucket

Tensorflow 2.0 Keras即使保存验证数据也不会保存最佳模型,但仍然给我:仅在可用val_acc的情况下才能保存最佳模型,跳过

命名TensorFlow / Keras检查点

TensorFlow检查点保存并读取

保存并加载检查点pytorch

tensorflow:仅在可用val_acc的情况下可以保存最佳模型,跳过

如何将Tensorflow Keras检查点保存到PB文件

Keras神经网络:使用检查点或save_weights保存权重?

使用 ModelCeckpoint 保存检查点后,Keras 停止训练过程

val_loss减半,但val_acc保持不变

火花流作业的可靠检查点(保持复杂状态)

如何在keras中修改ModelCheckPoint以监视val_acc和val_loss并相应地保存最佳模型?

TF / Keras错误:InputLayer不是可检查点

使用Keras进行深度学习的培训检查点

Jupyter Notebook检查点有哪些功能?

使用检查点功能而不会导致测试步骤失败

Snakemake使检查点和聚合功能正常工作

将TensorFlow检查点保存在Google Colab中

在TFSlim中加载保存的检查点时出错

保存更多检查点 Cloud ML Engine

Tensorflow:保存/恢复会话,检查点,元图

受监控的培训课程保存所有检查点

Tensorflow检查点保存数据文件