当前位置: 首页 > news >正文

卷积的计算——nn.Conv2d(Torch.nn里的Convolution Layers模块里的Conv2d类)

 **前置知识:

1、张量和通道

张量:多维数组,用来表示数据(图像、视频等)

通道:图像数据的一部分,表示不同的颜色或特征层

通道只是张量的其中一个维度

以一张RGB图像为例,

该图像数据可以用一个三维张量(shape等于(C,H,W))来表示

其中C表示通道数(对于RGB图像,C=3),H表示高度,W表示宽度

再以一批64张图像组成的数据对象来看,

它可以用一个四维张量(shape等于(N,C,H,W))来表示

其中N表示批次大小(一批次图像的数量)

关于通道的补充:

2、Reshape:输入数据和卷积核张量的重塑

input = torch.reshape(input, (1, 1, 5, 5))

  • 1第一个 1 表示有 1 张图片(批量大小)
  • 1第二个 1 表示输入的通道数(这里是单通道,表示灰度图像)
  • 55:分别表示图像的高度和宽度

kernel = torch.reshape(kernel, (1, 1, 3, 3))

  • 1第一个 1 表示有 1 个卷积核(输出通道数)
  • 1第二个 1 表示卷积核的输入通道数(与input的输入通道数匹配)
  • 33:分别表示卷积核的高度和宽度

通过重塑,增加的信息主要是关于批量大小和通道数,

这使得输入和卷积核符合 conv2d 函数的要求

(输入张量必须是四维的,形状为 (N, C, H, W),

卷积核(权重)必须是四维的,形状为 (out_channels, in_channels, kernel_height, kernel_width):)

补充:

一张2*2RGB图像与一个3*3卷积核的卷积:

reshape后:

input的形状是(1,3,2,2),1表示1张图片

卷积核的形状是(1,3,3,3),1表示1个输出通道

3、output=F.conv2d(input,kernel,stride=1,padding=1)

input输入张量(4维)
kernel卷积核(4维)
stride卷积核移动的步幅(可以是一个整数或元组,默认为 1)
padding在输入的边缘添加零填充(帮助保持输出的空间尺寸)

**代码:

步骤:

import torch.nn.functional as F

定义input、kernel——>修改成四维形状reshape——>使用conv2d进行卷积

灰度图像的卷积:帮助识别图像中的特定特征,如边缘或纹理

import torch
import torch.nn.functional as Finput=torch.tensor([[1,2,0,3,1],[0,1,2,3,1],[1,2,1,0,0],[5,2,3,1,1],[2,1,0,1,1]
])#卷积核
kernel=torch.tensor([[1,2,1],[0,1,0],[2,1,0]
])print(input.shape)
print(kernel.shape)input=torch.reshape(input,(1,1,5,5))  #图片数,图层数(通道数),宽,高
kernel=torch.reshape(kernel,(1,1,3,3))print(input.shape)
print(kernel.shape)output1=F.conv2d(input,kernel,stride=1)
print(output1)output2=F.conv2d(input,kernel,stride=2)
print(output2)output3=F.conv2d(input,kernel,stride=1,padding=1)
print(output3)

相关文章:

卷积的计算——nn.Conv2d(Torch.nn里的Convolution Layers模块里的Conv2d类)

**前置知识: 1、张量和通道 张量:多维数组,用来表示数据(图像、视频等) 通道:图像数据的一部分,表示不同的颜色或特征层 通道只是张量的其中一个维度 以一张RGB图像为例, 该图像…...

确保接口安全:六大方案有效解决幂等性问题

文章目录 六大方案解决接口幂等问题什么是接口幂等?天然幂等不做幂等会怎么样? 解决方案1)insert前先select2)使用唯一索引3)去重表加悲观锁4)加乐观锁之版本号机制5)使用 Redisson 分布式锁6&a…...

代码随想录算法训练营第二十九天| 93. 复原 IP 地址,78. 子集, 90. 子集 II

93. 复原 IP 地址,78. 子集, 90. 子集 II 93. 复原 IP 地址78. 子集90. 子集 II 93. 复原 IP 地址 有效 IP 地址 正好由四个整数(每个整数位于 0 0 0 到 255 255 255之间组成,且不能含有前导 0 0 0),整…...

