擅长:python、mysql、java
<p>您得到的是<code>TypeError</code>,因为您使用(可变的)<code>numpy.ndarray</code>作为字典的键,但键应该是<code>tf.placeholder</code>,值是a<code>numpy</code>数组。</p>
<p>以下调整解决了此问题:</p>
<pre><code>x_placeholder = tf.placeholder(tf.float32, [None, 784])
# ...
x = np.reshape(greyscale_expanded,(1,784))
# ...
print(sess.run([inference_step], feed_dict={x_placeholder:x}))
</code></pre>
<p>如果您只想对模型执行推断,这将打印一个带有预测的<code>numpy</code>数组。</p>
<p>如果要评估模型(例如计算精度),还需要输入相应的地面真值标签<code>y</code>,如下所示:</p>
<pre><code>accuracy = sess.run([accuracy_op], feed_dict={x_placeholder:x, y_placeholder:y}
</code></pre>
<p>在您的例子中,<code>accuracy_op</code>可以定义如下:</p>
<pre><code>correct_predictions = tf.equal(tf.argmax(predictions, 1), tf.cast(labels, tf.int64))
accuracy_op = tf.reduce_mean(tf.cast(correct_predictions, tf.float32))
</code></pre>
<p>这里,<code>predictions</code>是模型的输出张量。</p>