【问题标题】:what is the meaning of (axis = 3) in the BatchNormalization?BatchNormalization 中 (axis = 3) 的含义是什么?
【发布时间】:2024-01-24 08:07:01
【问题描述】:
inputs = Input((img_height, img_width, img_ch))
conv1 = Conv2D(n_filters, (k, k), padding=padding)(inputs)
conv1 = BatchNormalization(scale=False, axis=3)(conv1)
conv1 = Activation('relu')(conv1)    
conv1 = Conv2D(n_filters, (k, k),  padding=padding)(conv1)
conv1 = BatchNormalization(scale=False, axis=3)(conv1)
conv1 = Activation('relu')(conv1)    
pool1 = MaxPooling2D(pool_size=(s, s))(conv1)

BatchNormalization 中的 (axis =3) 是什么意思 我阅读了 keras 文档但我无法理解,谁能解释一下axis是什么意思?

【问题讨论】:

    标签: python keras deep-learning batch-normalization


    【解决方案1】:

    这取决于“conv1”变量的维度是如何排序的。首先,注意批量归一化应该在卷积之后在通道上执行,例如如果你的维度顺序是[batch, height, width, channel],你想使用axis=3。基本上你选择代表你的频道的轴索引。

    【讨论】:

      【解决方案2】:

      上述答案需要稍作修正。 如果维度是 [height, width, channel] 那么轴是 3。批次不是输入维度的一部分。

      【讨论】:

      • 输入张量形状为 (m, n_H_prev, n_W_prev, n_C_prev) ,他是正确的