dl转置卷积

转置卷积

转置卷积,顾名思义,通过名字我们应该就能看出来,其作用和卷积相反,它可以使得图像的像素增多
在这里插入图片描述
上图的意思是,输入是22的图像,卷积核为22的矩阵,然后变换成3*3的矩阵
代码如下

import torch
from torch import nn
from d2l import torch as d2ldef trans_conv(X, K):  #X是原始矩阵,K是转置卷积核h, w = K.shapeY = torch.zeros((X.shape[0] + h - 1, X.shape[1] + w - 1))  # 转置卷积后的大小为x.shape[0] + k.shape[0] - 1 .........for i in range(X.shape[0]):for j in range(X.shape[1]):Y[i: i+h, j: j+w] += X[i, j] * Kreturn Y
X = torch.tensor([[0.0, 1.0], [2.0, 3.0]])
K = torch.tensor([[0.0, 1.0], [2.0, 3.0]])
trans_conv(X, K)

在这里插入图片描述
传统输入可能都是四维,使用API一样的

# 四维的话,调用API一样的
X, K = X.reshape(1, 1, 2, 2), K.reshape(1, 1, 2, 2)
tconv = nn.ConvTranspose2d(1, 1, kernel_size=2, bias=False)
tconv.weight.data = K
tconv(X)

在这里插入图片描述
与常规卷积不同,在转置卷积中,填充被应用于的输出(常规卷积将填充应用于输入)。
例如,当将高和宽两侧的填充数指定为1时,转置卷积的输出中将删除第一和最后的行与列。
换句话说,转置卷积的padding是删除输出的一圈

X, K = X.reshape(1, 1, 2, 2), K.reshape(1, 1, 2, 2)
tconv = nn.ConvTranspose2d(1, 1, kernel_size=2, padding=1, bias=False)
tconv.weight.data = K
tconv(X)

在这里插入图片描述
如果步幅为2的话,那么就会是一个4*4的矩阵

# 步幅为2的话那就是4*4了
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
tconv(X)

在这里插入图片描述
对于多个输入和输出通道,转置卷积与常规卷积以相同方式运作。 假设输入有ci个通道,且转置卷积为每个输入通道分配了一个kwkh的卷积核张量。
当指定多个输出通道时,每个输出通道的卷积核shape为ci
kw*kh

接下来我们可能会想,转置卷积为何以矩阵变换命名呢?我们先来看看矩阵乘法如何实现卷积
这是传统卷积

X = torch.arange(9.0).reshape(3, 3)
K = torch.tensor([[1.0, 2.0], [3.0, 4.0]])
Y = d2l.corr2d(X, K)
Y

在这里插入图片描述
接下来通过矩阵乘法计算

# 先将K 写成稀疏权重矩阵
def kernel2matrix(K):k, W = torch.zeros(5), torch.zeros((4, 9))  # W是4*9的k[:2], k[3:5] = K[0, :], K[1, :]W[0, :5], W[1, 1:6], W[2, 3:8], W[3, 4:] = k, k, k, kreturn W
W = kernel2matrix(K)
W

在这里插入图片描述

# 然后就是矩阵乘法
Y == torch.matmul(W, X.reshape(-1)).reshape(2, 2)

在这里插入图片描述

而如果我们用W的转置*Y,那就是原来的Y的转置卷积了

# 同样的,我们可以使用矩阵乘法来实现转置矩阵  Y 是卷积后的值
Z = trans_conv(Y, K)
Z == torch.matmul(W.T, Y.reshape(-1)).reshape(3, 3)

在这里插入图片描述

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

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

相关文章

Django(三)

1.快速上手 确保app已注册 【settings.py】 编写URL和视图函数对应关系 【urls.py】 编写视图函数 【views.py】 启动django项目 命令行启动python manage.py runserverPycharm启动 1.1 再写一个页面 2. templates模板 2.1 静态文件 2.1.1 static目录 2.1.2 引用静态…

【三维生成】稀疏重建、Image-to-3D方法(汇总)

