tf.contrib.metrics.f1_score无法导入

时间:2019-01-24 08:55:12

标签: python-3.x tensorflow

我正在尝试使用tf.contrib.metrics.f1_score计算F1分数,但这给我一个错误。我知道如何使用精度和召回率来计算它,但是我想使用此函数。

我已经在带有tensorflow版本1.9.0,带有gpu suport和没有gpu suport的ubuntu 16.04 LTS上尝试过

from tensorflow.contrib.metrics import f1_score as ms

我收到此错误:

ImportError: Traceback (most recent call   last)
<ipython-input-6-627f14191ea2> in <module>()----> 1 from tensorflow.contrib.metrics import  f1_score as ms

ImportError: cannot import name 'f1_score'

AND

from tensorflow.contrib import metrics as ms
ms.f1_score

我收到此错误:

AttributeError Traceback (most recent call last)
<ipython-input-8-c19f57465581> in <module>()
1 from tensorflow.contrib import metrics as ms
----> 2 ms.f1_score

AttributeError: module 'tensorflow.contrib.metrics' has no attribute 'f1_score'

我希望ms.f1_score会加载

2 个答案:

答案 0 :(得分:1)

如果您确定有tf.contrib可用并且对您不起作用,则可能需要使用pip install -U tensorflow重新安装tensorflow或使用-GPU(如果正在使用该版本)。

如果失败,请转到安装tensorflow的位置并手动检查它是否可用,如果可用,请确保在名为的同一目录(当前工作目录)中没有文件作为tensorflow.py或tf.py

在那之后你应该得到 Proper loading Image

答案 1 :(得分:0)

您可以找到f1_score here

的文档。

由于它是一个功能,也许您可​​以尝试一下:

from tensorflow.contrib import metrics as ms
ms.f1_score(labels,predictions)

将在不同阈值上返回最佳f1分数的标量张量。

张量流文档中的示例:

def model_fn(features, labels, mode):
    predictions = make_predictions(features)
    loss = make_loss(predictions, labels) 
    train_op = tf.contrib.training.create_train_op( total_loss=loss, optimizer='Adam') 
    eval_metric_ops = {'f1': f1_score(labels, predictions)} 
    return tf.estimator.EstimatorSpec( mode=mode, predictions=predictions, loss=loss, train_op=train_op, eval_metric_ops=eval_metric_ops, export_outputs=export_outputs) 

estimator = tf.estimator.Estimator(model_fn=model_fn)

希望这能回答您的问题。