【2023 · CANN训练营第一季】昇腾AI入门课(Pytorch)——第三章 AI应用开发

news2025/3/12 1:04:04

第1节 课程概述

第1单元 本课程是否适合您

1.没有深度学习的背景
边学习边补充基础
2.少量深度学习背景,但并不了解华为昇腾
对于昇腾的学习是贯穿全程的
3.听说过或接触过华为昇腾,但不知道如何基于昇腾使能AI应用。
保持学习,按时交作业

第2单元 本章学习目标

1.了解昇腾 AI 全栈架构及该架构中各层的作用。 2.了解异构计算架构 CANN 在昇腾 AI 全栈中的位置和作用。 3.了解应用开发编程框架、基本概念。 4.掌握的应用开发流程,可以按照指导编译、运行应用。 5.了解如何获取及查看应用运行日志,具备基本的问题定界、定位能力。 在开始应用开发入门课程之前,请先通读第2节您需要提前准备什么,以便更好地理解本课程中涉及的概念并完成练习。

第3单元 遇到问题如何求助

可以借助以下渠道:

  • 参考CANN Sample 仓中样例开发时,相关问题可以在该仓上提Issue,该仓的接口人会定期处理问题。
  • 模型相关的问题,可以在ModelZoo仓上提Issue,该仓的接口人会定期处理问题。
  • 也可在昇腾社区论坛中查阅经验贴,或者发求助帖,论坛上的其他开发人员会跟帖,论坛的接口人也会定期审视问题。

第2节 您需要提前准备什么

第1单元 具备编程经验

需具备C&&C++语言,Python语言下列知识:

在这里插入图片描述
在这里插入图片描述
图片分类应用简介
在这里插入图片描述

第2单元 熟悉Linux基本操作

在这里插入图片描述

第3单元 了解深度学习

为了让计算机掌握人类理解的知识,需要构筑一个由简单概念组成的多层连接网络来定义复杂对象,计算机通过对这个网络的迭代计算与训练后,可以掌握这个对象的特征,一般称这种方法为深度学习( DeepLearning , DL )。互联网的发展产生了庞大的数据量,为深度学习的发展提供了更大的机会,也让人工智能成为当今的热点,而深度神经网络成了热点中的热点。深度学习经过一系列的发展之后,展现出巨大的应用价值,不断受到工业界、学术界的密切关注。深度学习在图像、语音、自然语言处理、大数据特征提取和广告点击率预估方面取得明显进展。 关于深度学习的基本原理、基本概念等介绍,请参见: Link 。

第3节 云服务器环境申请&AI应用体验

第1单元 本节学习目标

了解如何使用代金券申请云环境,并在云环境中快速体验一个样例的运行。

第2单元 申请云环境

操作视频
1.获取华为云帐号名以及项目 ID ,以便课程接口人给您推送云环境镜像。
2.使用代金券购买 ECS 云环境,以便获取到编译、运行应用的环境。
购买 ECS 云环境成功后,您可以获取到一个服务器 IP 地址, SSH 方式远程登录到该服务器上,您可以接着快速体验样例,参见第3单元快速体验。
获取华为账号和项目 ID :
1.网页登录
https://www.huaweicloud.com/
进入到网页后,点击账号中心,账号名如下:
在这里插入图片描述
然后点击我的凭证:
在这里插入图片描述
账号ID如下:
在这里插入图片描述
有了华为云账号和项目ID之后,就可以填以下链接申请镜像:
镜像申请
申请好了镜像之后,可以填以下链接,申请代金券:
代金券申请
如果在以下页面看到代金券和镜像发放,就可以创建云服务器了:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
使用代金券购买ECS:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
最后点击同意,即可完成购买。
在云服务器可以看到刚刚购买的服务器:
在这里插入图片描述

第4节 图片分类应用应用开发过程精讲

可以将服务器与本地的IDE连接,我这里连接的是VSCode:

注意:在连接到VSCode之前,要注意先把弹性云服务器的远程登录打开
在这里插入图片描述

复制弹性公网IP地址:
在这里插入图片描述
打开VSCode:
点击远程连接扩展,如果没有这个扩展,可以在VSCode 扩展插件里下载Remote - SSH:
在这里插入图片描述
输入链接指令:ssh root@你的公网IP地址
在这里插入图片描述
即可链接成功。
修改默认用户密码:

passwd HwHiAiUser

在这里插入图片描述
切换用户:

su - HwHiAiUser

使用HwHiAiUser创建一个新的ssh连接,密码为刚刚设置的。
在这里插入图片描述
新建终端就是这样的页面:
在这里插入图片描述
切换用户并查看文件:
在这里插入图片描述
编译及运行应用
转换模型
改用bash

sudo dpkg-reconfigure dash

选择no
在这里插入图片描述

在这里插入图片描述

ls -l `which sh`

要注意这里的但引号是英文输入法下的Tab键上面的引号,输入其他的可能会报错,得到/bin/sh - > bash 说明正确。
在这里插入图片描述
再次切换用户

su - HwHiAiUser

一定要出现HwHiUser@ecs-pytorch才可以。
在这里插入图片描述
下载项目到仓库:

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

在这里插入图片描述

基于Caffe ResNet-50网络实现图片分类(同步推理)

切换到华为用户:
在这里插入图片描述
根据下面的readme文件
在这里插入图片描述
新建放ResNet-50模型的文件夹:

mkdir caffee_model

下载模型文件:

wget https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/003_Atc_Models/AE/ATC%20Model/resnet50/resnet50.prototxt

在这里插入图片描述
下载权重文件:

wget https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/003_Atc_Models/AE/ATC%20Model/resnet50/resnet50.caffemodel

将ResNet-50原始模型转换为适配昇腾AI处理器的离线模型(*.om文件)
切换到样例目录,执行:

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

在这里插入图片描述
ATC启动成功:
在这里插入图片描述
在model文件夹下可以看到生成了一个resnet50.om文件(在输出路径不用注明resnet50.om,会自动生成.om文件)

准备测试文件
切换到data文件夹下,下载图片:

wget https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/models/aclsample/dog1_1024_683.jpg
wget https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/models/aclsample/dog2_1024_683.jpg

在data目录下生成两个文件
在这里插入图片描述
切换到“样例目录/data“目录下,执行transferPic.py脚本

python3 ../script/transferPic.py

这里会报错
ModuleNotFoundError: No module named 'PIL

正确执行命令为:

python3.6 ../script/transferPic.py

在这里插入图片描述

编译运行
设置环境变量

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

创建目录用于存放编译文件

mkdir -p build/intermediates/host

切换到“build/intermediates/host“目录,执行如下命令生成编译文件。

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

在这里插入图片描述
执行如下命令,生成的可执行文件main在“样例目录/out“目录下。

make

在这里插入图片描述
运行环境
切换到可执行文件main所在的目录

cd ../../../out/

给该目录下的main文件加执行权限。

chmod +x main

运行可执行文件

./main

出现以下信息代表执行成功
在这里插入图片描述

说明: 类别标签和类别的对应关系与训练模型时使用的数据集有关,本样例使用的模型是基于imagenet数据集进行训练的,您可以在互联网上查阅imagenet数据集的标签及类别的对应关系,例如,可单击Link查看。 当前屏显信息中的类别标识与类别的对应关系如下: “161”: [“basset”, “basset hound”]、 “267”: [“standard poodle”]。

获取运行日志
日志目录默认为"CANN软件安装目录/ascend/log",应用运行之后,可在该目录下查阅日志。
日志参考

日志中关键信息
在这里插入图片描述

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

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

相关文章

Letcode 两数之和

1. 两数之和 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 你可以…

Wi-Fi 6(802.11ax)解析12:下行OFDMA接入机制(DL-OFDMA)

序言 在介绍完802.11ax的信道接入以及其触发帧机制后,本文着重介绍下行OFDMA的接入机制(即DL-OFDMA) 下行OFDMA接入机制(DL-OFDMA) OFDMA是一种多用户通信机制,其只适用于802.11ax AP和802.11ax用户之间…

ChatGPT 学习 ES lucene 底层写入原理,源码

一直有个疑问“学习最新版lucene 数据写入相关的源码,应该看哪些源码,以什么顺序看(先看什么,后看什么)?” 对于Lucene的数据写入过程,可以分为以下几个阶段 在学习Lucene的数据写入相关的源码…

FTP服务

一、FTP的简介 FTP是FileTransferProtocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。基于不同的操作系统有不同的…

C++笔记——第十四篇 哈希

目录 一、unordered系列关联式容器 1.1 unordered_map 1.1.1 unordered_map的文档介绍 1.1.2 unordered_map的接口说明 二、 底层结构 2.1 哈希概念 2.2 哈希冲突 2.3 哈希函数 2.4 哈希冲突解决 2.4.1 闭散列 1. 线性探测 2. 二次探测 2.4.2 开散列 三、 哈希的应用 …

200万奖金广聚天下算法英雄,第二届广州·琶洲算法大赛要来了!

随着深度学习不断驱动技术创新,人工智能加速与实体经济深度融合发展。作为中国首个自主研发、开源开放的产业级深度学习平台,飞桨与百度自研的产业级知识增强文心大模型,共同构筑了产业智能化基座,并联合产学研用各方生态力量&…

