【正点原子i.MX93开发板试用连载体验】AI程序的验证

本文最早发表于电子发烧友论坛:【新提醒】【正点原子i.MX93开发板试用连载体验】基于深度学习的语音本地控制 - 正点原子学习小组 - 电子技术论坛 - 广受欢迎的专业电子论坛! (elecfans.com)

这次的主要目标就是学习NXP的AI程序开发。首先阅读了《05【正点原子】ATK-DLIMX93嵌入式AI开发手册V1.0》文档,这个文档写得很清楚,不过我建议大家读一下原厂文档《i.MX Machine Learning User's Guide》,里面有些技术细节更清楚。下面就介绍一下自己对I.MX 93平台的测试。

i.MX 93支持在Cortex-A上进行CPU推理,也支持为 Arm 自研的 Ethos-U65(NPU)上进行推理。当然后者的推理速度比前者快很多。I.MX 93对不同推理的支持是通过选择委托(Delegate)来实现的。如果选择XNNPACK就是CPU推理,而使用Ethos-U委托就是采用NPU推理。NXP在其他硬件平台上还提供了更多的推理选项,这里就不讨论了。

我测试了厂商提供的图像分类程序,它在开发板的/usr/bin/eiq-examples-git/image_classification目录中。要运行这个程序,首先需要下载模型文件。/usr/bin/eiq-examples-git/download_models.py 这个脚本是用来下载模型的,不过这个脚本要访问谷歌网盘,不方便的朋友可以从正点原子的网盘下载所需要的文件。

安装好模型文件后,如果运行python3 label_image.py就执行的是CPU推理,需要63.815ms。

root@atk-imx93:/usr/bin/eiq-examples-git/image_classification# python3 label_image.py0.878431: military uniform0.027451: Windsor tie0.011765: mortarboard0.011765: bulletproof vest0.007843: saxtime: 63.815ms

如果想使用NPU推理,就需要在命令行使用-d制定推理所需要的库文件:

python3 label_image.py  -d /usr/lib/libethosu_delegate.so

正点原子的文档说要使用NPU推理,需要用开发板上的vela 工具将tflite模型编译成可以使 NPU 进行推理的 vela 模型,而且模型只支持8位或16位量化。

使用NPU后,推理时间减少到4ms。

root@atk-imx93:/usr/bin/eiq-examples-git/image_classification# python3 label_image.py  -d /usr/lib/libethosu_delegate.soINFO: Ethosu delegate: device_name set to /dev/ethosu0.INFO: Ethosu delegate: cache_file_path set to .INFO: Ethosu delegate: timeout set to 60000000000.INFO: Ethosu delegate: enable_cycle_counter set to 0.INFO: Ethosu delegate: enable_profiling set to 0.INFO: Ethosu delegate: profiling_buffer_size set to 2048.INFO: Ethosu delegate: pmu_event0 set to 0.INFO: Ethosu delegate: pmu_event1 set to 0.INFO: Ethosu delegate: pmu_event2 set to 0.INFO: Ethosu delegate: pmu_event3 set to 0.INFO: EthosuDelegate: 31 nodes delegated out of 31 nodes with 1 partitions.0.874510: military uniform0.031373: Windsor tie0.015686: mortarboard0.011765: bulletproof vest0.007843: bow tietime: 4.016ms

 

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

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

相关文章

扩展任务1:完成页面的布局设计和美化

任务指导 1、参照下图,完成页面的布局和美化设计: 2、实现思路 例如可以通过修改Style样式的方式完成布局调整,具体页面显示样式,需要学生根据自己的喜好和设计自行完成,建议每个学生的页面尽量个性化设计&#xff0…

锅总反驳李彦宏说的“不要卷模型,要卷应用”

李彦宏的观点是大家不要卷模型,要卷应用,但我认为这种看法是荒谬的。以下是24条反驳李彦宏观点的论点和论据: 模型的准确性直接决定应用的质量和用户体验: 论据:在自然语言处理、计算机视觉等领域,模型的准…

【HTML入门】第六课 - 上标字、下标字和删除字

这一小节,我们说3个比较特殊的,用到的场景不多,但需要的时候绝对是有用处的。他们分别是上标字,下标字和删除字。 目录 1 上标字 2 下标字 3 删除字 4 学习HTML的一些问题 1 上标字 什么是上标字呢?你是否记得多少…

线程并发库复习

1.进行和线程 什么是进程:进程是内存分配的基本单位,它是程序执行时的一个实例,会被放到进程就绪队列,等进程调度器选择它,给它时间片,它才会运行。在java中启动进程,main,test&…

uniapp移动端实现商品拖拽集合,一行多个商品左滑删除功能!

许久未见,最近遇到一个产品,他是第一次做产品。总是有一些反人类的设计。没错,就是标题上的拖拽集合,以及商品的左滑删除。这种功能放眼各大app我都没找到有用这种设计的,他口口声声说他用过会找给我看,我等…

MySQL GROUP_CONCAT 函数详解与实战应用