【WebGis开发 - Cesium】三维可视化项目教程---初始化场景

系列文章目录 【WebGis开发 - Cesium】三维可视化项目教程—图层管理基础【WebGis开发 - Cesium】三维可视化项目教程—视点管理 目录 系列文章目录引言一、Cesium引入项目1.1 下载资源1.2 项目引入Cesium 二、初始化地球2.1 创建基础文件2.1.1 创建Cesium工具方法文件2.1.2 创…...

点云中ICP算法的详解

ICP(Iterative Closest Point)算法是一种用于刚性点云配准的经典算法。其核心思想是通过迭代地寻找两个点云之间的最近点对,并计算最优的刚性变换(包括旋转和平移),使得源点云在目标点云的坐标系下对齐。IC…...

抽象类Abstart Class

抽象类其实就是一种不完全的设计图 必须用abstract修饰 模板方法:建议使用final修饰,不能被重写。...

Redis:通用命令 数据类型

Redis:通用命令 & 数据类型 通用命令SETGETKEYSEXISTSDELEXPIRETTLTYPEFLUSHALL 数据类型 Redis的客户端提供了很多命令用于操控Redis,在Redis中,key的类型都是字符串,而value有多种类型,每种类型都有自己的操作命…...

【Python高级编程】探索Python库:创建引人入胜的交互界面

1.制作交互界面常用到的库 在 Python 中,有多个库可以用于创建交互界面(GUI)。 以下是一些常用的 Python GUI 库: Tkinter: Python 的标准 GUI 库,通常随 Python 一起安装。简单易用,适合快速开发小型应用…...

OpenCV Canny()函数

OpenCV Canny()函数被用来检测图像物体的边缘。其算法原理如下: 高斯滤波:使用高斯滤波器平滑图像以减少噪声。高斯滤波器是一种线性滤波器,可以消除图像中的高频噪声,同时保留边缘信息。计算梯度强度和方向:使用Sobe…...

Java基础(3)

基本数据类型 Java 中的几种基本数据类型了解么? Java 中有 8 种基本数据类型,分别为: 6 种数字类型: 4 种整数型:byte、short、int、long2 种浮点型:float、double1 种字符类型:char1 种布尔…...

【C语言】VS调试技巧

文章目录 什么是bug什么是调试(debug)debug和releaseVS调试快捷键监视和内存观察编程常见错误归类 什么是bug bug本意是“昆虫”或“虫子”,现在一般是指在电脑系统或程序中,隐藏着的一些未被发现的缺陷或问题,简称程…...

【华为HCIP实战课程七】OSPF邻居关系排错MTU问题,网络工程师

一、MTU MUT默认1500,最大传输单元,一致性检测 [R3-GigabitEthernet0/0/1]mtu 1503//更改R3的MTU为1503 查看R3和SW1之间的OSPF邻居关系正常: 默认华为设备没有开启MTU一致性检测! [R3-GigabitEthernet0/0/1]ospf mtu-enable //手动开启MTU检测 [SW1-Vlanif30]ospf mtu…...

速盾:休闲类游戏如何选择高防cdn?

休闲类游戏的流行度日益增长,越来越多的玩家在业余时间里选择放松自己,享受游戏带来的乐趣。然而,在休闲类游戏中,网络延迟和游戏载入速度的问题常常会影响到玩家的游戏体验。为了解决这些问题,选择一个高防CDN&#x…...

电脑插上U盘不显示怎么回事?怎么解决?

平时使用电脑的时候经常会使用U盘来传输数据或是备份文件,有时候会遇到一个令头疼的问题,比如,将U盘插入电脑的USB口后,设备却显示不出来。电脑上插入U盘后却不显示会影响我们的正常工作。接下来,我们一起分析一下故障…...

Python 如何使用 SQLAlchemy 进行复杂查询

Python 如何使用 SQLAlchemy 进行复杂查询 一、引言 SQLAlchemy 是 Python 生态系统中非常流行的数据库处理库,它提供了一种高效、简洁的方式与数据库进行交互。SQLAlchemy 是一个功能强大的数据库工具,支持结构化查询语言(SQL)…...

nginx主配置文件

Nginx的主配置文件nginx.conf,一般定义了Nginx的基本设置和全局配置。下面是对这个配置文件的详细解释: 文件结构 #user nobody; worker_processes 1;#error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log …...

