nn网络层-卷积层

一、1d/2d/3d Convolution

  • 卷积运算:卷积核在输入信号(图像)上滑动,相应位置上进行乘加
  • 卷积核:又称为滤波器,过滤器,可认为是某种模式,某种特征。
  • 卷积过程类似于用一个模版去图像上寻找与它相似的区域,与卷积核模式越相似,激活值越高,从而实现特征提取

在这里插入图片描述
AlexNet卷积核可视化,发现卷积核学习到的是边缘,条纹,色彩这一些细节模式

在这里插入图片描述
卷积维度:一般情况下,卷积核在几个维度上滑动,就是几维卷积

在这里插入图片描述
在这里插入图片描述

二、nn.Conv2d

nn.Conv2d是PyTorch中用于进行二维卷积操作的类。它可以对多个二维信号(如图像)进行二维卷积操作。

nn.Conv2d的主要参数如下:

  • in_channels:输入通道数,即输入信号的深度(或通道数)。
  • out_channels:输出通道数,即卷积核的个数,也可以理解为卷积操作后得到的特征图的深度。
  • kernel_size:卷积核的尺寸,可以是一个整数或一个元组,表示卷积核的高度和宽度。
  • stride:步长,表示卷积核在输入信号上滑动的步长,默认为1。
  • padding:填充个数,可以是一个整数或一个元组,表示在输入信号的周围填充的行数和列数,默认为0。
  • dilation:空洞卷积的大小,表示卷积核中的元素之间的间隔,默认为1。
  • groups:分组卷积设置,用于将输入和输出通道分组,默认为1,表示不分组。
  • bias:是否使用偏置项,默认为True。
  • padding_mode:填充模式,用于指定填充的方式,默认为’zeros’,表示用0进行填充。
    下面是nn.Conv2d的典型使用示例:
import torch
import torch.nn as nn
# 创建一个输入张量
input_tensor = torch.randn(1, 3, 32, 32)  # 输入通道数为3,大小为32x32的图像
# 创建一个卷积层
conv_layer = nn.Conv2d(in_channels=3, out_channels=64, kernel_size=3, stride=1, padding=1)
# 对输入张量进行卷积操作
output = conv_layer(input_tensor)

在上述示例中,我们首先创建了一个大小为1x3x32x32的输入张量,表示一个通道数为3、大小为32x32的图像。然后,我们创建了一个卷积层conv_layer,其中输入通道数为3,输出通道数为64,卷积核尺寸为3x3,步长为1,填充个数为1。最后,我们将输入张量传入卷积层进行卷积操作,得到输出张量output

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

尺寸计算

完整版的二维卷积尺寸计算公式如下:
在这里插入图片描述

输出尺寸 = floor((输入尺寸 + 2 * 填充个数 - 卷积核尺寸) / 步长) + 1

其中,

  • 输出尺寸是指卷积操作后得到的特征图的尺寸。
  • 输入尺寸是指输入信号(如图像)的尺寸。
  • 填充个数是指在输入信号的周围填充的行数和列数。
  • 卷积核尺寸是指卷积核的高度和宽度。
  • 步长是指卷积核在输入信号上滑动的步长。

这个公式可以用来计算卷积操作后得到的特征图的尺寸。

简化版:
在这里插入图片描述

简化版的二维卷积尺寸计算公式是在完整版的基础上进行了简化,假设填充个数为0,步长为1,即没有填充且卷积核每次滑动一个像素。这样,简化版的尺寸计算公式可以简化为:
输出尺寸 = 输入尺寸 - 卷积核尺寸 + 1

这个简化版的公式适用于常见的卷积操作情况,但在实际应用中,可能会根据具体需求进行填充和步长的设置,因此完整版的尺寸计算公式更加通用。

卷积维度:

一般情况下,卷积核在几个维度上滑动,就是几维卷积
在这里插入图片描述
在这里插入图片描述

三、转置卷积

转置卷积又称为反卷积(Deconvolution)和部分跨越卷积(Fractionally-strided Convolution) ,用于对图像进行上采样(UpSample)

为什么称为转置卷积?
假设图像尺寸为4 * 4,卷积核为3 * 3,padding=0,stride=1

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


nn.ConvTranspose2d

nn.ConvTranspose2d是PyTorch中用于实现转置卷积的函数。它可以用来进行上采样操作,将输入特征图的尺寸增大。

该函数的主要参数如下:

  • in_channels:输入通道数,指定输入特征图的通道数。
  • out_channels:输出通道数,指定输出特征图的通道数。
  • kernel_size:卷积核尺寸,指定卷积核的大小。
  • stride:步长,指定卷积核在输入特征图上滑动的步长。
  • padding:填充个数,指定在输入特征图周围添加的填充像素数。
  • output_padding:输出填充个数,指定在输出特征图周围添加的填充像素数。
  • groups:分组卷积设置,指定将输入通道和输出通道分成几组进行卷积操作。
  • bias:是否使用偏置项。
  • dilation:空洞卷积大小,指定卷积核中的元素之间的间距。
  • padding_mode:填充模式,指定填充的方式,常用的有’zeros’和’reflection’。

