keras.layers.BatchNormalization() 中的第一个轴是 0 还是 1?
Is the first axis 0 or 1 in keras.layers.BatchNormalization()?
我正在研究 Andrew Ng 在 Coursera 上的 'Keras_Tutorial_v2a',我对 keras.layers.BatchNormalization() 中的轴参数感到困惑。
模型的前几层是:
X_input = Input(input_shape)
X = Conv2D(32, (3, 3), strides = (1, 1), name = 'conv0')(X_input)
X = BatchNormalization(axis = 3, name = 'bn0')(X)
其中 input_shape 是数据集图像的形状:(高度、宽度、通道)。所以看起来 axis=3 指的是通道,但它不应该是 axis=2 吗?我找不到说明这一点的文档,但通常在 python 中索引和轴从 0 开始。
所以在这个函数中,要么轴从 1 开始,要么我遗漏了什么。谁能帮我澄清一下?我敢肯定这很简单!
在 Keras 中,维度排序为 batch_size, height, width, channel
。所以 channel
就是 axis=3
。您想选择代表您所说频道的轴索引。
在教程和 Keras/TensorFlow 代码库中,您将看到 axis = 3
或 axis = -1
。这是应该选择的,因为通道轴是 3(或最后一个,-1)。
如果您查看原始文档,默认值为 -1
(本质上是 3
rd)。
https://www.tensorflow.org/api_docs/python/tf/keras/layers/BatchNormalization
我正在研究 Andrew Ng 在 Coursera 上的 'Keras_Tutorial_v2a',我对 keras.layers.BatchNormalization() 中的轴参数感到困惑。
模型的前几层是:
X_input = Input(input_shape)
X = Conv2D(32, (3, 3), strides = (1, 1), name = 'conv0')(X_input)
X = BatchNormalization(axis = 3, name = 'bn0')(X)
其中 input_shape 是数据集图像的形状:(高度、宽度、通道)。所以看起来 axis=3 指的是通道,但它不应该是 axis=2 吗?我找不到说明这一点的文档,但通常在 python 中索引和轴从 0 开始。
所以在这个函数中,要么轴从 1 开始,要么我遗漏了什么。谁能帮我澄清一下?我敢肯定这很简单!
在 Keras 中,维度排序为 batch_size, height, width, channel
。所以 channel
就是 axis=3
。您想选择代表您所说频道的轴索引。
在教程和 Keras/TensorFlow 代码库中,您将看到 axis = 3
或 axis = -1
。这是应该选择的,因为通道轴是 3(或最后一个,-1)。
如果您查看原始文档,默认值为 -1
(本质上是 3
rd)。
https://www.tensorflow.org/api_docs/python/tf/keras/layers/BatchNormalization