卷积与反卷积输出计算

1、标准的卷积(Conv2d)输出计算:

通俗一点:

举例:

1. 卷积示例
  • 输入:5×5

  • 卷积核:3×3

  • 步长 stride = 2

  • 填充 padding = 1

  • dilation = 1

输出尺寸:3×3。

二、转置卷积(反卷积)(ConvTranspose2d)输出尺寸计算

PyTorch 官方:

Hout=(Hin−1)×stride[0]−2×padding[0]+dilation[0]×(kernel_size[0]−1)+output_padding[0]+1

通俗一点:

举例:

2. 转置卷积示例
  • 输入:3×3

  • 卷积核:3×3

  • 步长 stride = 2

  • 填充 padding = 1

  • output_padding = 0

  • dilation = 1

计算:

输出尺寸:5×5。

若 output_padding = 1,则:

输出尺寸:6×6。

总结:

卷积的api:

nn.Conv2d(1, 1, kernel_size=3, stride=2, padding=1)

nn.Conv2d(in_channel,out_channel,kernel_size=3, stride=2, padding=1)

输入通道数(in_channels)= 1。意味着输入图像是单通道,比如灰度图。

输出通道数(out_channels)= 1。意味着卷积后输出的特征图也是单通道。

反卷积的参数:

torch.nn.ConvTranspose2d(
    in_channels,        # 输入通道数
    out_channels,       # 输出通道数
    kernel_size,        # 卷积核尺寸
    stride=1,           # 步长
    padding=0,          # 填充
    output_padding=0,   # 输出填充(转置卷积特有)
    dilation=1,         # 膨胀率
    groups=1,           # 分组卷积
    bias=True,          # 是否添加偏置
    padding_mode='zeros' # 填充方式
)

output_padding是什么意思?

output_padding 是可选参数,用于精确控制输出尺寸,通常取 0 或 1。

dilation(膨胀指数)是啥意思?

在卷积中,膨胀(dilation) 是指卷积核元素之间的间隔。标准卷积的膨胀率 dilation=1,表示卷积核元素是连续相邻的。当 dilation > 1 时,卷积核的元素会按一定间距分布,从而在不增加参数量的情况下扩大感受野。

dilation=1 的 3x3 核索引(相对位置):
(-1,-1) (-1,0) (-1,1)
(0,-1)  (0,0)  (0,1)
(1,-1)  (1,0)  (1,1)

dilation=2 的 3x3 核索引(相对位置):
(-2,-2) (-2,0) (-2,2)
(0,-2)  (0,0)  (0,2)
(2,-2)  (2,0)  (2,2)

些坐标是卷积核内每个权重相对于核中心(0,0)的偏移量,偏移量是多少,dilation就是多少?

有效卷积核计算公式:

kernel_size=3, dilation=2 时,有效卷积核大小为 2×(3−1)+1=5,相当于一个 5×5 的卷积核但只有 9 个非零权重(间隔分布)。

# 普通卷积
nn.Conv2d(1, 1, kernel_size=3, dilation=1)
# 膨胀卷积
nn.Conv2d(1, 1, kernel_size=3, dilation=2)

前者感受野 3×3,后者感受野 5×5,参数量相同(都是 9 个权重)。

y = torch.randn(1, 1, 3, 3) 创建了一个四维张量,作为卷积(或转置卷积)的输入时,其形状的含义是:

  • 第 1 维(1)批量大小(batch size),表示一次处理 1 个样本。

  • 第 2 维(1)通道数(channels),表示每个样本有 1 个通道(例如灰度图)。

  • 第 3 维(3)高度(height),表示特征图的高度为 3。

  • 第 4 维(3)宽度(width),表示特征图的宽度为 3。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值