【发布时间】:2016-09-21 18:14:22
【问题描述】:
我正在学习 TensorFlow,我的目标是实现 MultiPerceptron 以满足我的需求。我检查了MNIST tutorial with MultiPerceptron implementation,除此之外一切都很清楚:
_, c = sess.run([optimizer, cost], feed_dict={x: batch_x,
y: batch_y})
我猜,x 本身就是一个图像(28*28 像素,所以输入是 784 个神经元),y 是一个标签,它是一个 1x10 数组:
x = tf.placeholder("float", [None, n_input])
y = tf.placeholder("float", [None, n_classes])
他们提供整批(数据点和标签包)! tensorflow 如何解释这个“批量”输入?它如何更新权重:在批次中的每个元素之后同时更新,还是在整个批次运行之后?
而且,如果我需要输入一个数字 (input_shape = [1,1]) 并输出四个数字 (output_shape = [1,4]),我应该如何更改 tf.placeholders 以及我应该以哪种形式将它们输入会话?
当我问,tensorflow 是如何解释它时,我想知道 tensorflow 是如何将批处理拆分为单个元素的。例如,批处理是一个二维数组,对吧?它在哪个方向拆分数组?或者它使用矩阵运算并且不分割任何东西?
1234563 -D 列表。
当我将 float numpy 数组 X_train 提供给 x 时,即:
x = tf.placeholder("float", [1, n_input])
我收到一个错误:
ValueError: Cannot feed value of shape (1, 18) for Tensor 'Placeholder_10:0', which has shape '(1, 1)'
看来我也必须将数据创建为张量?
当我尝试 [18x1] 时:
Cannot feed value of shape (18, 1) for Tensor 'Placeholder_12:0', which has shape '(1, 1)'
【问题讨论】:
标签: python machine-learning tensorflow