我正在尝试通过验证(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])`
答案 0 :(得分:0)
在此处提供解决方案(答案部分),即使该评论出现在为了社区的利益。
如果我们删除参数 Early Stopping
,则上面包含model.fit
和validation_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”,只有部分数据集 消耗后,评估将从数据集的开头开始 在每个时代。这样可以确保使用相同的验证样本 每次。