二维卷积和转置卷积


1.nn.Cov2d

nn.Cov2d(in_channels,
		 out_channels,
		 kernel_size,
		 stride = 1,
		 padding = 0,
		 dilation = 1,
		 groups = 1,
		 bias = True,
		 padding_mode = 'zero'
)

功能:对多个二维信号进行二维卷积
主要参数:
• in_channels:输入通道数
• out_channels:输出通道数,等价于卷积核个数
• kernel_size:卷积核尺寸
• stride:步长
• padding :填充个数
• dilation:空洞卷积大小,常用于图像分割任务
• groups:设置分组卷积的组数,常用于模型的轻量化
• bias:偏置
尺寸计算:
输 出 尺 寸 = 输 入 尺 寸 − k e r n e l s i z e s t r i d e + 1 输出尺寸 = \frac{输入尺寸-kernel_size}{stride}+1 =stridekernelsize+1

经过2维卷积后的图像变化:
经过2维卷积后的图像变化

卷积前尺寸:torch.Size([1, 3, 512, 512])
卷积后尺寸:torch.Size([1, 1, 510, 510])

计算:
输 出 尺 寸 = 512 − 3 1 + 1 = 510 输出尺寸 = \frac{512-3}{1}+1 = 510 =15123+1=510

2.转置卷积

nn.CovTranspose2d(in_channels,
				  out_channels,
 				  kernel_size,
				  stride = 1,
				  padding = 0,
				  output_padding = 0,
				  groups = 1,
				  bias = True,
				  dilation = 1,
				  padding_mode = 'zeros'
)

功能:用于对图像进行上采样(UpSample)。输入图像尺寸比较小,经过转置卷积以后输出图像尺寸更大
主要参数:
• in_channels:输入通道数
• out_channels:输出通道数
• kernel_size:卷积核尺寸
• stride:步长。stride几乎决定了整个上采样的大小
• padding :填充个数
• dilation:空洞卷积大小
• groups:分组卷积设置
• bias:偏置

计算:
输 出 尺 寸 = ( 输 入 尺 寸 − 1 ) ∗ s t r i d e + k e r n e l s i z e 输出尺寸 = (输入尺寸-1) *stride+kernel_size =(1)stride+kernelsize
经过转置卷积后的图像变化(设置stride为2):
经过转置卷积后的图像变化

卷积前尺寸:torch.Size([1, 3, 512, 512])
卷积后尺寸:torch.Size([1, 1, 1025, 1025])

计算:
输 出 尺 寸 = ( 512 − 1 ) ∗ 2 + 3 = 1025 输出尺寸 =(512-1) *2 + 3= 1025 =(5121)2+3=1025

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值