#灵感be like 酒品见人品 还得看特殊时刻的状态
一、Convolution卷积
1.官网
主要关注二维2d的 Conv2d — PyTorch 2.13 documentation
classtorch.nn.Conv2d(in_channels,out_channels,kernel_size,stride=1,padding=0,dilation=1,groups=1,bias=True,padding_mode='zeros',device=None,dtype=None)
主要参数到dilation为止
2.两篇文献解释卷积2d
灰度图像只有一个通道
卷积核kernel
卷积操作:卷积核和图像像素进行对应位相乘后 再相加
卷积核一点点移动
卷积操作之后的结果
input channel和output channel
(1)1个输入通道 想得到4个输出通道的
需要4个卷积核来操作
(2)3个通道输入,想得到4个通道输出
需要3*4=12个卷积核来操作(4组 每组3个 卷积核)
R通道和卷积核A进行卷积操作+GB+BC 相加之后得到最后的
Kernel size卷积核大小
通常3*3 ,这个是5*2
Strides步长
比如S(1,3)先纵向
Padding填充
通常是0的黑色
比如下图
原本图像H*W=7*7,现在Padding填充是1×1,则图像变成H*W=9*9
输入通道2,输出通道1,卷积核Kernel是3×3,Padding填充是1×1,步长S纵向横向都是1,膨胀dilation也就是像素间隔也是1×1
Dilation空洞卷积
dilation(膨胀率)就是卷积核内部各个像素点之间的“间隔距离”。
默认
dilation=1:表示像素点之间没有间隔(紧挨着),就是最普通的卷积。
比如下图D(4,2)就是H高度方向间隙为4,W宽度方向间隙为2
最后输出特征图
有计算公式的
卷积核kernel size一般是奇数,
比如kernel size(5,3)就是高为5,宽为3
1*1是改变通道数目,3*3和5*5是提取特征的
验证一下-可视化
Transposed Conv转置卷积
是一种“逆向”的卷积操作,它的核心作用就是把一个【小尺寸的特征图】放大成【大尺寸的特征图】(上采样)
nn.Unfold
对输入进行一个折叠