使用数据库:

数据库: 1.为何需要数据库? 存储数据方法 第一种:用大脑记住数据, 第二种:写纸上, 第三种:写在计算机的内存中, 第四种:写出磁盘文件 2.数据库能做什么&#xff1…...

python list, tuple dict,set的区别 以及**kwargs 的基本用法

在python中, list, tuple, dict, set有什么区别, 主要应用在什么样的场景? 定义: list:链表,有序的项目, 通过索引进行查找,使用方括号”[]”; tuple:元组,元组将多样的对象集合到一起,不能修改,通过索引进行查找, 使用括号”()”; dict:字典,字典是一组键(key)和值(value…...

实用生活英语口语学习成人零基础入门柯桥专业外语培训

“秋裤”的英语表达 首先,秋裤肯定不是autumn pants,chill cool就更离谱了! 最地道的美语说法一定会用到“thermal”这个单词: ▼ “thermal”的意思是“热的、保温的”,由此延伸出“秋裤、保暖内衣”的表达&#xff…...

FLINK SQL数据类型

Flink SQL支持非常完善的数据类型,以满足不同的数据处理需求。以下是对Flink SQL数据类型的详细归纳: 一、原子数据类型 字符串类型 CHAR、CHAR(n):定长字符串,n代表字符的定长,取值范围为[1, 2147483647]。如果不指…...

label-studio的使用教程(导入本地路径)

文章目录 1. 准备环境2. 脚本启动2.1 Windows2.2 Linux 3. 安装label-studio机器学习后端3.1 pip安装(推荐)3.2 GitHub仓库安装 4. 后端配置4.1 yolo环境4.2 引入后端模型4.3 修改脚本4.4 启动后端 5. 标注工程5.1 创建工程5.2 配置图片路径5.3 配置工程类型标签5.4 配置模型5.…...

Oracle查询表空间大小

1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...

学校招生小程序源码介绍

基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码,专为学校招生场景量身打造,功能实用且操作便捷。 从技术架构来看,ThinkPHP提供稳定可靠的后台服务,FastAdmin加速开发流程,UniApp则保障小程序在多端有良好的兼…...

MVC 数据库

MVC 数据库 引言 在软件开发领域,Model-View-Controller(MVC)是一种流行的软件架构模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这种模式有助于提高代码的可维护性和可扩展性。本文将深入探讨MVC架构与数据库之间的关系,以…...

论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)

宇树机器人多姿态起立控制强化学习框架论文解析 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一) 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化…...

NLP学习路线图(二十三):长短期记忆网络(LSTM)

在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...

ArcGIS Pro制作水平横向图例+多级标注

今天介绍下载ArcGIS Pro中如何设置水平横向图例。 之前我们介绍了ArcGIS的横向图例制作:ArcGIS横向、多列图例、顺序重排、符号居中、批量更改图例符号等等(ArcGIS出图图例8大技巧),那这次我们看看ArcGIS Pro如何更加快捷的操作。…...

STM32HAL库USART源代码解析及应用

STM32HAL库USART源代码解析 前言STM32CubeIDE配置串口USART和UART的选择使用模式参数设置GPIO配置DMA配置中断配置硬件流控制使能生成代码解析和使用方法串口初始化__UART_HandleTypeDef结构体浅析HAL库代码实际使用方法使用轮询方式发送使用轮询方式接收使用中断方式发送使用中…...

苹果AI眼镜:从“工具”到“社交姿态”的范式革命——重新定义AI交互入口的未来机会

在2025年的AI硬件浪潮中,苹果AI眼镜(Apple Glasses)正在引发一场关于“人机交互形态”的深度思考。它并非简单地替代AirPods或Apple Watch,而是开辟了一个全新的、日常可接受的AI入口。其核心价值不在于功能的堆叠,而在于如何通过形态设计打破社交壁垒,成为用户“全天佩戴…...

LOOI机器人的技术实现解析:从手势识别到边缘检测

LOOI机器人作为一款创新的AI硬件产品,通过将智能手机转变为具有情感交互能力的桌面机器人,展示了前沿AI技术与传统硬件设计的完美结合。作为AI与玩具领域的专家,我将全面解析LOOI的技术实现架构,特别是其手势识别、物体识别和环境…...