尽早停止使用验证回调

时间:2020-07-27 06:41:43

标签: python tensorflow keras tf.keras

我正在尝试通过验证(val_loss)进行回调,但未进行验证。该警告显示为“ WARNING:tensorflow:以指标val_loss为条件的提前停止,该指标不可用。可用指标为:损失,准确性”

`check=callbacks.EarlyStopping(monitor='val_accuracy', mode='auto',patience=2,verbose=1)
 
 history = model.fit(train_dataset,
                          steps_per_epoch=163,
                          epochs=10,
                          validation_data=val_dataset,
                          validation_steps=624,
                          callbacks = [check])`

1 个答案:

答案 0 :(得分:0)

在此处提供解决方案(答案部分),即使该评论出现在为了社区的利益

如果我们删除参数 Early Stopping ,则上面包含model.fitvalidation_steps的代码会很好地工作。

工作代码如下所示:

check=callbacks.EarlyStopping(monitor='val_accuracy', mode='auto',patience=2,verbose=1)
 

history = model.fit(train_dataset,
                              steps_per_epoch=163,
                              epochs=10,
                              validation_data=val_dataset,
                              callbacks = [check])

从与参数validation_steps对应的Tensorflow Documentation可以理解原因,如下所示:

validation_steps :仅在提供validation_data且为tf.data数据集时才相关。总步骤数(批样品) 在每个结尾处执行验证时在停止之前绘制 时代。如果“ validation_steps”为“无”,则验证将一直持续到 validation_data数据集已用尽。在无限的情况下 重复的数据集,将陷入无限循环。如果 指定了“ validation_steps”,只有部分数据集 消耗后,评估将从数据集的开头开始 在每个时代。这样可以确保使用相同的验证样本 每次。