Mar*_*oma 8 python numpy tensorflow
阅读Tensorflow MNIST教程,我偶然发现了这条线
x_image = tf.reshape(x, [-1,28,28,1])
Run Code Online (Sandbox Code Playgroud)
28, 28
来自width, height
,1
来自多个渠道.但为什么-1
呢?
我想这与小批量训练有关,但我想知道为什么-1
而不是1
(这似乎在numpy中给出相同的结果).(可能相关:为什么numpy的重塑会给出相同的结果-1
,-2
并且1
)?
Pri*_*ham 12
-1
表示推断该维度的长度.这是基于以下约束来完成的:一个ndarray
或Tensor
当重新整形时元素的数量必须保持不变.在本教程中,每个图像都是一个行向量(784个元素),并且有很多这样的行(让它成为n
,所以有784n
元素).所以,当你写作
x_image = tf.reshape(x, [-1, 28, 28, 1])
TensorFlow可以推断出-1
是n
.
在您正在阅读的 MNIST 教程中,输入层所需的形状:[batch_size, 28, 28, 1]
x_image = tf.reshape(x, [-1,28,28,1])
这里输入 x 的 -1 指定应根据 x 中输入值的数量动态计算该维度,并保持所有其他维度的大小不变。这允许我们将batch_size(值为-1的参数)视为我们可以调整的超参数。
归档时间: |
|
查看次数: |
5079 次 |
最近记录: |