Python 估计器:在精度预测中,占位符使用什么?

Python 估计器:在精度预测中,占位符使用什么?,python,machine-learning,tensorflow,deep-learning,classification,Python,Machine Learning,Tensorflow,Deep Learning,Classification,我正在TensorFlow中使用一个DNNClassifier和一个LinearClassifier(使用两个不同的模型进行比较)对我的数据集进行二进制分类。我已经成功地使这两个模型工作,并输出了关于准确性的度量。然而,我希望能够得到某种类型的数组,其中包含模型在测试中做出的所有预测。理想情况下,这些预测也会有一些与之相关的概率 通过搜索StackOverflow和TensorFlow GitHub页面,我找到了以下几行代码来提取预测: sess = tf.Session() sess.run(

我正在TensorFlow中使用一个
DNNClassifier
和一个
LinearClassifier
(使用两个不同的模型进行比较)对我的数据集进行二进制分类。我已经成功地使这两个模型工作,并输出了关于准确性的度量。然而,我希望能够得到某种类型的数组,其中包含模型在测试中做出的所有预测。理想情况下,这些预测也会有一些与之相关的概率

通过搜索StackOverflow和TensorFlow GitHub页面,我找到了以下几行代码来提取预测:

sess = tf.Session()
sess.run(tf.global_variables_initializer())
sess.run(results, feed_dict={?})
唯一的问题是我不知道在
提要中放什么。这个问题的大多数其他提问者似乎没有使用预先制作的估计器,因此我很困惑,在我自己的代码中,在哪里可以找到他们在
feed\u dict
中放入的等价物。我试着使用我在
测试输入法中输入的东西,但是我得到了一个
类型错误
。我的代码的其他一些关键部分如下所示:

def get_features(array):
    return {'policy_state': np.array(array[:, 2], dtype=str),
       'tiv': np.array(array[:, 4], dtype=int),
       'veh_count': np.array(array[:, 5], dtype=int),
       'generation': np.array(array[:, 8], dtype=str),
       'modern_classic_ind': np.array(array[:, 17], dtype=str),
       'h_plus_ind': np.array(array[:, 7], dtype=str)}

train_input_fn = tf.estimator.inputs.numpy_input_fn(
    x=get_features(my_data),
    y=np.array(np.array(my_data[:, 11], dtype=int)),
    num_epochs=None,
    shuffle=True)

test_input_fn = tf.estimator.inputs.numpy_input_fn(
    x=get_features(test_data),
    y=np.array(np.array(test_data[:, 11], dtype=int)),
    num_epochs=None,
    shuffle=True)

如果需要,我很乐意提供额外的代码/信息

您应该为所有tf.placeholder输入numpy数组

比如

inputs = tf.placeholder(tf.float, shape=[None,10])
weights = ... (define some weights)
results = tf.matmul(inputs, weights)
feed_in={inputs: np.zeros((1,10))}
使用方法,该方法返回预测结果的生成器。例如:

predict_input_fn=tf.estimator.inputs.numpy_input_fn({“x”:x_test}),
批次大小=批次大小,
num_epochs=1,
洗牌(错误)
预测=估计器。预测(输入\ fn=预测\输入\ fn)
对于预测中的预测:
打印(预测)

注意
num_epochs=1
shuffle=False
以使结果稳定。

估计器API自行管理
tf.Graph
tf.Session
,它使用
输入fn
为所有相关的操作提供值。无需启动
tf.Session

训练你的模特:

est = tf.estimator.DNNClassifier(...)
est.train(input_fn=train_input_fn)
预测:

predictions = est.predict(input_fn=test_input_fn)

谢谢你的回答!我现在得到一些预测,但是我不完全理解格式。我看到两个概率(我假设每个类一个,我理解),然后是两个整数值,然后是一些关于类型的信息。行具有以下格式:
“logits”:数组([36.63014603,38.20797348,-49.78499222],dtype=float32),“概率”:数组([0.17110339,0.82889664,0.],dtype=float32),“类ID”:数组([1],dtype=int64),“类”:数组([b'1',dtype=object)
你知道我在哪里可以找到一些关于这一切在tf中意味着什么的文档吗?@AbigailFox这些是分类器的默认预测。我认为最好的入门教程是: