ResNet架构解析与CIFAR - 10数据集训练实践
1. ResNet基础概念
1.1 瓶颈技术
在构建残差模块时,会使用“瓶颈”技术。该技术会先减少维度,再增加维度。通常在构建自己的残差模块时,会使用类似 residual_module(K = 128) 的伪代码,这意味着最终的卷积层将学习128个滤波器,而前两个卷积层将学习128 / 4 = 32个滤波器。
1.2 重新思考残差模块
2016年,有研究对残差模块中卷积层、激活层和批量归一化层的顺序进行了理论和实证研究。最初的带瓶颈的残差模块结构为输入(ReLU激活图),然后依次经过 (CONV => BN => RELU) * 2 => CONV => BN ,再将输出与原始输入相加并应用最终的ReLU激活。后来发现了一种更优的层顺序,即预激活方法。
1.3 预激活版本的残差模块
预激活版本的残差模块移除了模块底部的ReLU,并重新排列批量归一化和激活层,使其位于卷积层之前。结构变为 (BN => RELU => CONV) * 3 (假设使用瓶颈技术),残差模块的输出是相加操作的结果,该结果会输入到网络中的下一个残差模块。
2. ResNet的实现
2.1 项目结构更新
要在Keras中实现ResNet,需在 pyimagesearch 的 nn.conv 子模块中创建一个名为 re
超级会员免费看
订阅专栏 解锁全文
17

被折叠的 条评论
为什么被折叠?



