Python 提前停止使用验证回调
我试图用验证(val_loss)回调,但验证没有发生。此警告显示为“警告:tensorflow:根据不可用的度量值Python 提前停止使用验证回调,python,tensorflow,keras,tf.keras,Python,Tensorflow,Keras,Tf.keras,我试图用验证(val_loss)回调,但验证没有发生。此警告显示为“警告:tensorflow:根据不可用的度量值val_loss提前停止。可用度量值为:损失、精度” 在此处提供解决方案(答案部分),即使该解决方案出现在评论部分中,也是为了社区的利益 上述代码包括提前停止和model.fit如果我们删除参数,验证\u步骤就可以正常工作 工作代码如下所示: check=callbacks.EarlyStopping(monitor='val_accuracy', mode='auto',patie
val_loss
提前停止。可用度量值为:损失、精度”
在此处提供解决方案(答案部分),即使该解决方案出现在评论部分中,也是为了社区的利益 上述代码包括
提前停止
和model.fit
如果我们删除参数,验证\u步骤
就可以正常工作
工作代码如下所示:
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\u 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])
验证步骤:仅当提供了验证数据且为tf.data数据集时相关。到的步骤总数(样本批次)
每次结束时执行验证时,停止前绘制
纪元如果“验证步骤”为“无”,则验证将运行到
验证数据集已耗尽。在无穷大的情况下
重复数据集,它将运行到一个无限循环中。如果
已指定“验证\u步骤”,并且将只显示数据集的一部分
使用后,评估将从数据集的开头开始
在每个时代。这确保使用相同的验证样本
每一次
是否尝试跳过验证步骤参数?您的数据长度/大小是多少?在我看来,您的validation_steps参数可能高于您可用的验证数据的实际大小(val_dataset,如您所定义),您可以添加model.compile语句吗?还有完整的代码,可以重现错误。谢谢,@IvanPetrovicMarkovic我删除了验证步骤,它成功了。虽然我只将验证步骤计算为len/size。