形状数组中的负索引有什么用? (张量流)
What is the negative index in shape arrays used for? (Tensorflow)
在 Tensorflow 的 MNIST 教程中,我们将最后一个 Pool 层的输出重塑为单个向量。编写的代码是:
h_pool2_flat = tf.reshape(h_pool2, [-1, 7*7*64])
-1 索引有什么用?我们不只是试图将输出整形为单个向量,那么为什么我们不直接整形为:[1, 7*7*64]?
提前致谢!
-1 表示自动扩展。例如,使用 [-1, 7*7*64] 的重塑会将 [19*7*7*64] 的一维形状转换为 [19, 7*7] 的二维形状*64].
另一个示例,使用 [5, -1, 7] 的整形会将一维形状(例如 [70])转换为三维形状 [5, 2, 7]。
将推断-1。
因此 NumPy 或 TensorFlow 将根据传入的元素和指定的其他维度推断维度大小应该是多少
输入层-1的第一个形状维度参考批量大小,可能是可变的。
例如我们可能有 (-1, 28, 28, 1) 的输入形状,这意味着我们可以输入大小为 (28, 28, 1) 的数据(例如图像),这些数据在批次大小可变。批量大小可以是 32 或 128 或其他,它会自动应用于图层。它也适用于其他层,例如输出层也可能具有 (-1, 10) 的形状,其中第一个维度也表示可变批大小,它将在运行时替换为正确的批大小。
在 Tensorflow 的 MNIST 教程中,我们将最后一个 Pool 层的输出重塑为单个向量。编写的代码是:
h_pool2_flat = tf.reshape(h_pool2, [-1, 7*7*64])
-1 索引有什么用?我们不只是试图将输出整形为单个向量,那么为什么我们不直接整形为:[1, 7*7*64]?
提前致谢!
-1 表示自动扩展。例如,使用 [-1, 7*7*64] 的重塑会将 [19*7*7*64] 的一维形状转换为 [19, 7*7] 的二维形状*64].
另一个示例,使用 [5, -1, 7] 的整形会将一维形状(例如 [70])转换为三维形状 [5, 2, 7]。
将推断-1。
因此 NumPy 或 TensorFlow 将根据传入的元素和指定的其他维度推断维度大小应该是多少
输入层-1的第一个形状维度参考批量大小,可能是可变的。
例如我们可能有 (-1, 28, 28, 1) 的输入形状,这意味着我们可以输入大小为 (28, 28, 1) 的数据(例如图像),这些数据在批次大小可变。批量大小可以是 32 或 128 或其他,它会自动应用于图层。它也适用于其他层,例如输出层也可能具有 (-1, 10) 的形状,其中第一个维度也表示可变批大小,它将在运行时替换为正确的批大小。