ConvTranspose2d 的简单例子理解

文章目录

    • 参考
    • 基础概念
      • output_padding
    • 简单例子: stride=2
        • step1
        • step2
        • step3

参考

  • 逆卷积的详细解释ConvTranspose2d(fractionally-strided convolutions)
  • nn.ConvTranspose2d的参数output_padding的作用
  • torch.nn.ConvTranspose2d Explained

基础概念

逆卷积,也叫反卷积或者转置卷积,作用是对图像进行上采样。
参考链接中的文章对形状变化的公式做了较为详细的描述,这里简单使用一个例子来演示数据变换过程。

假如输入数据(也叫原始数据)形状为 H x W, H = W.
大概的流程可以描述为

  • 当stride >1, 对原始数据进行插值变换,也就是每相邻数据间插入 (s-1) 列/行数据,变换后数据形状为
    H n e w = W n e w = H + ( s − 1 ) ∗ ( H − 1 ) H_{new} = W_{new} = H + (s-1)*(H-1) Hnew=Wnew=H+(s1)(H1)
  • 对变换后的数据进行padding,
    p a d d i n g n e w = k e r n e l _ s i z e − p a d d i n g − 1 padding_{new} = kernel\_size - padding - 1 paddingnew=kernel_sizepadding1
    经过这一步之后,数据形状为
    H n e w + 2 ∗ p a d d i n g n e w H_{new} + 2* padding_{new} Hnew+2paddingnew
  • 在这两步变换后进行如下正常卷积运算
    kernel_size = kernel_size
    padding = 0
    stride = 1

output_padding

正常卷积在运算时,会由于一些取整操作导致输入图像不同,但是最后生成的图像相同。
而反卷积在进行逆运算时,也会出现类似的情况。理想情况下希望 输出的图像尺寸/输入图像尺寸 = stride。
要完全达成这个目的,就通过在最后的形状上的一边添加 output_padding 完成。

简单例子: stride=2

h = w = 2
stride = 2
p = 0
kernel_size = 3

step1

原始数据:
在这里插入图片描述

step2

内部变换:
stride >1,
当卷积时设置的stride>1时,将对输入的特征图y进行插值操作(interpolation)。

即需要在输入的特征图y的每个相邻值之间插入(stride-1)行和列0,因为特征图中能够插入的相邻位置有(height-1)个位置,所以此时得到的特征图的大小由HoutHout(Hout即height) 变为新的 Hout_newHout_new,即[Hout + (stride-1) * (Hout-1)] * [Hout + (stride-1) * (Hout-1)]
在这里插入图片描述

step3

外部变换:
为了实现由HoutHout大小的y逆卷积得到HinHin大小的x,还需要设置padding_new的值为(kernel_size - padding - 1),这里的padding是卷积操作时设置的padding值

在这里插入图片描述
然后在这个变换好的图上进行 kernel_size=3, padding =0, stride =1 的正常卷积可以得到最终结果
按照卷积的变换公式计算得到

(w + 2p - kernel_size)/s +1 = (7 - 3) +1 = 5.

也就是得到 5x5 的数据。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/20910.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

VMware、CentOS、XShell、Xftp的安装

第 1 章 VMware 1.1 VMware 安装 一台电脑本身是可以装多个操作系统的,但是做不到多个操作系统切换自如,所以我们 需要一款软件帮助我们达到这个目的,不然数仓项目搭建不起来。 推荐的软件为 VMware,VMware 可以使用户在一台计…

一篇文章搞定《Android中的ANR》

------《ANR》 什么是ANR举个例子帮你认识ANRANR的产生原因ANR的监控手段方法一: 监控trace文件夹方法二:利用我们主线程的Looper方法三:监控SIGQUIT信号 ANR日志Traces.txtTraces文件分析几个分析案例:一、好定位的问题(简单案例…

【C++】设计模式

目录 设计模式概述 单例模式 饿汉模式 懒汉模式 工厂模式 简单工厂模式 工厂方法模式 抽象工厂模式 观察者模式 设计模式概述 设计模式:一套反复被人使用、多数人知晓的、经过分类编目的代码设计经验的总结。一种固定的写代码的思维逻辑方式,一…

小学妹刚毕业没地方住想来借宿,于是我连夜用Python给她找了个好房子,我真是太机智了

事情是这样的,小学妹刚毕业参加工作,人生地不熟的,因为就在我附近上班,所以想找我借宿。。。 想什么呢,都不给住宿费,想免费住?于是我用Python连夜给她找了个单间,自己去住吧&#…

ChatGPT api 接口调用测试

参考文档: https://platform.openai.com/docs/quickstart/build-your-application示例说明: 本示例会生成一个简单的ChatGPT api接口调用server程序,该程序可以给用户输入的宠物类别为宠物取三个名字。打开网页后,会看到用户输入…

机器学习在生态、环境经济学中的应用及论文写作

近年来,人工智能领域已经取得突破性进展,对经济社会各个领域都产生了重大影响,结合了统计学、数据科学和计算机科学的机器学习是人工智能的主流方向之一,目前也在飞快的融入计量经济学研究。表面上机器学习通常使用大数据&#xf…

【一起撸个深度学习框架】6 折与曲的相会——激活函数

CSDN个人主页:清风莫追欢迎关注本专栏:《一起撸个DL框架》GitHub获取源码:https://github.com/flying-forever/OurDLblibli视频合集:https://space.bilibili.com/3493285974772098/channel/series 文章目录 6 折与曲的相会——激活…

使用Visual Studio进行cuda编程配置环境四大坑(附解决方案)

写在前面,用于没有使用过Visual Studio进行cuda编程的同学看,以免在安装环境的时候踩到坑 第一坑:CUDA版本与NVIDIA显卡版本不匹配问题: 安装cuda版本坑,强烈建议看下自己的显卡支持什么版本的cuda,切记不要用最新版…

IP 子网划分详解

文章目录 1 概述1.1 划分目的1.2 划分原则1.3 子网掩码 2 IP 子网划分示例3 网工软考真题3.1 判断网络号和主机号3.2 计算可容纳的主机数 1 概述 IP 子网划分:实际上就是设计 子网掩码 的过程。原因:由于在五类的IP地址中,网络号与主机号的的…

Class 02 - R语言Rstudio的安装

Class 02 - R语言&Rstudio的安装 下载和安装R安装前准备下载R语言安装R语言开始使用R语言 下载和安装RStudio安装前准备下载RStudio安装RStudio开始使用RStudio如何编写代码 下载和安装R 在这个部分中,你将完成在计算机上下载和安装R语言程序。当安装完成后&am…

ThingsBoard部署tb-gateway并配置OPCUA

1、安装 我实在自己的虚拟机上安装,使用官方Docker的安装方式 docker run -it -v ~/.tb-gateway/logs:/thingsboard_gateway/logs -v ~/.tb-gateway/extensions:/thingsboard_gateway/extensions -v ~/.tb-gateway/config:/thingsboard_gateway/config --name tb-gateway --…

JavaScript的三座大山

前言:这个题目是抄的,看着很有意思,就拿过用了,毕竟CV是程序员的基本功底嘛,顺带把图也拿过来了 作用域和闭包 这个几乎是天天在用的东西,可能有些人甚至不知道这个概念,但是用到过这种方法去解…

Html中使用jquery通过Ajax请求WebService接口以及跨域问题解决

场景 VS2019新建WebService/Web服务/asmx并通过IIS实现发布和调用: VS2019新建WebService/Web服务/asmx并通过IIS实现发布和调用_霸道流氓气质的博客-CSDN博客 在上面实现发布WebService的基础上,怎样在html中通过jquery对接口发起 请求和解析数据。…

测试4年,跳槽一次涨8k,我跳了3次···

最近有人说,现在测试岗位初始工资太低了,有些刚刚入行的程序员朋友说自己工资连5位数都没有.....干了好几年也没怎么涨。看看别人动辄月薪2-3万,其实我想说也没那么难。说下如何高效地拿到3w。 1.暂且把刚入行的条件设低些吧,大专…

【野火启明_瑞萨RA6M5】梦的开始 ---- 点灯(FSP库)

文章目录 一、FSP配置二、hal_entry入口函数三、封装 LED 设备驱动程序下载验证 一、FSP配置 对于 Keil 开发环境: 拷贝一份之前的 Keil 工程模板 “06_Template”, 然后将工程文件夹重命名为 “11_GPIO_LED”,并进入该文件夹里面双击 Keil …

EW代理工具的使用说明

一、EW介绍 Earthworm(EW) 是一套便携式的网络穿透工具,具有 SOCKS v5服务架设和端口转发两大核心功能,可在复杂网络环境下完成网络穿透。 该工具能够以“正向”、“反向”、“多级级联”等方式打通一条网络隧道,直达…

5年自动化测试,终于进字节跳动了,年薪30w其实也并非触不可及

一些碎碎念 什么都做了,和什么都没做其实是一样的,走出“瞎忙活”的安乐窝,才是避开弯路的最佳路径。希望我的经历能帮助到有需要的朋友。 在测试行业已经混了5个年头了,以前经常听到开发对我说,天天的点点点有意思没…

vue3的学习【超详细】

目录 一、vue3的优点1、vue3的优点 二、常用的API1、setup(Composition API)2、生命周期(Composition API)3、ref函数和reactive函数用法和区别(Composition API)1、ref2、reactive3、ref和reactive的区别 …

【JAVA】this关键字和static关键字

目录 1.this关键字 2.static关键字 容易混淆的问题 1.this关键字 一个对象一个this。this是一个变量,是一个关键字,是一个引用。this保存当前对象的内存地址,指向自身。所以,严格意义上来说,this代表的就是“当前对象…

顶象助力如祺出行打造高品质服务

近日,广东省自然资源厅审批通过了如祺出行提交的测绘资质申请,如祺出行获得地理信息系统工程和互联网地图服务两个专业的乙级测绘资质。此次获批意味着,如祺出行能够在许可区域内依法合规开展数据标注和场景仿真等相关业务,构建全…
最新文章