遇到问题如何求助
开发、编译或运行应用出错时不知道该怎么解决,或者有优化建议要反馈,可以借助以下渠道:
- 参考CANN Sample仓中的样例开发时,相关问题可以在该仓上提Issue,该仓的接口人会定期处理问题
- 模型相关问题,可在ModelZoo仓上提Issue,该仓的接口人会定期处理问题
- 也可在晟腾社区论坛中查阅经验贴、或者发求助帖,论坛上的其他开发人员会跟帖,论坛的接口人也会定期审视问题。
需要提取准备什么
具备编程经验
熟悉Linux基本操作
本课程中的操作涉及Linux操作系统上的如下基本操作,建议在学习前先学习这部分内容:
- 远程登录Linux服务器
- 文件与目录的管理,包括新增、删除文件或目录等
- 熟悉vi/vim文本编辑器的使用
了解深度学习
基本原理、基本概念等介绍详见链接
云服务环境申请&AI应用体验
了解如何使用代金券申请云环境,并在云环境中快速体验一个样例的运行
申请云环境
申请云环境包括以下几步:
- 获取华为云账号名以及项目ID,以便课程接口人推送云环境镜像
- 使用代金券购买ECS云环境,以便获取到编译、运行应用的环境
获取华为账号和项目ID
登录华为云账号登录链接华为账号 登录成功后-账号中心-基本中心 可以看到需要的华为账号名
项目ID 我的凭证-项目列表 选择北京4的项目id即可
使用代金券购买华为ECS
接收共享镜像 将华为账号和项目id提供给晟腾小助手,小助手提供共享镜像之后,选择接收共享镜像, 镜像服务-共享镜像-接收 接受之后查找代金券位置 费用中心-优惠折扣-代金券-立即使用代金券 用代金券购买ECS 控制台-弹性云服务器-购买 计费模式选择按需计费 区域选择华北4 可用区选择随机分配 架构选择x86 规格选择AI加速型,选择第一个ai1s.large.4即可,搭载了晟腾310芯片 镜像选择共享镜像创建即可 网络选择默认值 安全组开放22端口 弹性公网选择流量计费即可 带宽选择100 名称、密码自定义即可 下一步确认即可 购买完成后回到弹性云服务器界面等待状态变为创建成功,拿到公网IP后即可进行远程登录
快速体验
申请到云环境后,即可根据服务器的IP地址登录对应的服务器,编译、运行一个应用了。
打开MobaXterm终端工具
创建一个session
ip填写服务器公网IP
用户名填写root用户
密码填写自己设置的密码
切换 HwHiAiUser用户
su - HwHiAiUser
切换目录
cd Ascend
cd ascend-toolkit
跑样例
样例地址 根据readme进行操作
下载模型&转模型
下载仓
git clone https://gitee.com/ascend/samples.git
进入样例
cd $HOME/samples/cplusplus/level2_simple_inference/2_object_detection/YOLOV3_coco_detection_picture/model
下载模型
wget https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/003_Atc_Models/AE/ATC%20Model/Yolov3/yolov3.caffemodel
wget https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/003_Atc_Models/AE/ATC%20Model/Yolov3/yolov3.prototxt
wget https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/models/YOLOV3_coco_detection_picture/aipp_nv12.cfg
转模型
atc --model=yolov3.prototxt --weight=yolov3.caffemodel --framework=0 --output=yolov3 --soc_version=Ascend310 --insert_op_conf=aipp_nv12.cfg
显示ATC run success就是模型转换好了
样例部署
进入脚本目录
cd $HOME/samples/cplusplus/level2_simple_inference/2_object_detection/YOLOV3_coco_detection_picture/scripts
执行编译
bash sample_build.sh
输入x86即可
样例运行
运行
bash sample_run.sh
查看输出
图片类型为狗 置信度为99% 输出成功
图片分类应用开发过程精讲
学习目标
- 掌握应用的基本开发流程 AscendCL接口支持C&C++、Python两种编程语言,本章以增加C&C++为例 在晟腾社区文档中心,选择开发者文档(社区版)中的6.3.RC1.alpha002版本,在应用开发区域淡季使用python开发,可以查看基于Python语言的应用开发 链接
- 掌握编译、运行应用的方法
- 了解如何获取和查看应用运行日志,具备基本的问题定界、定位能力
图片分类应用简介
“图片分类应用”,从名称上,我们也能直观地看出它的作用:按照所属的类别来区分图片。
但“图片分类应用”是怎么做到的呢?需要先有一个能做到图片分类的模型,我们可以直接使用一些训练好的开源模型,也可以基于开源模型的源码进行修改、重新训练,还可以自己基于算法、框架构建适合自己的模型。
因为目前是初级课程,此处我们直接获取已经训练好的开源模型,这种最简单、最快。
本章以Caffe框架的开源模型ResNet-50模型为例说明其输入、输出,以便理解后续的开发场景:
模型对输入要求:输入图片的编码格式为RGB、分辨率为224*224.
模型的输出:Top5置信度的类别标签及其对应置信度。
说明:
置信度是指图片所属某个类别的可能性。
可以通过类别标签查阅其对应的类别。类别标签和类别的对应关系与训练模型时使用的数据集有关,需要查阅对应数据集的标签及类别的对应关系。
开发图片分类应用
在线课程在线实验文档开源样例
编译及运行应用 图片分类的编译运行(基于Caffe ResNet-50网络)
文档
进入晟腾样例仓 点击右侧下载样例
本次使用的是resnet50_imagenet_classification样例
包括测试数据
头文件
cpp文件
编译脚本等
将样例上传至安装了CANN环境的服务器上
有了样例后 编译运行包括四个步骤
准备模型
需要获取prototxt caffemodel文件 并放置在caffmodel文件下
但晟腾AI处理器无法识别原始的caff网络模型 所以需要使用ATC命令进行模型转换
准备数据
准备测试用的图片 样例是jpge格式 需要rgb格式
编译程序
通过环境变量的方式指向头文件库文件的位置
通过设置DDK path找到头文件的位置
通过设置NPU_HOST_LIB找到库文件的位置
只需cmake语句
生成的可执行文件在out目录下
再执行make
运行程序
在out目录中执行main
获取运行日志
文档
从哪获取日志
日志目录默认为“CANN软件安装目录/ascend/log”,应用运行之后,可以在该目录下查阅日志。
日志中关键信息有哪些
(ps:中间有一段比较简短,因为官方课程就这样,剩余部分我学了再补吧)