深度学习中的恒等块(Identity Block)详解:实现图3 及 BatchNormalization 的 axis=3 解释
深度学习中的恒等块 (Identity Block) 详解:实现图3 及 BatchNormalization 的 axis=3 解释
def identity_block(X, f, filters, stage, block):
'''
实现图3的恒等块
参数:
X - 输入的tensor类型的数据,维度为( m, n_H_prev, n_W_prev, n_H_prev )
f - 整数,指定主路径中间的CONV窗口的维度
filters - 整数列表,定义了主路径每层的卷积层的过滤器数量
stage - 整数,根据每层的位置来命名每一层,与block参数一起使用。
block - 字符串,据每层的位置来命名每一层,与stage参数一起使用。
返回:
X - 恒等块的输出,tensor类型,维度为(n_H, n_W, n_C)
'''
#定义命名规则
conv_name_base = 'res' + str(stage) + block + '_branch'
bn_name_base = 'bn' + str(stage) + block + '_branch'
#获取过滤器
F1, F2, F3 = filters
#保存输入数据,将会用于为主路径添加捷径
X_shortcut = X
#主路径的第一部分
##卷积层
X = Conv2D(filters=F1, kernel_size=(1,1), strides=(1,1) ,padding='valid',
name=conv_name_base+'2a', kernel_initializer=glorot_uniform(seed=0))(X)
##归一化
X = BatchNormalization(axis=3,name=bn_name_base+'2a')(X)
为什么 BatchNormalization 中 axis=3 呢?
在卷积层的输出中,第四个维度代表了不同的通道数。因此,在 BatchNormalization 中,axis=3 代表对 每个通道 进行归一化。
解释:
- 卷积层输出的维度: (m, n_H, n_W, n_C),其中 n_C 代表通道数。
- BatchNormalization 作用: 对每个通道进行归一化,使数据分布更稳定,避免梯度消失或爆炸。
axis=3的含义: 告诉 BatchNormalization 层在哪个维度进行归一化,axis=3表示对第四个维度(通道数)进行归一化。
简单来说,axis=3 就是对卷积层的每个通道分别进行 BatchNormalization 处理,而不是对整个特征图进行归一化。
原文地址: https://www.cveoy.top/t/topic/mN27 著作权归作者所有。请勿转载和采集!