Tensorflow LinearClassifier获得单独的预测值

时间:2017-11-24 15:06:25

标签: python tensorflow

我正在尝试使用以下代码使用Tensorflow编写线性分类器。

m = LinearClassifier(model_dir = model_dir, feature_columns = wide_columns)
m.fit (input_fn=training, steps=FLAGS.train_steps)
results = h.evaluate(input_fn=test, steps=1)
for key in sorted(results):
    print ("%s: %s", key, results[key])

然而,我感兴趣的是为每个测试特征提供一个预测的ndarray(即0和1的数组)。 我想基于这些预测来计算更多的值(而不是准确度和精度)。

以下是我得到的输出:

accuracy: 0.931035
accuracy/baseline_label_mean: 0.931035
accuracy/threshold_0.500000_mean: 0.931035
auc: 0.5
global_step: 202
labels/actual_label_mean: 0.931035
labels/prediction_mean: 1.0
loss: 1.11758e+11
precision/positive_threshold_0.500000_mean: 0.931035
recall/positive_threshold_0.500000_mean: 1.0

以下是我期望的输出: (前五个数字是训练特征,1和0是分类器的标签)

1,2,3,4,5 : 1
3,4,4,2,1 : 0
1,2,3,4,1 : 1
1,2,3,4,5 : 1
4,4,2,2,2 : 0
5,4,1,2,1 : 0

如何从Tensorflow API获得此类输出?

1 个答案:

答案 0 :(得分:0)

经过一番研究后我找到了解决方案。我希望它可以帮到某人:

predictions = m.predict(input_fn = lambda:input_fn(df_test), as_iterable = False)
for p in predictions:
    print(str(p), "\n")