Tensorflow - 从评估的估算器中获取所有良好的预测

时间:2018-05-02 20:31:54

标签: python tensorflow deep-learning evaluate tensorflow-estimator

我会尽力理解。

我创建了一个DNNClassifier估算器:

classifier = tf.estimator.DNNClassifier(
    feature_columns=feature_column,
    hidden_units=[10, 10],
    n_classes=3)

我训练了这个模型:

classifier.train(input_fn=lambda:train_input_fn(train_features, train_label, 1), steps=1000)

我在这里遇到了问题。我想改变一下我的评估功能。我解释一下:

我的计划的目标是知道我的模型是否有利可图。 我的功能/标签例如是:

| 2 | 1 | 6 | / | 2 |

如果评估是正确的,我将赢得feature [label]中的值(我们的例子中为6)。如果没有,我输了1。

所以,问题是我不关心准确性,因为它对我没有任何意义。

目前我的评估功能是:

def eval_input_fn(features, labels, batch_size):
"""An input function for evaluation or prediction"""
features=dict(features)
if labels is None:
    # No labels, use only features.
    inputs = features
else:
    inputs = (features, labels)

# Convert the inputs to a Dataset.
dataset = tf.data.Dataset.from_tensor_slices(inputs)

# Batch the examples
assert batch_size is not None, "batch_size must not be None"
dataset = dataset.batch(batch_size)

# Return the dataset.
return dataset

-

eval_result = classifier.evaluate(
    input_fn=lambda:eval_input_fn(test_features, test_label,
                                            1), steps=1000)

并且结果不适合我:

  

INFO:tensorflow:为全局步骤1000保存dict:准确度= 0.555,average_loss = 0.96378326,global_step = 1000,loss = 0.96378326

如果有可能,我希望在我的数据集的每次迭代中计算得益或损失,如果评估期间的预测是否正常。我搜索钩子但没有结果..或者如果有一种方法可以在evaluate()之后导出所有好的预测?

有你的想法吗?

非常感谢你的帮助!

0 个答案:

没有答案