用于形状数组的负指数是多少? (Tensorflow)

时间:2016-06-21 23:29:22

标签: tensorflow

在Tensorflow的MNIST教程中,我们将最后一个Pool层的输出重新整形为单个向量。编写的代码是:

h_pool2_flat = tf.reshape(h_pool2, [-1, 7*7*64]) 

什么是-1指数?我们不是只想将输出整形为单个向量,那么为什么我们不仅仅重塑为:[1,7 * 7 * 64]?

提前致谢!

3 个答案:

答案 0 :(得分:9)

-1表示自动展开。例如,具有[-1,7 * 7 * 64]的重塑将将[19 * 7 * 7 * 64]的1维形状转换为[19,7 * 7]的二维形状。 * 64]。

另一个例子,一个[5,-1,7]的重塑会将一维形状(例如[70])转换为[5,2,7]的三维形状。

答案 1 :(得分:4)

将推断出-1。

因此,NumPy或TensorFlow将根据传入元素和指定的其他尺寸推断尺寸大小应该是什么

答案 2 :(得分:1)

输入层-1的第一个形状维度指的是批量大小,它可能是可变的。

例如我们可能有 (-1, 28, 28, 1) 的输入形状,这意味着我们可以输入尺寸为 (28, 28, 1) 的数据(例如图像),这些数据在 中接收批次大小可变。批量大小可以是 32 或 128,或者不是,它将自动应用于图层。它也适用于其他层,例如输出层也可能具有 (-1, 10) 的形状,其中第一维也表示可变批量大小,它将在运行时替换为正确的批量大小。