Bottleneck结构出现在resnet中,参考paper
结构如下

左边是一个resnet block,右边是一个和它时间复杂度类似的bottleneck block。
bottleneck由三层组成:1x1, 3x3, 1x1,其中1x1负责缩小放大channel。
为什么要用这个结构呢,paper里是这样说的:
一般来说,增加网络的深度可以提高accuracy, 但是会增加计算量,而bottleneck既增加了深度,计算量又可以得到节约。
参考代码
class Bottleneck2D(nn.Module):
expansion = 2
def __init__(self, inplanes, planes, stride=1, downsample=None):
ResNet中的Bottleneck结构解析与实现

本文介绍了ResNet网络中的Bottleneck结构,该结构通过1x1卷积减少通道数,接着使用3x3卷积进行特征提取,最后再用1x1卷积恢复通道数,从而在增加网络深度的同时减少了计算复杂度。Bottleneck设计在保持模型准确性的同时,有效控制了计算资源的消耗。代码展示了BottleneckBlock的实现细节,包括批量归一化、卷积和残差连接等操作。
最低0.47元/天 解锁文章
1742

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



