我会尽力理解 .

我创建了一个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)

It is here that I have a problem. 我想改变一下我的评估功能 . 我解释 :

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

| 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:precision = 0.555,average_loss = 0.96378326,global_step = 1000,loss = 0.96378326

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

你有个主意吗?

非常感谢你的帮助 !