Python 估计器:在精度预测中,占位符使用什么?
我正在TensorFlow中使用一个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(
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这些是分类器的默认预测。我认为最好的入门教程是: