阅读Tensorflow MNIST教程,我偶然发现了这条线
x_image = tf.reshape(x, [-1,28,28,1])
28, 28
来自width, height
,1
来自多个渠道.但为什么-1
呢?
我想这与小批量训练有关,但我想知道为什么-1
而不是1
(这似乎在numpy中给出相同的结果).(可能相关:为什么numpy的重塑会给出相同的结果-1
,-2
并且1
)?
-1
表示推断该维度的长度.这是基于以下约束来完成的:一个ndarray
或Tensor
当重新整形时元素的数量必须保持不变.在本教程中,每个图像都是一个行向量(784个元素),并且有很多这样的行(让它成为n
,所以有784n
元素).所以,当你写作
x_image = tf.reshape(x, [-1, 28, 28, 1])
TensorFlow可以推断出-1
是n
.