繁体   English   中英

如何在keras中使用valuate_generator?

[英]How to use evaluate_generator in keras?

当我训练了一个模型并将参数保存为hdf5文件后,我尝试在test_dataset上评估该模型的性能,但是如果我将metrics设置为,则model.compile param metrics存在问题。

model.compile(optimizer=adam,
              loss=losses.sparse_categorical_crossentropy,
              metrics=[cus_acc, miou])  

它将发生错误,如下所示:

tensorflow.python.framework.errors_impl.InvalidArgumentError: assertion failed: [`labels` out of bound] [Condition x < y did not hold element-wise:] [x (metrics/cus_acc/confusion_matrix/control_dependency:0) = ] [107 118 135...] [y (metrics/cus_acc/confusion_matrix/Cast_2:0) = ] [2]  [[Node: metrics/cus_acc/confusion_matrix/assert_less/Assert/AssertGuard/Assert = Assert[T=[DT_STRING, DT_STRING, DT_STRING, DT_INT64, DT_STRING, DT_INT64], summarize=3, _device="/job:localhost/replica:0/task:0/device:CPU:0"](metrics/cus_acc/confusion_matrix/assert_less/Assert/AssertGuard/Assert/Switch/_3827, metrics/cus_acc/confusion_matrix/assert_less/Assert/AssertGuard/Assert/data_0, metrics/cus_acc/confusion_matrix/assert_less/Assert/AssertGuard/Assert/data_1, metrics/cus_acc/confusion_matrix/assert_less/Assert/AssertGuard/Assert/data_2, metrics/cus_acc/confusion_matrix/assert_less/Assert/AssertGuard/Assert/Switch_1/_3829, metrics/cus_acc/confusion_matrix/assert_less/Assert/AssertGuard/Assert/data_4, metrics/cus_acc/confusion_matrix/assert_less/Assert/AssertGuard/Assert/Switch_2/_3831)]]

请注意,已经定义了优化程序adamcus_accmiou是自定义指标。 如果删除有效的指标,那么我认为其中一定有问题, mioucus_acc都由confusion_matrix计算。
我的问题是,如果可以提供最佳示例代码,那么会导致错误发生的原因是什么,以及如何使用valuate_generator来评估keras中的模型性能〜
任何帮助,将不胜感激。 提前致谢。 :d

已解决。
创建confusion_matrix时发生错误, nb_classes即0、1、2)必须与ground-truth 0、1、2中的标签匹配。例如,地面真相未经过预处理,像素值为0、127, 255。然后将发生InvalidArgumentError: assertion failed
使我的代码出错的原因不是由于自定义指标,而是当我为ground-truth创建data_generator时, param directory设置为images

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM