我是靠谱客的博主 幸福月光,最近开发中收集的这篇文章主要介绍上采样(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中的转置卷积函数总结所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(42)

评论列表共有 0 条评论

立即
投稿
返回
顶部