论文代码复现1 --- Conv2d(1):对原特征图减半、不变的操作

在这里插入图片描述

原特征图大小为n×n
使用kernel_size=f的卷积核,padding=p,stride=s
最后得到特征图的大小为向下取整中的公式

常用kernel_size=3,stride=2,padding=1是将原特征图尺寸减半
kernel_size=7,stride=2,padding=3也是减半操作

特征图尺寸不变一般使用:kernel_size=1,stride=1,padding=0
或 kernel_size=3,stride=1,padding=1

  • 7
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
假设你使用的是PyTorch框架,以下是可能的代码实现: ```python import torch.nn as nn class RefineDet(nn.Module): def __init__(self, num_classes): super(RefineDet, self).__init__() # 网络结构代码省略... # 去除 conv6-1 和 conv6-2 self.loc_layers = nn.ModuleList([ nn.Conv2d(512, 4 * num_anchors, kernel_size=3, padding=1), nn.Conv2d(1024, 6 * num_anchors, kernel_size=3, padding=1), nn.Conv2d(512, 6 * num_anchors, kernel_size=3, padding=1), nn.Conv2d(256, 6 * num_anchors, kernel_size=3, padding=1), nn.Conv2d(256, 4 * num_anchors, kernel_size=3, padding=1), nn.Conv2d(256, 4 * num_anchors, kernel_size=3, padding=1) ]) self.conf_layers = nn.ModuleList([ nn.Conv2d(512, 2 * num_anchors, kernel_size=3, padding=1), nn.Conv2d(1024, 3 * num_anchors, kernel_size=3, padding=1), nn.Conv2d(512, 3 * num_anchors, kernel_size=3, padding=1), nn.Conv2d(256, 3 * num_anchors, kernel_size=3, padding=1), nn.Conv2d(256, 2 * num_anchors, kernel_size=3, padding=1), nn.Conv2d(256, 2 * num_anchors, kernel_size=3, padding=1) ]) # 对 conv4-3 和 conv5-3 进行 BN 归一化处理 self.conv4_3_norm = nn.BatchNorm2d(512) self.conv5_3_norm = nn.BatchNorm2d(512) def forward(self, x): # 网络前向传播代码省略... # 对 conv4-3 和 conv5-3 进行 BN 归一化处理 conv4_3_norm = self.conv4_3_norm(x[23]) conv5_3_norm = self.conv5_3_norm(x[-2]) # 网络后续处理代码省略... ``` 需要注意的是,去除 conv6-1 和 conv6-2 两个卷积层后,网络的输出通道数会发生变化,需要相应地修改后续的定位层和分类层。同时,对 conv4-3 和 conv5-3 进行 BN 归一化处理时,需要根据网络结构中这两个卷积层的索引进行选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值