[英]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)]]
请注意,已经定义了优化程序adam
, cus_acc
和miou
是自定义指标。 如果删除有效的指标,那么我认为其中一定有问题, miou
和cus_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.