学习昇腾开发的六天--ACL应用开发之运行第一个实例

1、下载一个实例,运行一个图像分类实例(环境:Ubuntu22.04,硬件:昇腾310B1,加速模块:atlas 200i a2)

samples: CANN Samples - Gitee.com

目录结构如下:

├── data
│   ├── dog1_1024_683.jpg            //测试数据,需要按指导获取测试图片,放到data目录下
│   ├── dog2_1024_683.jpg            //测试数据,需要按指导获取测试图片,放到data目录下

├── inc
│   ├── model_process.h               //声明模型处理相关函数的头文件
│   ├── sample_process.h              //声明资源初始化/销毁相关函数的头文件                   
│   ├── utils.h                       //声明公共函数(例如:文件读取函数)的头文件

├── script
│   ├── transferPic.py               //将*.jpg转换为*.bin,同时将图片从1024*683的分辨率缩放为224*224

├── src
│   ├── acl.json         //系统初始化的配置文件
│   ├── CMakeLists.txt         //编译脚本
│   ├── main.cpp               //主函数,图片分类功能的实现文件
│   ├── model_process.cpp      //模型处理相关函数的实现文件
│   ├── sample_process.cpp     //资源初始化/销毁相关函数的实现文件                                          
│   ├── utils.cpp              //公共函数(例如:文件读取函数)的实现文件

├── .project     //工程信息文件,包含工程类型、工程描述、运行目标设备类型等
├── CMakeLists.txt    //编译脚本,调用src目录下的CMakeLists文件

2、简化版步骤(注意下面的目录是我的将实例从gitee下载下来后拷贝在notebooks下的):

---------------------------------------------------准备工作--------------------------------------------------------------

1)下载实例

2)在vscode中打开实例

3)下载权重文件(ResNet-50原始模型):

  • ResNet-50网络的模型文件(*.prototxt):单击Link下载该文件。
  • ResNet-50网络的权重文件(*.caffemodel):单击Link下载该文件。
  • 将权重文件放在/home/HwHiAiUser/samples/notebooks/resnet50_imagenet_classification/caffe_model“目录下。如果目录不存在,需要自行创建。

4)将ResNet-50原始模型转换为适配昇腾AI处理器的离线模型(*.om文件),我的处理器是昇腾310B1。可以通过npu-smi info指令进行查询自己的硬件芯片型号

atc --model=caffe_model/resnet50.prototxt --weight=caffe_model/resnet50.caffemodel --framework=0 --output=model/resnet50 --soc_version=Ascend310B1 --input_format=NCHW --input_fp16_nodes=data --output_type=FP32 --out_nodes=prob:0

5)准备测试图片,放在data目录下

6)切换到“样例目录/data“目录下,执行transferPic.py脚本,将*.jpg转换为*.bin,同时将图片从1024*683的分辨率缩放为224*224。在“样例目录/data“目录下生成2个*.bin文件。

python3 ../script/transferPic.py

---------------------------------------------------编译运行--------------------------------------------------------------

7)回到resnet50_imagenet_classification目录下(这里需要修改为自己的目录,具体修改方法,见上方详细链接)

export DDK_PATH=/usr/local/Ascend/ascend-toolkit/latest
export NPU_HOST_LIB=/usr/local/Ascend/ascend-toolkit/latest/runtime/lib64/stub

8)新建目录用于存放编译文件

mkdir -p build/intermediates/host

9)切换都按新建的目录下,并编译

cd build/intermediates/host
cmake ../../../src -DCMAKE_CXX_COMPILER=g++ -DCMAKE_SKIP_RPATH=TRUE

10)编译成功后生成可执行文件

make

11)切换到生成的可执行文件目录下运行,out目录

./main

12)以上就是快速体验的步骤,大多失败是出现在目录上和型号上,新手第一次实现建议前期一步一步把准备工作做好,重要目录存档,或者都翻几遍就熟悉了,还有可能出现的是用户权限问题,切换为root用户一般能解决这种问题。

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

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

相关文章

可灵AI-快手公司自主研发的一款AI视频与图像生成工具

可灵AI是由快手公司自主研发的一款AI视频与图像生成工具,于2024年6月正式推出。以下是对其的详细介绍: 核心功能 AI视频生成: 文生视频:输入文字描述,AI可自动生成匹配的视频片段。图生视频:上传图片&…

创客匠人解析:存量时代创始人 IP 打造与免费流量池策略

在存量竞争的商业环境中,企业如何突破增长瓶颈?创客匠人结合新潮传媒创始人张继学的实战洞察,揭示 “品牌 IP” 双轮驱动下的免费流量池构建逻辑,为知识变现与创始人 IP 打造提供新思路。 一、存量时代的流量革命:从…

提升语义搜索效率:LangChain 与 Milvus 的混合搜索实战

我从不幻想人生能够毫无波折,但我期望遭遇困境之际,自身能够成为它的克星。 概述 LangChain与Milvus的结合构建了一套高效的语义搜索系统。LangChain负责处理多模态数据(如文本、PDF等)的嵌入生成与任务编排,Milvus作…

MySQL配置简单优化与读写测试

测试方法 先使用sysbench对默认配置的MySQL单节点进行压测,单表数据量为100万,数据库总数据量为2000万,每次压测300秒。 sysbench --db-drivermysql --time300 --threads10 --report-interval1 \--mysql-host192.168.0.10 --mysql-port3306…

猎板深耕透明 PCB,解锁电子设计新边界

在电子技术快速迭代的当下,猎板始终关注行业前沿,透明 PCB 作为极具创新性的技术,正在改变电子设备的设计与应用格局。​ 从传统的绿色、棕色 PCB 到如今的透明 PCB,其突破在于特殊基材与导电材料的运用,实现 85%-92%…