例如,使用nn.ConvTranspose2d可以创建一个转置卷积层的实例:

import torch.nn as nn# 创建一个转置卷积层的实例
conv_transpose = nn.ConvTranspose2d(in_channels=3, out_channels=64, kernel_size=3, stride=2, padding=1)

这样就创建了一个输入通道数为3,输出通道数为64的转置卷积层,卷积核大小为3x3,步长为2,填充个数为1。

转置卷积

转置卷积是一种用于实现上采样的操作,可以将输入特征图的尺寸增大。在转置卷积中,输出特征图的大小可以通过以下公式计算:

在这里插入图片描述

简化版:

out_size = (in_size - 1) * stride + kernel_size

完整版:

out_size = (in_size - 1) * stride - 2 * padding + dilation * (kernel_size - 1) + output_padding + 1

其中,

  • in_size:输入特征图的尺寸。
  • stride:步长,指定卷积核在输入特征图上滑动的步长。
  • kernel_size:卷积核尺寸,指定卷积核的大小。
  • padding:填充个数,指定在输入特征图周围添加的填充像素数。
  • dilation:空洞卷积大小,指定卷积核中的元素之间的间距。
  • output_padding:输出填充个数,指定在输出特征图周围添加的填充像素数。

这些公式可以用来计算转置卷积操作后输出特征图的尺寸。需要注意的是,由于转置卷积的操作涉及到填充和步长等参数,因此输出特征图的尺寸可能与输入特征图的尺寸不完全一致。

此外,您提到了棋盘效应(Checkerboard Artifacts)。这是在转置卷积中常见的一种伪影现象,可能导致生成的图像出现棋盘状的格子状伪影。为了减少棋盘效应,可以采用一些技巧,例如使用更大的步长、更小的卷积核尺寸、更大的填充等。

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

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

相关文章

将Llama2上下文长度扩展100倍;效率更高的SeTformer;LLM准确度基本不变加速1.56×;FreeTalker

