【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]

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

.NET CORE 分布式事务(四) CAP实现最终一致性

目录 引言: 1.0 最终一致性介绍 2.0 CAP 2.0 架构预览 3.0 .NET CORE 结合CAP实现最终一致性分布式事务 3.1 准备工作(数据库,本文使用的是MySql) 3.1.1 数据模型 3.1.2 DbContext 3.1.3 数据库最终生成 3.2 Nuget引入 3.3 appsettings.json …

【OS探秘】【虚拟化】【软件开发】VirtualBox 虚拟化软件卸载和重装

往期OS系列博文: 【OS探秘】【虚拟化】【软件开发】在Windows 11上安装mac OS虚拟机 【OS探秘】【虚拟化】【软件开发】在Windows 11上安装Kali Linux虚拟机 一、事出有因 近日,笔者的Oracle VM VirtualBox突然抽风了,虚拟机无法启动&…

深入理解MapReduce:从Map到Reduce的工作原理解析

当谈到分布式计算和大数据处理时,MapReduce是一个经典的范例。它是一种编程模型和处理框架,用于在大规模数据集上并行运行计算任务。MapReduce包含三个主要阶段:Map、Shuffle 和 Reduce。 ** Map 阶段 ** Map 阶段是 MapReduce 的第一步&am…

Linux appimage如何正确打开

在之前的文章中,提到使用appimage软件非常方便。 但是首次使用会遇到这样的问题: 1. 双击打不开 2. 在终端打开提示: /home/roy/software/appimage/Obsidian-1.5.11.AppImage dlopen(): error loading libfuse.so.2 AppImages require …

关系型数据库mysql(9)主从复制和读写分离

目录 1. 主从复制和读写分离 2. mysql 支持的复制类型 3.架构图 一.主从复制 1.主从复制的定义 2.主从复制的过程 中继日志(Relay Log): 优点: 3.为什么要复制 4.谁复制谁 5.数据放在什么地方 6.主从复制出现的问题 …

基于Uni-app的体育场馆预约系统的设计与实现

文章目录 基于Uni-app的体育场馆预约系统的设计与实现1、前言介绍2、开发技术简介3、系统功能图3、功能实现4、库表设计5、关键代码6、源码获取7、 🎉写在最后 基于Uni-app的体育场馆预约系统的设计与实现 1、前言介绍 伴随着信息技术与互联网技术的不断发展&#…

服务器固定IP(固定出口IP)去访问外部服务

背景 服务器上有多个IP,那么在服务器请求外部服务的时候,到底是使用哪个IP呢?如果要使用特定的IP去请求外部服务,该如何设置呢? 分析 遇到一个实际的场景: 我们产品和其他产品联调,我们的服务…

软考历史题目

2023.3 1. 磁盘索引块1KB,每个地址项4字节,每个磁盘索引块可以存放256个物理块地址 2.5个地址项为直接索引地址,所以0-5逻辑块是直接索引 3.一级间接地址索引,每个指向的物理块存255个地址 4.二级间接地址:256个间接索引表地址…

Php_Code_challenge16

题目: 答案: 解析: 所以科学计数法绕过即可。

蓝桥杯练习系统(算法训练)ALGO-963 转圈游戏

资源限制 内存限制:128.0MB C/C时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s 问题描述 n个小伙伴(编号从0到n-1)围坐一圈玩游戏。按照顺时针方向给n个位置编号,从0到n-1。   …

Windows 电脑麦克风 自动启用/禁用 小玩具!

WinMicrophone Windows 系统的 麦克风设备(启用/禁用)切换驱动!它是小巧且快速的,它能够自动的检测并切换麦克风的情况。 您可以在软件包仓库中找到发布版本的exe包,无需安装!其能够大大增大您在Windows中…

家用储能配套用AKH-0.66 K-Φ16-HM 开口电流互感器-安科瑞 蒋静

1.产品特点 产品外形美观,安装、接线方便,专用于通讯机房 100A 及以下配电系统改造,可与 AMC16 多回路监控仪表配合使用。 2.型号说明 3.外形尺寸(公差:2mm) 注:引线长度为 2 米 2*26AWG 护套线,线头…

认识V模型、W模型、H模型

软件测试与软件工程息息相关,软件测试是软件工程组成中不可或缺的一部分。 在软件工程、项目管理、质量管理得到规范化应用的企业,软件测试也会进行得比较顺利,软件测试发挥的价值也会更大。 要关注软件工程、质量管理以及配置管理与软件测试…

Stream流的详细说明

什么是stream流 Stream流是指一种数据处理的概念,它可以将数据以连续的方式传输,而不用等待整个数据集全部加载完成。在计算机编程中,Stream流通常用于处理大数据集或实时数据流。 Stream流可以分为输入流和输出流,输入流用于从数…

56 如何调试 npm run build 的代码/如何在测试环境,预发布环境进行调试

前言 测试环境/预发布环境 如何进行调试 这里主要是 提及一些一个 模拟的生产环境, 应该如何测试 比如 上线之前, 或者 线上出现问题, 需要 hotfix 的场景下 我们应该怎么 在一个 测试环境/预发布 的环境下面 进行一个模拟的调试呢? 对于 如果是没有网络请求的项目, 甚至…

【yy讲解PostCSS是如何安装和使用】

🎥博主:程序员不想YY啊 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家 🤗点赞🎈收藏⭐再看💫养成习惯 ✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出…

STM32 uC/OS-III

What is uC/OS-III? C/OS-III 的发音为“Micro C O S Three”,这意味着 C/OS-III 是基于 C 语言编写的第三代 小型操作系统,当然这里所说的第三代是相对于 C/OS 的前两个版本 C/OS 和 C/OS-II 而言 的,后面也会介绍这三个版本的差别。C/OS/…

Vue前端项目打包

4.1编译打包 npm run build 4.2 前端项目 nginx的配置文件default.conf 和 dockerfile default.conf upstream wms-app { server 192.168.14.3:3666 ; server 192.168.14.3:3777 ; } server { listen 80; listen [::]:80; server_name localhost; access_log /var/log/nginx…

毛利率低从哪些维度分析?零售服装行业如何提升毛利率?

在零售服装行业中,毛利率是评估公司盈利能力的关键指标之一。然而,某服装公司在一段时间内销售总额达到5878.28万,但其总毛利额仅为591.26万,平均毛利率仅为10.06%。这一数字明显低于了服装行业通常的毛利率范围(一般在…

语义分割——Dark Zurich数据集

一、重要性及意义 首先,Dark Zurich为语义分割提供了大量真实且多样化的图像数据。该数据集包含了在夜间、黄昏和白天拍摄的大量图像,涵盖了不同光照条件和场景下的图像变化。这些图像数据不仅丰富了语义分割任务的数据集,也为模型提供了更全…