关于地平线开发板使用nhwc格式的前向传播输出格式的理解

news2025/1/11 17:36:35

1. 从数据维度角度理解NHWC输出

• 在深度学习中,模型的输出可以看作是一个多维的数据结构。对于图像相关的模型,当输出是NHWC格式时,“N”代表批次大小(batch size),即一次处理的图像数量;“H”是高度(height),“W”是宽度(width),这两个维度确定了图像的空间尺寸;“C”是通道数(channels),比如对于彩色图像,通道数可能是3(RGB)。

• 例如,一个模型输出的形状为[10, 28, 28, 3](假设是一个简单的图像分类模型),这意味着一次输出10张图像,每张图像的高度是28像素、宽度是28像素,且有3个通道(可能是RGB通道)。

2. 从计算过程角度理解

• 在模型计算过程中,某些层的计算方式会自然地导致输出为NHWC格式。以卷积层为例,如果输入是NHWC格式,在经过卷积运算后,输出的数据格式通常也会保持NHWC。这是因为卷积操作是在图像的高度和宽度方向上滑动卷积核进行计算的,输出的数据在空间维度(高度和宽度)上的排列顺序与输入类似,通道数可能会根据卷积核的数量等因素而改变,但整体格式依然是NHWC。

3. 从应用场景角度理解

当数据按照NHWC格式排列时,它能够有效地提高CPU缓存的效率,并且对于基于空间信息的操作非常友好。由于大多数图像处理任务都是按行优先的方式访问数据——即先遍历宽度再遍历高度——NHWC格式确保了连续访问的数据在内存中的位置也是连续的。这意味着当CPU读取一个像素时,它周围的像素也会一同加载到缓存中,从而减少了后续访问这些相邻像素时需要再次从主存读取的可能性,进而提高了缓存命中率。这种高效的内存访问模式不仅加快了卷积运算等前向传播的速度,也对依赖于图像空间坐标的后处理步骤有着直接的帮助。
3.1 对分类ID的Cache命中提高

• 当进行分类任务时,分类ID通常与图像的特征相关联。在读取图像特征以确定分类ID的过程中,如果数据是HWC布局,在访问特征数据时,由于其在内存中的连续性,更符合cache的读取模式。

• 例如,假设cache一次能读取连续的一段数据块。在HWC布局下,对于一个图像区域的特征数据(包括与分类ID相关的特征),它们在内存中更有可能被连续存储,从而更容易被一起读入cache。当需要再次访问这些与分类ID相关的数据进行比较或者其他操作时,就更有可能直接从cache中获取,提高了分类ID相关数据的cache命中率。

3.2 对特征解码的Cache命中提高

• 在特征解码过程中,需要读取图像的特征数据。以卷积神经网络为例,在对卷积层输出的特征图进行解码操作时,HWC布局能够使相邻像素的特征数据以及同一通道的特征数据在内存中连续存储。

• 当解码器按照一定的顺序(例如逐行扫描图像特征)读取数据时,这些连续的数据更有可能被预先加载到cache中。因为cache的工作原理是将最近访问过的数据及其附近的数据存储起来,以备后续访问。HWC布局下的数据存储方式正好符合这种特性,使得在特征解码过程中频繁访问的数据能够在cache中被找到的概率增加,从而提高了特征解码的cache命中率。

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

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

相关文章

LabVIEW数据库管理系统

LabVIEW数据库管理系统(DBMS)是一种集成了数据库技术与数据采集、控制系统的解决方案。通过LabVIEW的强大图形化编程环境,结合数据库的高效数据存储与管理能力,开发人员可以实现高效的数据交互、存储、查询、更新和报告生成。LabV…

微服务实现高并发 秒杀系统,前后端实现

一、前端实现 前端项目初始化 首先,我们需要创建一个新的 Vue 3 项目。你可以使用 Vue CLI 来快速搭建项目。 安装 Vue CLI(如果尚未安装) bash npm install -g vue/cli 创建 Vue 项目 bash vue create seckill-frontend cd seckill-f…

Http请求响应——请求

Http概述 Http协议(HyperText Transfer Protocol,超文本传输协议),是一种用于传输网页数据的协议,规定了浏览器和服务器之间进行数据传输的规则,简单说来就是客户端与服务器端数据交互的数据格式。 客户端…

Vue3 + Vite + Electron + Ts 项目快速创建