系列文章目录 总结一下近5年的三维生成算法,持续更新 文章目录 系列文章目录一、LRM:单图像的大模型重建(2023)摘要1.前言2.Method3.实验 二、SSDNeRF:单阶段Diffusion NeRF的三维生成和重建(ICCV 2023&am…

HTML---定位

目录 文章目录 一.定位属性概述 二.position 基础数值 三.z-index属性 网页元素透明度 练习 一.定位属性概述 HTML中的定位属性指的是用来控制HTML元素在页面中的位置和布局的属性,包括position、top、bottom、left和right等。 position属性指定了元素的定位方式&a…

腾讯云轻量2核2G3M带宽服务器、40G系统盘、200G月流量优惠62元一年

继昨天阿里云2核2G3M带宽轻量应用服务器降价到63元后,腾讯云迅速做出响应,腾讯云轻量2核2G3M服务器降价到62元一年,1元之差,你选择阿里云还是腾讯云?值得一提的是,阿里云不限制月流量,但是腾讯云…

IT运维工程师职业发展与出路

运维工程师的出路到底在哪里? 你是不是也常常听到身边的运维人员抱怨,他们的出路到底在哪里呢?别着急,让我告诉你,运维人员就像是IT界的“万金油”,他们像“修理工”一样维修服务器,像“消防员…

VMware安装笔记

1、首先准备安装文件 没有的小伙伴可以网上自行下载,或者给我留言,我发给你。 2、开始安装 2.1、双击运行exe安装文件,下一步 2.2、接受许可,下一步 2.3、选择安装路径 2.4、选择好安装路径后,继续下一步 2.5、取消勾…

侦探IP“去推理化”:《名侦探柯南》剧场版走过26年

2023年贺岁档,柯南剧场版的第26部《黑铁的鱼影》如期上映。 这部在日本狂卷票房128亿日元的作品,被誉为有史以来柯南剧场版在商业成绩上最好的一部。 但该作在4月份日本还未上映前,就于国内陷入了巨大的争议。 试映内容里,灰原…

网络安全面试题目

http与https的区别: 1、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。 2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。 3、http和https使用的是完全不同的连接方式…

设计从容不迫!12款在线平面设计工具,让你事半功倍!

平面设计是图形表达和信息展示的重要手段,在游戏场景、人物造型、插图、广告制作等艺术设计领域有着重要的应用,如海报设计、包装设计等。 平面设计强调视觉传达,一般以图像、图形、文字等视觉元素为主要手段,通过排版、配色、构…

普中STM32-PZ6806L开发板(烧录方式)

前言 有两种方式, 串口烧录和STLink方式烧录;串口烧录 步骤 开发板USB转串口CH340驱动板接线到USB连接PC使用自带工具普中自动下载软件.exe烧录程序到开发板 ST Link方式 这种方式需要另外进行供电, 我买的如下,当年用于调试STM8的,也可…

Upload-lab(pass1~2)

Pass-1-js检查 这里检验 因为是前端js校验,所以只用绕过js前端校验 用burp抓包修改文件类型 写一个简易版本的php Pass-2-只验证Content-type 仅仅判断content-type类型 因此上传shell.php抓包修改content-type为图片类型:image/jpeg、image/png、image/gif

C语言初学7:循环

while 循环 一、while 循环语法: while(condition) {statement(s); } condition 为任意非零值时都为 true。当条件为 true 时执行循环。 当条件为 false 时,退出循环,程序流将继续执行紧接着循环的下一条语句。 二、while 循环举例 #inc…

k8s二进制部署--部署高可用

连接上文 notready是因为没有网络,因此无法创建pod k8s的CNI网络插件模式 1.pod内部,容器与容器之间的通信。 在同一个pod中的容器共享资源和网络,使用同一个网络命名空间。 2.同一个node节点之内,不同pod之间的通信。 每个pod都…

做伦敦金交易要知道的具体风险管理要求

做伦敦金交易风险控制是很重要的,但是光喊口号是没有用的,大家都知道风险控制的重要性,却不知道具体的控制风险的方法,这对交易没有裨益。下面我们就来介绍一些具体的风险管理的方法。 将风险具体化。如果离开实际,空谈…

文件夹共享功能的配置 以及Windows server2012防火墙的配置

目录 一. 配置文件夹共享功能 1.1 为什么需要配置文件夹共享功能 1.2 配置文件夹共享 1.3 访问共享文件夹 1.4 配置取消 用户名和密码认证 二. windows server 2012防火墙配置 思维导图 一. 配置文件夹共享功能 1.1 为什么需要配置文件夹共享功能 我们在工作和生活中经…

JavaScript 学习笔记 对象属性 symbol 数组常用方法

JavaScript 学习笔记 目录 文章目录 JavaScript 学习笔记目录参考教程对象遍历对象元素保留原来顺序判断是否是空对象对象浅拷贝对象深拷贝对象的方法不能这样写成箭头函数,否则找不到title对象的方法这样写,才能找到title可选链 symbol 类型字符串字符…

【三维目标检测】【自动驾驶】IA-BEV:基于结构先验和自增强学习的实例感知三维目标检测(AAAI 2024)

系列文章目录 论文:Instance-aware Multi-Camera 3D Object Detection with Structural Priors Mining and Self-Boosting Learning 地址:https://arxiv.org/pdf/2312.08004.pdf 来源:复旦大学 英特尔Shanghai Key Lab /美团 文章目录 系列文…

浅谈测试自动化selenium之POM模式

基于本人也是一个初学者,在运用POM模式的时候记录一下自己的学习笔记。 如果你是大神,那么可以略过,如果你是初学者,希望对你有帮助。 本文阐述了以下几个问题: 什么叫POM模式 为什么要用POM模式 POM模式的思想 POM模…

【http】HTTP/1.0、HTTP/1.1和HTTP/2.0

✨ 专栏介绍 在当今互联网时代,计算机网络已经成为了人们生活和工作中不可或缺的一部分。而要实现计算机之间的通信和数据传输,就需要依靠各种网络协议来进行规范和约束。无论是浏览网页、发送电子邮件还是进行在线交流,都离不开各种各样的网…

CCI2023 | 人工智能赋能介入医学

在岁末的时光里,医学创新的光芒在南京绽放,“2023中国医师协会介入医师年会(CCI2023)”于12月21-24日在江苏省南京市国际青年会议中心举行,本次大会汇聚了国内外医学领域的专家学者,为探讨介入医学领域的最…