【CANN训练营笔记】Atlas 200I DK A2体验手写数字识别模型训练推理

环境介绍

开发板:Huawei Atals 200I DK A2
内存:4G
NPU:Ascend 310B4
CANN:7.0

准备环境

下载编译好的torch_npu

wget https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/wanzutao/torch_npu-2.1.0rc1-cp39-cp39-linux_aarch64.whl
pip3 install torch_npu-2.1.0rc1-cp39-cp39-linux_aarch64.whl

安装PyTorch2.1.0、torchvision0.16.0

pip install torch==2.1.0 torchvision==0.16.0

设置环境变量

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

安装ACLLite库

安装ffmpeg
Ubuntu

apt-get install ffmpeg libavcodec-dev libswscale-dev libavdevice-dev

欧拉系统

yum install ffmpeg ffmpeg-devel

将yum安装的opencv头文件软链到系统能默认识别的路径

ln -s /usr/include/ffmpeg/* /usr/include/

源码安装方式:

wget https://ffmpeg.org/releases/ffmpeg-4.2.9.tar.gz
tar -zxvf ffmpeg-4.2.9.tar.gz
cd ffmpeg-4.2.9
./configure --disable-static --enable-shared --disable-doc --enable-ffplay --enable-ffprobe --enable-avdevice --disable-debug --enable-demuxers --enable-parsers --enable-protocols --enable-small --enable-avresample
make -j8
make install

为保证程序能识别动态库,请在/etc/ld.so.conf.d下添加ffmpeg.conf配置

cd /etc/ld.so.conf.d
vim ffmpeg.conf

添加内容

/usr/local/lib

生效配置文件:

ldconfig

设置ffmpeg安装路径环境变量,请替换为ffmpeg的实际安装路径

export FFMPEG_PATH=/usr/local/lib

克隆ACLLite代码仓

git clone https://gitee.com/ascend/ACLLite.git
cd ACLLite

安装

bash build_so.sh

安装依赖

克隆代码仓

git clone https://gitee.com/ascend/EdgeAndRobotics/

进入代码文件夹

cd EdgeAndRobotics/Samples/HandWritingTrainAndInfer

安装依赖

pip3 install -r requirements.txt

模型训练

设置环境变量减小算子编译内存占用

export TE_PARALLEL_COMPILER=1
export MAX_COMPILE_CORE_NUMBER=1

运行训练脚本

python main.py

开始运行
image.png
NPU使用情况
image.png

在线推理

训练生成的mnist.pt转换mnist.onnx模型

python3 export.py

获取测试图片

cd data
wget https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/wanzutao/mnist/8.jpg

测试图片:
image.png

执行在线推理

cd ../onnxInfer/
python3 infer.py

推理结果

[image_path:data/8.jpg] [inferssession_time:1349 pictures/s] [output:8]

离线推理

获取测试图片

cd omInfer/data
wget https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/wanzutao/mnist/8.jpg

获取PyTorch框架的ResNet50模型(.onnx),并转换为昇腾AI处理器能识别的模型(.om)
为了方便下载,在这里直接给出原始模型下载及模型转换命令,可以直接拷贝执行。
将在线推理时导出的mnist.onnx模型拷贝到model目录下

cd ../model
cp ../../mnist.onnx ./

获取AIPP配置文件

wget https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/wanzutao/mnist/ecs/aipp.cfg

模型转换

atc --model=mnist.onnx --framework=5 --insert_op_conf=aipp.cfg --output=mnist --soc_version=Ascend310B4

编译样例源码

cd ../scripts 
bash sample_build.sh

运行样例

bash sample_run.sh

运行结果

[INFO] value[1.000000] output[8]

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

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

相关文章

烂笔头笔记:Windows 11下照片查看器显示偏色问题修复

本文出处:http://blog.csdn.net/chaijunkun/article/details/137278931,转载请注明。由于本人不定期会整理相关博文,会对相应内容作出完善。因此强烈建议在原始出处查看此文。 最近在研究HDR视频的截图算法,目的就是生成色彩正确…

基于Springboot + MySQL + Vue 大学新生宿舍管理系统 (含源码)

目录 📚 前言 📑摘要 📑操作流程 📚 系统架构设计 📚 数据库设计 💬 管理员信息属性 💬 学生信息实体属性 💬 宿舍安排信息实体属性 💬 卫生检查信息实体属性 &…

pytest--python的一种测试框架--接口测试

接口测试 工具: POSTMAN; 接口选择: 豆瓣电影,进制数据 POSTMAN下载: 1.POSTMAN官网:https://www.postman.com/products/; 2.点product选Download Postman 下载完之后双击打开就可以用的。…

Element-Plus日期选择组件封装农历日期

背景 在使用element-plus开发项目过程中,需要填入人员的生卒日期,经观察,对于大部分人来说,这类日期通常是农历日期,然而我们在系统建设过程中,对于日期字段,约定成俗的都会使用公历日期&#…

Lecture 1 - Introduction

Lecture 1 - Introduction MIT 6.824 Distributed Systems 1、概念预览 分布式系统需要考虑的因素: Parallelism :并行性Fault tolerence :容错性Physicial :不同系统之间物理距离引起的通信问题Security :不同的计…

封装一个vue3的公共组件

在Vue 3中,封装公共组件的场景包括但不限于以下几种情况: 重复使用的组件:如果你发现某个组件在多个地方重复使用,那么将其封装成公共组件是很有意义的。比如,页面中的各种表单控件(输入框、下拉框、日期选…

MySQL 数据学习笔记速查表(视图、存储过程、事务)

文章目录 十三、视图1、视图是什么?2、视图的特性?3、视图的作用?4、视图的用途?5、视图的使用?1、基本语法2、创建视图3、调用视图4、视图练习(1) 利用试图简化复杂的联结(2) 利用视图重新格式化检索出的数据(3) 利用…

Django详细教程(一) - 基本操作

文章目录 前言一、安装Django二、创建项目1.终端创建项目2.Pycharm创建项目(专业版才可以)3.默认文件介绍 三、创建app1.app介绍2.默认文件介绍 四、快速上手1.写一个网页步骤1:注册app 【settings.py】步骤2:编写URL和视图函数对…

Node爬虫:原理简介

在数字化时代,网络爬虫作为一种自动化收集和分析网络数据的技术,得到了广泛的应用。Node.js,以其异步I/O模型和事件驱动的特性,成为实现高效爬虫的理想选择。然而,爬虫在收集数据时,往往面临着诸如反爬虫机…

OSPF-基础、虚链路、overflow,缺省

OSPF 1、OSPF基础 2、区域内的路由计算 3、区域间的路由计算(矢量)(区域间的防环原则) 3.1、非骨干区域都与骨干区域相连。 3.2、骨干区域不会接收非骨干的3类LSA。 3.3、无论COST,1类LSA总是由于3类LSA。 ABR&…

快消企业数字化转型实战解析:探寻未来增长新动力

2024年,快消行业正站在数字化转型的风口浪尖。 “今年是过去十年最差的一年,但却可能是未来十年最好的一年。”这句话几乎成为了今年的流行语。 但是这句话是情绪,不是事实。未来十年,中国会成为全球最大的消费品市场&#xff0…

北方经贸经济类知网收录月刊投稿发表论文

《北方经贸》期刊是由国家新闻出版总署批准,黑龙江省教育厅主管,黑龙江省经济管理干部学院主办的经济类综合期刊。期刊融理论性、知识性、实践性于一体,立足龙江,辐射全国,面向世界,注重研究解决重大现实理…

vulnhub靶机: DC-9

dc-9靶机下载 将靶机设置为NAT模式,本次实验使用的内网网段为192.168.198.0/24,kali的ip为192.168.198.172 信息搜集 ip主机扫描: nmap -sP 192.168.198.0/24 确定靶机ip为192.168.198.171 主机端口扫描: nmap -T4 -A -v 192…

python基础——模块【模块的介绍,模块的导入,自定义模块,*和__all__,__name__和__main__】

📝前言: 这篇文章主要讲解一下python基础中的关于模块的导入: 1,模块的介绍 2,模块的导入方式 3,自定义模块 🎬个人简介:努力学习ing 📋个人专栏:C语言入门基…

大数据面试专题 -- kafka

1、什么是消息队列? 是一个用于存放数据的组件,用于系统之间或者是模块之间的消息传递。 2、消息队列的应用场景? 主要是用于模块之间的解耦合、异步处理、日志处理、流量削峰 3、什么是kafka? kafka是一种基于订阅发布模式的…

通过SSH在苹果手机上查看系统文件:远程访问iOS文件系统的方法

​ 目录 引言 用户登录工具和连接设备 查看设备信息,电池信息 查看硬盘信息 硬件信息 查看 基带信息 销售信息 电脑可对手机应用程序批量操作 运行APP和查看APP日志 IPA包安装测试 注意事项 引言 苹果手机与安卓手机不同,无法直接访问系统文件…

python基于django协同算法的个性化音乐推荐系统的设计与实现

本个性化音乐推荐系统以Django作为框架,b/s模式以及MySql作为后台运行的数据库。本系统主要包括以下功能模块:首页,个人中心,用户管理,歌曲类型管理,明星歌手管理,歌曲音乐管理,歌曲…

权限提升技术:攻防实战与技巧

本次活动赠书1本,包邮到家。参与方式:点赞收藏文章即可。获奖者将以私信方式告知。 网络安全已经成为当今社会非常重要的话题,尤其是近几年来,我们目睹了越来越多的网络攻击事件,例如公民个人信息泄露,企业…

【Jenkins】关于账号,证书验证的设置问题

当你的电脑启动了Jenkins,这时候一定要小心更改管理员账号和密码~~~ 当你的电脑启动了Jenkins,这时候一定要小心更改管理员账号和密码~~~ 当你的电脑启动了Jenkins,这时候一定要小心更改管理员账号和密码~~~ 重要的事情说3遍,如…

阿里云数据库服务器价格表查询_一张表精准报价

阿里云数据库服务器价格表,优惠99元一年起,ECS云服务器2核2G、3M固定带宽、40G ESSD Entry云盘,优惠价格99元一年;阿里云数据库MySQL版2核2G基础系列经济版99元1年、2核4GB 227.99元1年,云数据库PostgreSQL、SQL Serve…