一、创建 Vue 项目 1. 创建项目 pnpm create vite 2. 安装依赖 cd excel-electron pnpm install 3. 运行项目 pnpm dev 二、添加 Electron 1. 安装 electron pnpm add electron -D 2. 修改 package.json 添加入口 js 和执行命令。 {"main": "dist-ele…

socket网络编程-TC/IP方式

网络编程 1.概念:两台设备之间通过网络数据传输。 2.网络通信:将数据通过网络从一台设备传输另外一台设备。 3.java.net包下提供了一系列的类和接口,提供程序员使用,完成网络通信。 TCP和UDP TCP协议: 1.使用TCP协…

RabbitMQ基本介绍及简单上手

(一)什么是MQ MQ(message queue)本质上是队列,满足先入先出,只不过队列中存放的内容是消息而已,那什么是消息呢? 消息可以是字符串,json也可以是一些复杂对象 我们应用场…

【Rust自学】11.3. 自定义错误信息

喜欢的话别忘了点赞、收藏加关注哦,对接下来的教程有兴趣的可以关注专栏。谢谢喵!(・ω・) 11.3.1. 添加错误信息 在 11.2. 断言(Assert) 中我们学习了assert!、assert_eq!和assert_ne!这三个宏,而这篇文章讲的就是它…

某漫画网站JS逆向反混淆流程分析

文章目录 1. 写在前面1. 接口分析2. 反混淆分析 【🏠作者主页】:吴秋霖 【💼作者介绍】:擅长爬虫与JS加密逆向分析!Python领域优质创作者、CSDN博客专家、阿里云博客专家、华为云享专家。一路走来长期坚守并致力于Pyth…

网络分析与监控:阿里云拨测方案解密

作者:俞嵩(榆松) 随着互联网的蓬勃发展,网络和服务的稳定性已成为社会秩序中不可或缺的一部分。一旦网络和服务发生故障,其带来的后果将波及整个社会、企业和民众的生活质量,造成难以估量的损失。 2020 年 12 月: Ak…

STL——二叉搜索树

目录 二叉搜索树的概念 ⼆叉搜索树的性能分析 ⼆叉搜索树的插⼊ ⼆叉搜索树的查找 ⼆叉搜索树的删除 中序遍历结果为升序序列 二叉搜索树的概念 ⼆叉搜索树⼜称⼆叉排序树,它或者是⼀棵空树,或者是具有以下性质的⼆叉树 • 若它的左⼦树不为空&#…

【文件I/O】UNIX文件基础

IO编程的本质是通过 API 操作 文件。 什么是 IO I - Input 输入O - Output 输出 这里的输入和输出都是站在应用(运行中的程序)的角度。外部特指文件。 这里的文件是泛指,并不是只表示存在存盘中的常规文件。还有设备、套接字、管道、链接…

VS调试MFC进入系统源代码配置

调试MFC代码有时候能进入MFC的源代码,有时候不能.之前一直没有深入研究.后面经过查资料发现每次调试必能进入源代码的配置.很简单,只需要3步. 1.打开工具->选项->调试->符号,勾选Microsoft符号服务器. 2.打开项目->属性->配置属性->常规,MFC的使用修改成&qu…

车载网络:现代汽车的数字心跳

在汽车领域,“智能汽车”一词毫不夸张。如今的汽车已不再是原始的机械工程,而是通过先进的车载网络无缝连接的精密数字生态系统。这些滚动计算机由复杂的电子控制单元(ECU)网络提供动力,ECU是负责管理从发动机性能到信息娱乐系统等一切事务的…

mycat介绍与操作步骤

文章目录 1.分库分表2.mycat 入门2.1 概述2.2 案例:水平分表1)准备工作2)配置3)启动并测试 3.mycat 配置详解3.1 schema.xml3.2 rule.xml3.3 server.xml 4.mycat 分片:垂直拆分1)准备工作2)配置…

【Python】Python之Selenium基础教程+实战demo:提升你的测试+测试数据构造的效率!

这里写目录标题 什么是Selenium?Selenium基础用法详解环境搭建编写第一个Selenium脚本解析脚本脚本执行结果常用的元素定位方法常用的WebDriver方法等待机制 Selenium高级技巧详解页面元素操作处理弹窗和警告框截图和日志记录多窗口和多标签页操作 一个实战的小demo…

Apache XMLBeans 一个强大的 XML 数据处理框架

Apache XMLBeans 是一个用于处理 XML 数据的 Java 框架,它提供了一种方式将 XML Schema (XSD) 映射到 Java 类,从而使得开发者可以通过强类型化的 Java 对象来访问和操作 XML 文档。下面将以一个简单的案例说明如何使用 Apache XMLBeans 来解析、生成和验…

带格式 pdf 翻译

支持 openAI 接口,国内 deepseek 接口兼容 openAI 接口, deepseek api 又非常便宜 https://pdf2zh.com/ https://github.com/Byaidu/PDFMathTranslate

ubuntu22.04降级安装CUDA11.3

环境:主机x64的ubuntu22.04,原有CUDA12.1,但是现在需要CUDA11.3,本篇文章介绍步骤。 一、下载CUDA11.3的run文件 下载网址:https://developer.nvidia.com/cuda-11-3-1-download-archive?target_osLinux&target_…

9 异常

如果你希望在软件调试上有所突破,或者想了解如何通过异常进行反调试,或者想自己写一个调试器,那么就必须要深入了解异常,异常与调试是紧密相连的,异常是调试的基础。 异常产生后,首先是要记录异常信息(异常的类型、异常发生的位置等),然后要寻找异常的处理函数,我们…

springBoot整合ELK Windowsb版本 (elasticsearch+logstash+kibana)

springBoot整合ELK Windowsb版本 【elasticsearchlogstashkibana】 下载软件启动服务1、elasticsearch2、kibana3、logstash 集成springboot1、添加依赖2、在logback.xml添加相关配置3、修改logstash 配置4、重启logstash 最后测试 下载软件 elasticsearch 官网 https://www.…