nn.conv2d方法介绍

1. conv2d用法

  • 格式:
    torch.nn.Conv2d(in_channels,out_channels,kernel_size,stride=1,padding=0,dilation=1,groups=1,bias=True)
参数 作用
in_channels 输入的通道数
out_channels 输出的通道数
kennel_size 卷积核大小(例如:kennel_size=2,大小则是2×2, 若kennel_size=(2,3),则是2×3)
stride 步长;默认为1(例如stride=2,则上下左右扫描皆为2,若stride=(2,1),H方向步长为2,W方向为3)
padding 填充补0
dilation kernel间距,默认是1

2. 示例

import torch
import torch.nn as nn

x = torch.randn(10, 16, 30, 32) # batch, channel , height , width
print(x.shape)
net1 = nn.Conv2d(16, 33, (3, 2), (2,1)) 
print(net1)
y = net1(x)
print(y.shape)

Out:
              在这里插入图片描述
解析:
在这里插入图片描述

  • input:10组数据,通道数为16,Hin=30,Win=32

  • 卷积核长分别是 H:3,W:2 ;步长分别是H:2,W:1;padding默认0;

  • H o u t = 30 3 + 2 × 0 2 + 1 = 14 H_{out} = \frac{30 - 3 + 2 \times 0}{2} + 1=14
    W o u t = 32 2 + 2 × 0 1 + 1 = 31 W_{out} = \frac{32 - 2 + 2 \times 0}{1} + 1=31

  • batch = 10, out_channel = 33

–>故: y= ([10, 33, 14, 31])

注意: 若没有dilation,那就使用下面公式,简洁明了!
              在这里插入图片描述

Ref

  1. nn.Conv2d卷积_落地生根-CSDN博客
  2. nn.Conv2d 参数及输入输出详解 - SiyuanChen - 博客园

猜你喜欢

转载自blog.csdn.net/qq_40520596/article/details/106014039