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;
-
-
batch = 10, out_channel = 33
–>故: y= ([10, 33, 14, 31])
注意: 若没有dilation,那就使用下面公式,简洁明了!