提示:在需要将多个值组合成一个列表时,GROUP_CONCAT() 函数为 MySQL 提供了一种强大的方式来处理数据 文章目录 前言什么是 GROUP_CONCAT()基本语法 示例使用 GROUP_CONCAT()去除重复值排序结果 前言 提示:这里可以添加本文要记录的大概内容…

16:9横屏短视频素材库有哪些?横屏短视频素材网站分享

在这个视觉内容至关重要的时代,16:9横屏视频因其宽广的画面和优越的观赏体验,已经成为无数创作者和营销专家的首选格式。但要创造出吸引人的横屏视频,高质量的视频素材库是不可或缺的。不管你是资深视频制作人还是刚入行的新手,下…

02day-C++学习(const 指针与引用的关系 inline nullptr)

02day-C学习 1. 使用const注意事项 注意事项 • 可以引⽤⼀个const对象,但是必须⽤const引⽤。const引⽤也可以引⽤普通对象,因为对象的访 问权限在引⽤过程中可以缩⼩,但是不能放⼤。 • 不需要注意的是类似 int& rb a3; double d 1…

SVM - 径向基函数核 Radial Basis Function Kernel,简称RBF核或者高斯核

SVM - 径向基函数核 Radial Basis Function Kernel,简称RBF核或者高斯核 flyfish 径向基函数核(Radial Basis Function Kernel,简称RBF核),也称为高斯核,是一种常用的核函数,用于支持向量机&a…

2025考研~数据结构试卷

作者主页:知孤云出岫 数据结构试题 [TOC](数据结构试题)数据结构试卷一、选择题(每题2分,共20分)二、填空题(每题3分,共15分)三、简答题(每题10分,共40分)四…

15.分频器设计--偶分频

设计一个六分频时钟信号 (1)visio视图: (2)Verilog代码: module divider_six(clk,reset_n,clk_out);input clk;input reset_n;output reg clk_out;reg [1:0]cnt;//计数器模块设计 always(posedge clk o…

突破传统,实时语音技术的革命。Livekit 开源代理框架来袭

🚀 突破传统,实时语音技术的革命!Livekit 开源代理框架来袭! 在数字化时代,实时通信已成为我们日常生活的一部分。但你是否曾想象过,一个能够轻松处理音视频流的代理框架,会如何改变我们的沟通方式?今天,我们就来一探究竟! 🌟 什么是 Livekit 代理框架? Live…

大数据基础:Hadoop之HDFS重点架构原理

文章目录 Hadoop之HDFS重点架构原理 一、什么是Hadoop 二、HDFS简介 三、HDFS架构 3.1、NameNode 3.2、SecondaryNameNode 3.3、DataNode 3.4、Client 四、fsimage和editslog合并 五、Block副本放置策略 六、读写流程 6.1、HDFS写文件流程 6.2、HDFS读文件流程 Ha…

2024年7月1日,公布的OpenSSH的漏洞【CVE-2024-6387】

目录 ■概要 ■概要(日语) ■相关知识 openssh 和 ssh 有区别吗 如何查看 openssh的版本 漏洞描述 glibc Linux是什么 如何查看系统是不是基于 Gibc RHEL Linux 是基于Glibc的Linux吗 还有哪些 Linux版本是基于 GNU C库(glibc&…

JustAuth实现多个钉钉扫码登录

需求: 实现多个钉钉组织的用户绑定和扫码登录。 JustAuth框架实现钉钉扫码登录用到的dingTalk接口: https://oapi.dingtalk.com/connect/qrconnecthttps://oapi.dingtalk.com/connect/oauth2/sns_authorize根据sns临时授权码获取用户信息 https://oap…

Java基础之Stringjoiner

Stringjioiner的概述 StringJoiner跟StringBuilder一样,也可以看成是一个容器,创建之后里面的内容是可变的。作用:提高字符串的操作效率,而且代码编写特别简洁,但是目前市场上很少有人用。 Stringjoiner的构造方法 Stringjoiner…

软件许可证优化怎么做最好!

在当今数字化发展的浪潮中,软件许可证的优化成为了 IT 总监们面临的一项重要挑战。在许可数量受限的情况下,如何将现有许可发挥最大利用率,是一个亟待解决的问题。 信息采集是优化的基础。 我们需要采集关于软件使用频率、使用时长、用户部门…

05.C1W4.Machine Translation and Document Search

往期文章请点这里 目录 OverviewWhat you’ll be able to do!Learning Objectives Transforming word vectorsOverview of TranslationTransforming vectors Align word vectorsSolving for RFrobenius normFrobenius norm squaredGradient K nearest neighborsFinding the tr…

【1.2】动态规划-买卖股票的最佳时机

一、题目 给定一个数组,它的第i个元素是一支给定的股票在第i天的价格。设计一个算法来计算你所能获取的最大利润。你最多可以完成两笔交易。 注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。 示例 1: 输入&a…

运用sessionId redis中获取用户的信息rg.springframework.session.SessionRepository

这个类是 org.springframework.session.SessionRepository 接口,它定义了操作 Session 的基本方法。SessionRepository 是 Spring Session 框架的一部分,用于管理和存储用户的 HTTP Session。下面是这个接口的详细解释: SessionRepository&l…