繁体   English   中英

ValueError:未知指标 function:Keras 中的二进制精度错误,即使不使用任何自定义指标也是如此

[英]ValueError: Unknown metric function:binary_precision error in Keras even when not using any custom metric

我用从keras_metrics导入的precisionrecall指标训练了一个 cnn model。 但是,当我尝试加载 model 时,出现错误: ValueError: Unknown metric function:binary_precision 我没有在任何地方使用binary_precision function 但我仍然根据错误在 custom_objects 中给出了“binary_precision”:

 model = load_model(modelfilepath,custom_objects={'metrics': [keras_metrics.precision(),binary_precision]})

有了这个我得到了错误, NameError: name 'binary_precision' is not defined 我应该为此做些什么。

我的代码如下:

#compiling the model
model.compile(optimizer=SGD(),loss='binary_crossentropy',metrics = ['accuracy',keras_metrics.precision(),keras_metrics.recall()])
#loading the model after training and saving it
model = load_model(modelfilepath,custom_objects={'metrics': [keras_metrics.precision(),binary_precision]})

我在https://github.com/netrack/keras-metrics/issues/27中找到了一个解决方案:作者在模块中添加了name属性,因此我们可以在加载 Z20F35E630DAF494DFA4 时通过其名称调用指标 function

import keras_metrics as km

# compile model
model.compile(loss='binary_crossentropy',optimizer='Adam',metrics=['acc', km.binary_precision(), km.binary_recall()])

# load model
model = load_model(os.path.join(FLAGS.init_checkpoint,model_name), custom_objects={'binary_precision':km.binary_precision(), 'binary_recall':km.binary_recall()})

请尝试在没有自定义对象的情况下简单地加载 model。 在您的情况下,您似乎只使用 KEras 定义的指标,而没有自定义指标。 这可能是您找不到 function 的原因。 如果还没有解决,请分享完整代码。

将您的 Tensorflow 和 Keras package 更新到新版本。

1. pip install --upgrade tensorflow 
2. pip install --upgrade keras

检查此链接以使用内置 Keras - 精度、召回、AUC 等指标。

如何计算 keras 中的接收操作特性 (ROC) 和 AUC?

暂无
暂无

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

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