卷积与反卷积

文章目录

  • 1 卷积
    • 1.1 卷积后的输出维度
  • 2 反卷积
    • 2.1 来源
    • 2.2 原理
    • 2.3 使用
      • 2.3.1 padding
      • 2.3.2 stride
      • output_padding
    • 2.3 意义

1 卷积

1.1 卷积后的输出维度

设输入维度为i x i,卷积核大小为k x k,padding为p,strides为s,则输出维度为 (i - k + 2p) / s +1
注意:除法为向下取整的除法,即3 / 2 = 1。
i - k是不考虑padding的情况下,卷积核能纵向/横向移动的次数

2 反卷积

2.1 来源

反卷积/转置卷积的操作是在《Visualizing and Understanding Convolutional Networks》中提出来的。
其只能恢复原来的大小,不能恢复原来的数值。
可参考:https://zhuanlan.zhihu.com/p/48501100《反卷积(Transposed Convolution)详细推导》

2.2 原理

A deconvolutional layer is simply a regular convolutional layer with its filters transposed. By applying these transposed filters to the output of a convolutional layer, the input can be retrieved.

2.3 使用

class torch.nn.ConvTranspose2d(in_channels, out_channels, kernel_size, stride=1, padding=0, output_padding=0, bias=True)
详细参考:https://blog.csdn.net/disanda/article/details/105762054

2.3.1 padding

padding的含义不是卷积的padding的含义,理解为kernel向输入层中间移动的次数。
padding为0时,在input(蓝色2 x 2)外面填充k - 1 = 2层
padding为1时,在input外面填充k - 2 = 1层。
下图是padding为0时的例子。
在这里插入图片描述

2.3.2 stride

stride是输入之间的距离,默认为1。
如果stride为2,那么每个输入之间相隔1个。
下图是stride=2的例子。
在这里插入图片描述

output_padding

由于卷积涉及到向下取整,所以在输出维度一定时,对应了多个可能的输入维度,可能的个数为【步长stride】。因此采用out_padding进行确定。
参考:https://zhuanlan.zhihu.com/p/485999111《【深度学习反卷积】Pytorch中反卷积的应用》

2.3 意义

反卷积是一种上采样的方法,除此之外还有反池化和双线性差值bilinear。
在图像领域可以做segmentation,在很多领域可以做cost volume。

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

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

相关文章

项目实战:新增@RequestMapping和@GetMapping和@PostMapping三个注解

1、RequestMapping package com.csdn.mymvc.annotation; import java.lang.annotation.*; Target(ElementType.TYPE) Retention(RetentionPolicy.RUNTIME) Inherited public interface RequestMapping {String value(); }2、PostMapping package com.csdn.mymvc.annotation; im…

NLP 模型中的偏差和公平性检测

一、说明 近年来,自然语言处理 (NLP) 模型广受欢迎,彻底改变了我们与文本数据交互和分析的方式。这些基于深度学习技术的模型在广泛的应用中表现出了卓越的能力,从聊天机器人和语言翻译到情感分析和文本生成。然而&…

JVM虚拟机:垃圾回收器组合参数设定

本文重点 前面的课程中我们介绍了目前JVM中主流的垃圾回收器,不同的回收器会有不同的组合,其中1.8版本的jdk中,默认使用的是Parallel ScavengeParallel Old,也就是说新生代使用Parallel Scavenge,然后老年代使用Paral…

Java Jar 包还不知道怎么反编译,赶紧看看这个 IDEA 插件!

前言 当我们使用 Java 开发时,经常会遇到一种情况:我们拿到了一个 JAR 文件,但是却没有源代码。这时候,我们就需要使用反编译工具来帮助我们还原出源代码。 反编译工具可以将编译后的 JAR 文件转换回可读的 Java 源代码。这样&a…

Go 如何实现并发

Go语言的并发机制是其强大和流行的一个关键特性之一。Go使用协程(goroutines)和通道(channels)来实现并发编程,这使得编写高效且可维护的并发代码变得相对容易。下面是Go的并发机制的详细介绍: 协程&#x…

【Qt之QtXlsx模块】安装及使用

1. 安装Perl,编译QtXlsx源码用 可以通过命令行进行查看是否已安装Perl。 下载及安装传送门:链接: https://blog.csdn.net/MrHHHHHH/article/details/134233707?spm1001.2014.3001.5502 1.1 未安装 命令:perl --version 显示以上是未安装…

阿里云安全恶意程序检测

阿里云安全恶意程序检测 赛题理解赛题介绍赛题说明数据说明评测指标 赛题分析数据特征解题思路 数据探索数据特征类型数据分布箱型图 变量取值分布缺失值异常值分析训练集的tid特征标签分布测试集数据探索同上 数据集联合分析file_id分析API分析 特征工程与基线模型构造特征与特…

CVE-2023-34040 Kafka 反序列化RCE

漏洞描述 Spring Kafka 是 Spring Framework 生态系统中的一个模块,用于简化在 Spring 应用程序中集成 Apache Kafka 的过程,记录 (record) 指 Kafka 消息中的一条记录。 受影响版本中默认未对记录配置 ErrorHandlingDeserializer,当用户将容…

Pycharm 对容器中的 Python 程序断点远程调试

pycharm如何连接远程服务器的docker容器有两种方法: 第一种:pycharm通过ssh连接已在运行中的docker容器 第二种:pycharm连接docker镜像,pycharm运行代码再自动创建容器 本文是第一种方法的教程,第二种请点击以上的链接…

Docker与微服务实战——基础篇

Docker与微服务实战——基础篇 第一章 Docker 简介1.1 docker 理念1.2 容器与虚拟机比较 第二章 Docker 安装2.1 前提说明2.2 Docker的基本组成2.2.1 镜像(image)2.2.2 容器(container)2.2.3 仓库(repository&#xff…

看!MySQL 8.2 数据库支持读写分离啦!

更多文章,欢迎关注作者公众号,欢迎一起交流。 MySQL 8.2.0创新版本已于2023-10-17发布,MySQL Router 8.2 支持数据库的读/写分离,这里将在InnoDB Cluster集群中演示数如何进行读写分离,本篇内容包括:MySQL …

Python基础入门例程50-NP50 程序员节(循环语句)

最近的博文: Python基础入门例程49-NP49 字符列表的长度-CSDN博客 Python基础入门例程48-NP48 验证登录名与密码(条件语句)-CSDN博客 Python基础入门例程47-NP47 牛牛的绩点(条件语句)-CSDN博客 目录 最近的博文&a…