我无法在prediction
上打印test data
。
任何人都可以帮我在输出步骤中填写sess.run
的输入谢谢!
def nn_model(data):
convnet = conv_2d(in_data, 32, 3, padding='same', activation='relu')
convnet = max_pool_2d(convnet, 2)
logits = nn_model(next_element)
prediction = tf.argmax(logits, 1)
with tf.Session() as sess:
sess.run(init_op)
sess.run(training_init_op)
for i in range(epochs):
l, _, acc = sess.run([loss, optimizer, accuracy])
output = sess.run(prediction, ***{logits:nn_model(test_data)}***)
output = np.argmax(output)
print("The prediction for test is :", output)
答案 0 :(得分:0)
在这一行:
output = sess.run(prediction, ***{logits:nn_model(test_data)}***)
您似乎试图将测试数据(可能是numpy格式)传递给logits
。 logits
传统上是模型输出的名称,这非常令人困惑。在nn_model
函数中,您应该返回logits(模型的输出)和输入的占位符。通常你会有这样的事情:
x = tf.placeholder(tf.float32, shape=(None, 1024))
labels = tf.placeholder(tf.float32, shape=(None,))
现在您的输出类似于:
output = sess.run(logits, feed_dict={x:test_data, y:test_labels}
对于测试数据,您可能不需要传递标签,但如果您想要计算准确性,则需要它们,您可以根据需要决定。
以下是一些您可以遵循的非常好的示例: