详解转置卷积 代码实现

news2025/1/20 11:56:27

转置卷积

计算输出的形状公式

输出矩阵的高 = (输入的高-1) x 高方向的步长 - 2 x 高方向的填充 + 卷积核的高
输出矩阵的宽 = (输入的宽-1) x 宽方向的步长 - 2 x 宽方向的填充 + 卷积核的宽

在这里插入图片描述

举例计算:当输入为2x2,转置卷积核形状为2x2的情况

在这里插入图片描述

代入公式验证输出形状:

输出矩阵的高 = (输入的高-1) x 高方向的步长 - 2 x 高方向的填充 + 卷积核的高
=2-1)x1 - 2x0 + 2 = 1 +2 = 3

输出矩阵的宽 = (输入的宽-1) x 宽方向的步长 - 2 x 宽方向的填充 + 卷积核的宽
 =2-1)x1 - 2x0 + 2 = 1 +2 = 3

举例计算:当输入为2x2,步幅为2,转置卷积核形状为2x2的情况

![在这里插入图片描述](https://img-blog.csdnimg.cn/5b43251907f44cb69dfb11e91d929c42.png)
代入公式验证输出形状

输出矩阵的高 = (输入的高-1) x 高方向的步长 - 2 x 高方向的填充 + 卷积核的高
=2-1)x2 - 2x0 + 2 = 2 + 2 = 4

输出矩阵的宽 = (输入的宽-1) x 宽方向的步长 - 2 x 宽方向的填充 + 卷积核的宽
 =2-1)x2 - 2x0 + 2 = 2 + 2 = 4

转置卷积代码实现

import torch
from torch import nn
from d2l import torch as d2l
X = torch.tensor([[0.0, 1.0], [2.0, 3.0]])
K = torch.tensor([[0.0, 1.0], [2.0, 3.0]])
X, K = X.reshape(1, 1, 2, 2), K.reshape(1, 1, 2, 2) # 前两个元素是 样本数,通道数
# 下面函数的前两个元素是输入通道和输出通道数
tconv = nn.ConvTranspose2d(1, 1, kernel_size=2, stride=2, bias=False)
tconv.weight.data = K
output = tconv(X)
print(output,output.shape)
tensor([[[[0., 0., 0., 1.],
          [0., 0., 2., 3.],
          [0., 2., 0., 3.],
          [4., 6., 6., 9.]]]], grad_fn=<SlowConvTranspose2DBackward>) torch.Size([1, 1, 4, 4])

转置卷积的作用

对卷积层下采样得到的特征图进行转置卷积可以得到与输入图像相同的图像,可以应用于语义分割。
如:

输入图像: (样本数为1,通道为10,h=16,w=16)
普通卷积:(输入通道10,输出通道为20,大小为5,padding为2,步长为3)
转置卷积:(输入通道为20,输出通道为ie10,大小为5,padding为2,步长为3)

代码实现:

X = torch.rand(size=(1, 10, 16, 16))
conv = nn.Conv2d(10, 20, kernel_size=5, padding=2, stride=3)
tconv = nn.ConvTranspose2d(20, 10, kernel_size=5, padding=2, stride=3)
tconv(conv(X)).shape == X.shape

True

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

传统企业如何进行数字化转型升级?

传统企业通过一系列战略和运营变革进行数字化转型升级&#xff0c;利用技术增强业务流程、改善客户体验&#xff0c;在数字化时代保持竞争力。以下是他们通常如何处理此过程的分步概述&#xff1a; 1.评估和战略制定&#xff1a; 了解当前状态&#xff1a;评估现有业务流程、…

【Cesium创造属于你的地球】实现地球展示、灵活进行坐标转换、视角切换

大家好&#xff0c;我是AIC山鱼&#xff01;&#x1f449;这是我的主页 &#x1f40b;作为CSDN博主和前端优质创作者✍&#xff0c;我致力于为大家带来新颖、脱俗且有趣的内容。 &#x1f431;我还创建了山鱼社区&#xff0c;这是一个独特的社区&#x1f3e0;&#xff0c;&…

windows服务器查看网络带宽

windows服务器查看网络带宽&#xff1f; 鼠标右键单击win标志&#xff0c;进入计算机管理 另外一个方法&#xff1a;

前端须知名词解释

目录 一、多维转一维 二、一维转多维 一维转多维——使用场景&#xff1a;分页 三、判断当前元素是否为数组 四、判断当前元素是否是空对象 五、数字分割符&#xff1a;提高数字可读性 六、模糊盒子&#xff08;怪异盒子&#xff09;与标准盒模型 七、css的filter属性 …

代码随想录算法训练营day42 | 01背包问题,416. 分割等和子集

目录 01背包问题 416. 分割等和子集 01背包问题 416. 分割等和子集 类型&#xff1a;动态规划&#xff0c;01背包 难度&#xff1a;medium 思路: 经典的01背包问题&#xff0c;背包容量为sum/2, 每个物品的重量为nums[i],其价值也为nums[i]。 需要注意的是&#xff0c;如果…

数字世界的不朽之旅,探索人类意识的未来归宿!

在莎士比亚名剧《哈姆雷特》中&#xff0c;有一句经典的独白“生存还是死亡&#xff0c;这是一个值得考虑的问题”&#xff0c;令人沉思。数百年后的今天&#xff0c;随着人工智能技术的不断发展&#xff0c;数字永生正在改变着生死的边界&#xff0c;使得“有的人死了&#xf…

Ctenos7安装mysql-8.1.0/tomcat-9.0.80/LNMT部署

目录 一、实验拓扑 二、部署mysql 三、部署Tomcat 四、配置NGINX 五、 配置NGINX的双机热备提高可用性 一、实验拓扑 二、部署mysql 官网下载地址https://dev.mysql.com/downloads/mysql/ 1、移除mariadb&#xff0c;安装所需应用 mysql-8.1.0 社区版 安装说明官网下载地址…

【高等数学基础知识篇】——函数,极限与连续

本文仅用于个人学习记录&#xff0c;使用的教材为汤家凤老师的《高等数学辅导讲义》。本文无任何盈利或者赚取个人声望的目的&#xff0c;如有侵权&#xff0c;请联系删除&#xff01; 文章目录 一、函数基础知识1.1 基本初等函数和初等函数1.2 函数的初等特性1.3 特殊函数 二、…

网络综合布线专业技能人才培养方案

一、网络综合布线专业技能人才培养方案概述 网络综合布线专业技能人才培养方案旨在培养具备综合布线系统设计、安装与维护的全面技能和知识的专业人才。以下是一个概述&#xff1a; 培养目标&#xff1a;培养具备综合布线系统的理论基础和实践操作技能的专业人才&#xff0c;能…

参考平面很重要,为啥这里要挖掉?

高速先生成员--姜杰 传输线结构包括信号路径和返回路径&#xff0c;以平面形式出现的返回路径通常被称为参考平面。不少刚接触高速信号设计的朋友会有这样的困惑&#xff1a;都说走线的参考平面很重要&#xff0c;为啥有些信号还要把途经SMD元器件管脚下方的参考平面挖掉&#…

华为OD机试 - 玩牌高手 - 动态规划(Java 2023 B卷 100分)

目录 一、题目描述二、输入描述三、输出描述四、解题思路具体规则如下&#xff1a;具体步骤如下&#xff1a; 五、Java算法源码六、效果展示1、输入2、输出3、说明 华为OD机试 2023B卷题库疯狂收录中&#xff0c;刷题点这里 一、题目描述 给定一个长度为n的整型数组&#xff0…

【Golang】go条件编译

交叉编译只是为了能在一个平台上编译出其他平台可运行的程序&#xff0c;Go 作为一个跨平台的语言&#xff0c;它提供的类库势必也是跨平台的&#xff0c;比如说程序的系统调用相关的功能&#xff0c;能根据所处环境选择对应的源码进行编译。让编译器只对满足条件的代码进行编译…

亚马逊重拳打击虚假评论,不想被关联影响的看这里(纯干货)

近年来&#xff0c;亚马逊投入了大量资源来确保平台上评论的真实性&#xff0c;提升客户的实际体验&#xff0c;如通过机器学习模型和专家调查员&#xff0c;在评论发布之前分析其中的欺诈和可疑内容。同时&#xff0c;亚马逊持续起诉刷单机构&#xff0c;严厉打击平台上存在的…

【真人语音】讯飞星火个人声音训练及导出下载工具V0.2.exe

【项目背景】 小编一直在尝试着短视频技术&#xff0c;在读文案的时候经常会读错&#xff1b;所以&#xff0c;只能用微软或者剪映的文本转语音软件。 很早之前在Github上也看到过真人人声训练的开源代码&#xff0c;尝试过一番之后&#xff0c;也是以失败告终&#xff1b;就…

IMX989 35mm模组首发,厚度惊人,努比亚能吃到第一波红利吗?

根据数码闲聊站的曝光内容&#xff0c;努比亚即将推出一款工程机&#xff0c;据称将搭载索尼IMX989 35mm镜头。从曝光图来看&#xff0c;该工程机的镜头模组采用了圆形设计&#xff0c;相比传统手机要更厚一些。最引人注目的是该手机预计将搭载对焦环&#xff0c;这使得该工程机…

.ssh文件夹下缺失known_hosts文件

.ssh文件夹下缺失known_hosts文件 先确认工蜂或github 添加了git生成的密钥 然后 桌面打开git bash 1、执行ssh -T gitgitlab.com 2、输入yes

Vue2-初识路由、路由分类、路由的基本使用、嵌套(多级)路由、路由的query参数、路由的params参数、路由的props配置

&#x1f954;&#xff1a;有的山长满荆棘&#xff0c;有的山全是野兽&#xff0c;所以你应该是自己的那座山 更多Vue知识请点击——Vue.js VUE2-Day12 路由简介1、什么是SPA&#xff1f;2、什么是路由&#xff1f;3、路由的分类①前端路由②后端路由 路由的基本使用1、编写rou…

spark 部署

下载spark 安装包 spark官网下载 pre-built with user-provided 会支持更多的hadoop&#xff0c;已经安装了hadoop和java环境的选这个比较好 wget https://dlcdn.apache.org/spark/spark-3.3.2/spark-3.3.2-bin-hadoop3.tgz安装 解压 tar -xvf spark-3.3.2-bin-hadoop3.tgz …

【java】【项目实战】[外卖八]产品展示、购物车、下单开发

目录 一、导入用户地址簿相关功能代码 1 需求分析 2 数据模型 3 导入功能代码 3.1 实体AddressBook 3.2 Mapper接口AddressBookMapper 3.3 业务接口层AddressBookService 3.4 业务接口实现类AddressBookServiceImpl 3.5 控制层AddressBookController 4 功能测试 二、…