我是靠谱客的博主 幸福月光,最近开发中收集的这篇文章主要介绍上采样(UpSampling)之转置卷积(Transposed Convolution)前言转置卷积Pytorch中的转置卷积函数总结,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
文章目录
- 前言
- 转置卷积
- Pytorch中的转置卷积函数
- 1.参数说明
- 2.代码
- 总结
前言
对一个较小尺寸的矩阵进行变换,得到较大尺寸矩阵的过程就叫上采样(UpSampling)。在图像分割任务和GAN网络中,上采样都是必不可少的。
常用的上采样方式有:插值法,反池化,反卷积(转置卷积),本文着重介绍转置卷积原理和用法。
转置卷积
卷积不会增大输入矩阵的高宽,输入矩阵在进行卷积操作之后,高宽保持不变或者减小。
- 使用padding的方式,虽然可以增大高宽,但是太多padding没有意义。
转置卷积可以用来增大高宽
转置卷积操作如下(示例stride = 1):
等号右边的四个矩阵分别表示将Input矩阵中的所有元素与Kernel中的每个元素相乘,保留相对位置,滑动的距离根据步长来定,上图为每次滑动一步。
注:本文为转置卷积操作的简单介绍,也可以通过转换为卷积操作来计算转置卷积,详情见下篇文章。
Pytorch中的转置卷积函数
1.参数说明
Pytorch给出了转置卷积函数:
torch.nn.ConvTranspose2d(in_channels, out_channels, kernel_size, stride=1, padding=0, output_padding=0, groups=1, bias=True, dilation=1, padding_mode='zeros', device=None, dtype=None)
其中卷积步长(stride)默认值为1,padding默认值为0.
参数说明如下:
详情可参见官方文档
https://pytorch.org/docs/stable/generated/torch.nn.ConvTranspose2d.html
2.代码
代码如下(示例):
transconv = nn.ConvTranspose2d(1,1,kernel_size=2,padding=1,stride=2,bias=False)
transconv.weight.data = k
transconv(x)
其中,x为输入,k为核。
总结
转置卷积也是一种卷积
- 同卷积一般做下采样不同,它通常用于做上采样
- 如果卷积将输入从(h,w)变成了(h’,w’),那么同样超参数的设置下它会将(h’,w’)变回(h,w)
- 注:只是形状变回原样,数值会发生改变
最后
以上就是幸福月光为你收集整理的上采样(UpSampling)之转置卷积(Transposed Convolution)前言转置卷积Pytorch中的转置卷积函数总结的全部内容,希望文章能够帮你解决上采样(UpSampling)之转置卷积(Transposed Convolution)前言转置卷积Pytorch中的转置卷积函数总结所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复