学习风`宇博客用户权限菜单模块

文章目录 用户-角色-菜单-资源 各表关系图菜单 和 路由菜单表及分析分析 /api/admin/user/menus接口MenuServiceImpl#listUserMenus接口返回示例及分析 前端代码分析menu.jsSideBar.vue 接口权限控制资源表 及 分析分析 WebSecurityConfig权限控制整体流程先说登录UserDetailsS…

ChatGPT 有什么新奇的使用方式?

你别说,你还真别说,我对象一般用它谈恋爱!!! 我对象在谈一种很新的恋爱,不建议模仿,因为根本停不下来! 事情是这样的,我最近开始对ChatGPT感兴趣,但我这个技…

AppArmor零知识学习十四、实操与实践(2)

本文内容参考: Linux安全模块AppArmor总结-CSDN博客, apparmor首页、文档和下载 - 应用程序访问控制系统 - OSCHINA - 中文开源技术交流社区, AppArmor GitBook, AppArmor配置(二)_domybest_nsg的博客…

CESM 地球系统模式

详情点击链接:地球系统模式(CESM) CESM 运行的系统和软件环境 1.CESM需要什么运行环境 2.CESM2.0运行环境的搭建CESM 运行需要掌握的Linux及编译 1.Linux 2.Linux编译 3.基于Make 和CMake的编译体系CESM 的基本结构 1.CESM的几大功能模块 2…

德赛西威上海车展重磅发布Smart Solution 2.0,有哪些革新点?

4月18日,全球瞩目的第二十届上海车展盛大启幕,作为国际领先的移动出行科技公司,德赛西威携智慧出行黑科技产品矩阵亮相,并以“智出行 共创享”为主题,重磅发布最新迭代的智慧出行解决方案——Smart Solution 2.0。 从…

“量子+金融”!摩根大通和QC Ware拓展量子深度对冲

​ (图片来源:网络) 近日,QC Ware和摩根大通完成了一项关于量子“深度对冲”的研究,为提高未来的金融服务风险应对能力铺平了道路。 利用市场摩擦和交易约束的数据驱动模型,可以降低投资组合的风险。相关论…

Flink学习——基本概述

目录 一、Flink概述 二、单机版安装配置 1.开启hadoop 2.解压Flink压缩包 3.修改文件名 4.开启客户端 5.访问webUI 三、集群配置 1.jobmanager配置 2.master配置 3.workers配置 4.分发配置 5.开启Flink集群 6.访问webUI 7.查看Job Manager 8.查看Task Managers…

不同批次板子采集到的传感器压力值不同

问题描述: M340B空压机主控板在接正常压力气源时,显示屏显示压力值过高并报警。 问题排查: 确认可能的故障点:压力传感器、硬件电路(供电电路、分压电路、ADC采样电路等)、单片机、软件; 排…

MySQL-----表的约束

文章目录 前言一、空属性二、默认值三、列描述四、zerofil五、主键六、自增长七、唯一键八、外键总结 前言 真正约束字段是数据类型,但是数据类型约束很单一,需要有一些额外的约束,更好的保证数据的合法性, 从业务逻辑角度保证数据的正确性.比如有一个字段是email,要求是唯一的…

十八、市场活动备注:修改

功能需求 用户在市场活动明细页面,点击"修改"市场活动备注的图标,弹出修改市场活动备注的模态窗口; 用户在修改市场活动备注的模态窗口,填写表单,点击"更新"按钮,完成修改市场活动备注的功能. *备注内容不能为空 *修改成功之后,关闭模态窗口,刷新备注列表…

VC++ | 编译、运行Debug版本报错-20230419-01

VC++ | 编译、运行Debug版本报错-20230419-01 1.LOG如下 1>------ 已启动生成: 项目: CamManager, 配置: Debug Win32 ------ 1>stdafx.cpp 1>UnicodeLib.cpp 1>MultiLanguage.cpp 1>d:\01_project\02_grain\pdv-tools

DSAI130D 3BSE003127R1在机器视觉系统中主要负责光束调制

DSAI130D 3BSE003127R1在机器视觉系统中主要负责光束调制 如今,随着工业4.0的到来,机器视觉技术在工业自动化中逐渐起着十分重要的地位,机器视觉技术的不断创新,推动了工业自动化、智慧安防以及人工智能等行业的进步,…

Maven打包跳过测试的5种方式

Maven打包跳过测试的5种方式 1、命令行方式跳过测试 我们可以通过使用命令将项目打包,添加跳过测试的命令就可以了,可以用两种命令来跳过测试: -DskipTeststrue mvn package -DskipTeststrue-DskipTeststrue,不执行测试用例&a…

SpringCloud网关——GateWay

GateWay 本专栏学习内容来自尚硅谷周阳老师的视频 有兴趣的小伙伴可以点击视频地址观看 概述 SpringCloud Gateway 是 Spring Cloud 的一个全新项目,基于 Spring 5.0Spring Boot 2.0 和 Project Reactor 等技术开发的网关,它旨在为微服务架构提供一种简…