本文首发于公众号:机器感知 将Llama2上下文长度扩展100倍;效率更高的SeTformer;LLM准确度基本不变加速1.56;FreeTalker Latte: Latent Diffusion Transformer for Video Generation 本文使用Latent Diffusion Transformer(Latte…

JS入门笔记整理:函数

函数一般用来实现某种重复使用的功能,在需要使用该功能的时候,直接调用函数就可以了,不需要再重复地编写一大堆代码。并且在需要修改该函数功能的时候,也只需要修改和维护这一个函数就行。函数一般会在两种情况下使用:…

Git(1):Git概述

1 开发中的实际场景 场景一:备份 小明负责的模块就要完成了,就在即将Release之前的一瞬间,电脑突然蓝屏,硬盘光荣牺牲!几个月来的努力付之东流 场景二:代码还原 这个项目中需要一个很复杂的功能&#x…

【重学C语言】一、C语言简介

【重学C语言】一、C语言简介 什么是编程语言?编程语言 C语言发展史C语言标准变迁开发软件CLion安装步骤 VIsual Studio安装步骤 Clion 和 VS2022 绑定 电脑常识 什么是编程语言? 人类语言:语言就是人类进行沟通交流的表达方式,应…

26 数字验证

效果演示 实现了一个简单的数字密码输入表单,用户需要输入一个4位数字密码来验证身份。表单包含一个标题、描述、输入字段、两个按钮和一个关闭按钮。输入字段是一个4位数字密码,用户需要在每个输入框中输入数字来输入密码。两个按钮分别是“验证”和“清…

windows下全免费手动搭建php8+mysql8开发环境及可视化工具安装

最近PHP项目少了,一直在研究UE5和Golang,但是考虑到政府、国企未来几年国产化的要求,可能又要重拾PHP。于是近日把用了N年的框架重新更新至适合PHP8.2以上的版本,同时也乘着新装机,再次搭建php和mysql开发环境。本文留…

0109作业

1> 思维导图 2> 使用手动连接,将登录框中的取消按钮使用qt4版本的连接到自定义的槽函数中,在自定义的槽函数中调用关闭函数 将登录按钮使用qt5版本的连接到自定义的槽函数中,在槽函数中判断ui界面上输入的账号是否为"admin&quo…

Spring学习 基于注解的IOC配置

3.基于注解的IOC配置 学习基于注解的IOC配置&#xff0c;大家脑海里首先得有一个认知&#xff0c;即注解配置和xml配置要实现的功能都是一样的&#xff0c;都是要降低程序间的耦合。只是配置的形式不一样。 3.1.创建工程 3.1.1.pom.xml <?xml version"1.0" en…

记录汇川:H5U与Fctory IO测试5

主程序&#xff1a; 子程序&#xff1a; IO映射 子程序&#xff1a; 自动程序 Fctory IO配置&#xff1a; 触摸屏如下&#xff1a; 实际动作如下&#xff1a; Fctory IO测试5

市场复盘总结 20240109

仅用于记录当天的市场情况&#xff0c;用于统计交易策略的适用情况&#xff0c;以便程序回测 短线核心&#xff1a;不参与任何级别的调整&#xff0c;采用龙空龙模式 昨日主题投资 连板进级率 66% 二进三&#xff1a; 进级率低 最常用的二种方法&#xff1a; 方法一&#x…

一台智能汽车会使用哪些芯片

目录 1.汽车芯片技术逻辑 2.汽车芯片产品详解和厂商一览 2.1 控制芯片 2.2 计算芯片 2.3 传感芯片 2.4 通信芯片 2.5 存储芯片 2.6 安全芯片 2.7 功率芯片 2.8 驱动芯片 2.9 电源管理芯片 2.10 系统基础芯片 3.小结 这两天算是和标准杠上了&#xff0c;哈哈。 昨…

红队打靶练习:RICKDICULOUSLYEASY: 1

目录 信息收集 1、arp 2、nmap 3、nikto 4、whatweb 目录探测 gobuster dirsearch WEB get flag1 /robots.txt FTP get flag2 telenet登录 get flag3 get flag4 9090端口 get flag5 dirsearch ssh登录 Summer用户 get flag6 信息收集 get flag7 get fl…

基于ssm的儿童影楼拍摄管理系统的设计与实现+vue论文

基于SSM的儿童影楼拍摄管理系统的设计与实现 摘 要 当下&#xff0c;正处于信息化的时代&#xff0c;许多行业顺应时代的变化&#xff0c;结合使用计算机技术向数字化、信息化建设迈进。以前相关行业对于商品信息的管理和控制&#xff0c;采用人工登记的方式保存相关数据&…

数据结构-函数题

6-2.求二叉树的高度 本题要求给定二叉树的高度。 函数接口定义&#xff1a; int GetHeight( BinTree BT ); typedef struct TNode *Position; typedef Position BinTree; struct TNode{ElementType Data;BinTree Left;BinTree Right; }; 要求函数返回给定二叉树BT的高度值…

国产系统-银河麒麟桌面版安装wps

0安装版本 系统版本 版本名称:银河麒麟桌面版操作系统V10(SP1) 软件版本 wps个人版2019 1双击安装 1.1卸载自带wps 为什么要卸载没有序列号,授权过期,不是免费的,通过先安装/在升级个人版跳过输入序列号问题等等原因 1.1.1当前自带的wps版本 1.1.2卸载 不卸载无法安装在…

6.1 截图工具HyperSnap6简介

图片是组成多媒体作品的基本元素之一&#xff0c;利用图片可以增强多媒体作品的亲和力和说说服力。截取图片最简单的方法是直接按下键盘上的“PrintScreen”键截取整个屏幕或按下“AltPrintScreen”组合键截取当前活动窗口&#xff0c;然后在画笔或者其它的图片处理软件中进行剪…

解决word图片格式错乱、回车图片不跟着换行的问题

解决word图片格式错乱、回车图片不跟着换行的问题 1.解决方法。 先设置为嵌入型 但是设置的话会出现下面的问题。图片显示不全。 进一步设置对应的行间距&#xff0c;原先设置的是固定值&#xff0c;需要改为1.5倍行距的形式&#xff0c;也就是说不能设置成固定值就可以。

爬取猫咪交易网

爬取猫咪品种&#xff0c;价格等在售数据 代码展现&#xff1a; 具体代码&#xff1a; import requests import re import os filename 声音// if not os.path.exists(filename): os.mkdir(filename) def down_load(page): for page in range(page): page …

各类Java对象

概念的混淆: 新一代的开发者&#xff0c;学习某一概念的不同描述或是案例后&#xff0c;人脑会去抽象、提取其特征。这一过程可能造成语义扩散、概念扭曲。这是一个盲人摸象的过程。 写到这里时&#xff0c;我在想&#xff1a;“盲人摸象”与“抽象”的“象”是不是一个意思呢&…

灵魂三连问:是5G卡吗?支持5G吗?是5G套餐吗

关于5G的问题&#xff0c;小伙伴们的疑问是不是很多&#xff0c;它和4G到底有什么区别呢&#xff1f;什么是5G卡&#xff1f;什么是5G套餐&#xff1f;支持5G吗&#xff1f;什么是5G基站&#xff1f;我想大家现在一定是晕的&#xff0c;下面小编来给大家解惑&#xff01; 1&…