我正在尝试使用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会加载
答案 0 :(得分:1)
如果您确定有tf.contrib
可用并且对您不起作用,则可能需要使用pip install -U tensorflow
重新安装tensorflow或使用-GPU(如果正在使用该版本)。
如果失败,请转到安装tensorflow的位置并手动检查它是否可用,如果可用,请确保在名为的同一目录(当前工作目录)中没有文件作为tensorflow.py或tf.py
答案 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)
希望这能回答您的问题。