FLAML:快速轻量级自动机器学习框架

概述 FLAML(Fast and Lightweight AutoML)是微软开发的一个高效的自动机器学习(AutoML)框架。它专注于在有限的计算资源和时间约束下,自动化机器学习管道的构建过程,包括特征工程、模型选择、超参数调优等…

Github 以及 Docker的 wsl --list --online无法访问问题

修改电脑DNS 腾讯 DNS IP:119.29.29.29 备用:182.254.116.116 阿里DNS IP:223.5.5.5 223.6.6.6 百度DNS IP:180.76.76.76 谷歌DNS IP:8.8.8.8

Go 语言中的变量和常量

这篇文章已经放到腾讯智能工作台的知识库啦,链接在这里:ima.copilot-Go 入门到入土。要是你有啥不懂的地方,就去知识库找 AI 聊一聊吧。 1、变量的声明与使用 我们来探讨编程语言中最核心的概念之一:变量。 1、静态语言中的变量…

破局传统订货!云徙渠道订货系统赋能企业数字化渠道升级

在数字化浪潮的推动下,传统经销商订货模式面临着诸多挑战,如信息孤岛、系统崩溃、移动化不足等问题。云徙渠道订货系统凭借其创新的数字化架构和强大的功能模块,正在成为企业实现渠道数字化转型的重要工具。 系统功能与创新 云徙渠道订货系统…

SQL关键字三分钟入门:UNION 与 UNION ALL —— 数据合并全攻略

在处理数据时,有时我们需要将来自不同表或同一表的不同查询结果合并在一起。例如: 合并两个部门的员工名单;将多个地区的销售数据汇总;显示某段时间内所有新增和修改的记录。 这时候,我们就需要用到 SQL 中非常强大的…

SNMPv3 的安全命名空间详解

1. 安全命名空间的本质 安全命名空间是 SNMPv3 的核心安全机制,通过 上下文(Context) 实现: #mermaid-svg-6cV9146nTFF1zCMJ {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#merma…

【嵌入式硬件实例】-555定时器实现烟雾和易燃气体泄露检测

555定时器实现烟雾和易燃气体泄露检测 文章目录 555定时器实现烟雾和易燃气体泄露检测1、555定时器介绍2、MQ-2 气体/烟雾传感器模块介绍3、硬件准备与接线在本文中,我们将使用555定时器和MQ-2气体传感器构建一个气体泄漏检测和报警系统。它在煤气泄漏期间用作家庭安全警报器。…

【机器人】DualMap 具身导航 | 动态场景 开放词汇语义建图 导航系统

DualMap 是一个在线的开放词汇语义映射系统,使得机器人能够通过自然语言查询在动态变化的环境中理解和导航 双地图导航,结合全局抽象地图进行高层次候选选择,以及局部具体地图进行精确目标定位,有效管理和更新环境中的动态变化。…

【Fifty Project - D37】

fifty project算是失败了一半了 成功的那一半在于一定程度上拯救了我的作息和健康,两个月前入职体检的肝有点不健康,昨天复查发现全都回到了健康范围!尿酸也在正常范围!就是体重还是没减下来hhh 失败的一半在于自己很差劲的规划能…

解码危险品物流背后的“隐形防线”

当急救药品跨越千里送达医院,当新能源电池准时抵达生产线,当化工原料安全运往工厂……这些与日常生活息息相关的场景背后,有一群人始终在和时间赛跑,与风险博弈。他们不是超级英雄,而是危险品物流从业者——一个鲜少被…

Flutter Melos在外包团队协作中的弊端与应对策略

引言 在大型Flutter项目开发中,Melos作为一款优秀的Monorepo管理工具,能够有效协调多包项目的开发流程。然而,当项目涉及外包团队协作时,Melos的使用会面临一系列独特的挑战。本文将深入分析Flutter Melos在外包团队协作环境中的…

<selectKey> 中的order 属性

在 MyBatis 中&#xff0c;<selectKey> 标签的 order 属性用于指定生成主键值的 SQL 语句执行时机。 除了 AFTER&#xff0c;MyBatis 还支持另一种模式&#xff1a;BEFORE&#xff0c; 它们有明确的使用场景和区别&#xff1a; order"AFTER" 适用数据库&#x…

BitsAndBytes(简称 BnB)是一个用于“压缩”大语言模型的工具包

BitsAndBytes&#xff08;简称 BnB&#xff09;是一个用于“压缩”大语言模型的工具包&#xff0c;能把模型从原来的16位或32位&#xff0c;压成4位或8位&#xff0c;减少显存占用&#xff0c;同时保持尽量高的精度。 &#x1f9e9; 为什么叫 Bits and Bytes&#xff1f; 它的…

【前端】 Vue 3 中二次封装组件

在 Vue 3 中二次封装组件是提高代码复用性和维护性的重要手段。以下是详细的封装方法和最佳实践&#xff1a; 一、封装原则 功能扩展&#xff1a;在原有组件基础上添加新功能定制样式&#xff1a;统一项目的 UI 设计规范简化接口&#xff1a;隐藏复杂逻辑&#xff0c;提供简洁…

分布式词表示(Distributed Word Representation):自然语言处理的核心基石

分布式词表示&#xff08;Distributed Word Representation&#xff09;&#xff1a;自然语言处理的核心基石 在自然语言处理&#xff08;NLP&#xff09;领域&#xff0c;如何将离散的词汇转化为计算机可理解的数值形式&#xff0c;一直是技术突破的关键。传统的独热编码&…