我是tensorflow的新手,我有一个简单的问题,这是我的MNIST模型的代码
def neural_network_model(data):
hidden_1_layer = {'weights': tf.Variable(tf.random_normal([784, n_nodes_hl1])),
'biases': tf.Variable(tf.random_normal([n_nodes_hl1]))}
hidden_2_layer = {'weights': tf.Variable(tf.random_normal([n_nodes_hl1, n_nodes_hl2])),
'biases': tf.Variable(tf.random_normal([n_nodes_hl2]))}
hidden_3_layer = {'weights': tf.Variable(tf.random_normal([n_nodes_hl2, n_nodes_hl3])),
'biases': tf.Variable(tf.random_normal([n_nodes_hl3]))}
output_layer = {'weights': tf.Variable(tf.random_normal([n_nodes_hl3, n_classes])),
'biases': tf.Variable(tf.random_normal([n_classes])), }
l1 = tf.add(
tf.matmul(
data,
hidden_1_layer['weights']),
hidden_1_layer['biases'])
l1 = tf.nn.relu(l1)
l2 = tf.add(
tf.matmul(
l1,
hidden_2_layer['weights']),
hidden_2_layer['biases'])
l2 = tf.nn.relu(l2)
l3 = tf.add(
tf.matmul(
l2,
hidden_3_layer['weights']),
hidden_3_layer['biases'])
l3 = tf.nn.relu(l3)
output = tf.matmul(l3, output_layer['weights']) + output_layer['biases']
return output
我的问题是这个函数是否代表输入'数据'的输出值。 ?或者这个函数代表一个完整的模型,用于在训练后测试/预测图像?
以下是我用于预测特定图片的代码:
prediction=neural_network_model(mnist_training_data_set)
p=tf.argmax(prediction,1)
print(p.eval(feed_dict={x: i}, session=sess))
所以在这里我很困惑,无论该函数是模型还是仅返回预测输出。任何人都可以解释,谢谢
答案 0 :(得分:2)
此函数创建模型并将其添加到计算图中。预测的输出将由p.eval(feed_dict={x: i}, session=sess)
行返回。
因此,该函数返回模型的输出层,您将使用它来进行预测。可以说你可以称之为"模型"但我认为最好将会话变量称为" model"。