【问题标题】:ValueError: Unknown metric function:binary_precision error in Keras even when not using any custom metricValueError:未知度量函数:Keras 中的二进制精度错误,即使不使用任何自定义度量也是如此
【发布时间】:2020-02-03 04:12:27
【问题描述】:

我用从keras_metrics 导入的precisionrecall 指标训练了一个cnn 模型。但是当我尝试加载模型时,我收到了错误:ValueError: Unknown metric function:binary_precision。我没有在任何地方使用过binary_precision 函数,但我仍然根据错误在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]})

【问题讨论】:

  • 忘记括号了吗? binary_precision()。此外,我认为binary_precision 也位于 keras_metrics 包中,所以你必须写keras_metrics.binary_precision()
  • @JuliaK,我也试过了,但还是同样的问题

标签: python tensorflow keras deep-learning conv-neural-network


【解决方案1】:

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

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

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

How to compute Receiving Operating Characteristic (ROC) and AUC in keras?

【讨论】:

    【解决方案2】:

    我在https://github.com/netrack/keras-metrics/issues/27找到了解决办法:作者在模块中添加name属性,这样我们在加载模型的时候就可以通过名字来调用metrics函数了:

    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()})
    

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-09-08
        • 1970-01-01
        • 2021-12-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多