首页 > 编程知识 正文

resnet详解,pytorch特征提取

时间:2023-05-03 19:30:53 阅读:32191 作者:1769

ResNet50网络架构ResNet50的网络结构相对简单,可以在约50行代码中再现,而不考虑复杂的组件。 但是,每次尝试使用它时,都会忘记一些东西,比如Bottleneck的结构是如何实现的,ResNet50的几个阶段是否包含几个块。 我觉得为了以后不再次重复移动,必须写文章并记录下来。 ResNet50的网络结构如下。 论文中的网络输入为3x224x224,首先经过步骤2填充3的7x7卷积BN ReLU和步骤2填充1的3x3最大池化,然后经过4个阶段,每个阶段包含的Bottleneck卷积块分别为3、4、 最后经过步骤1填充0的7x7平均池化、Flatten和输入2048维、输出1000维的全连通层,经过Softmax操作得到网络的分类概率预测。

Bottleneck卷积块Bottleneck卷积块是ResNet50的核心部分,ResNet50的每个阶段由几个Bottleneck组成,其中第一个Bottleneck的输入和输出通道数匹配必须在1x1卷积BN上映射和添加Shortcut,但不包含其馀Bottleneck 1x1映射的每个Bottleneck结构如下所示:

PyTorch重码# resnet 50.pyimporttorchimporttorch.nnasnnimporttorch.nn.functionalasfclassconv (nn.module ) 3360 def _ 300 out_channels,kernel_size=1,stride=1,padding=None,groups=1,activation=True ) :super(conv, self(_init_ ) padding=kernel _ size//2ifpaddingisnoneelsepaddingself.conv=nn.conv 2d (in _ chane ned paddingse ) bias=false (self.bn=nn.batch norm 2d (out _ channels ) self.act=nn.relu(inplace=true ) ifactivationelsenn . conv(x ) ) classbottleneck(nn.module ) 3360def__init_ ) self groups=1) :super(bottleneck, self(_init_ ) ) stride=2ifdown _ sample else1mid _ channels=out _ chanels )2 out_channels,kernel_size=1=out _ channelselsenn.identity (self.conv=nn.sequential (* [ conv (in _ channels,mid_channels,kernel _ ] ) groups=groups )、conv(mid_channels、out_channels、kernel activation=false () (def forward (self,x ) 3: y=in place=true (class resnet50 (nn.module ) :def_init_ ) self,num_classes ) 3360super ) resnet 50,self kernel_size=7,stride=2],nn.max padding=1() ) self.stages=nn.sequential (* [ self._ make _ stage ] num_bage ) )、down_sample num_blocks=4(,self._make_stage ) 512,1024,down_sample=True,num self._ make _ stage ] self.head=nn.sequential (* [ nn.avg pool 2d (kernel _ size=7,stride=1,padding=0) ) num _ classes (] @ staticmethoddef _ make _ stage (in _ channels、out_channels、down_sample、num_blocks ) ) down_sample=False ) (returnnn.sequential ) layers ) defforward ) self, x ) : return self.head (self.stages (self.stem (x ) ) if _ name _==' _ main _ ' 3360 inputs==24 ) .

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。