作业一

实战场景:

下载基于Caffe ResNet-50网络实现图片分类(仅推理)样例应用的源码,并参考Readme成功编译、运行应用,体验基础推理过程。

评分细则:

使用atc工具转换模型,提供转换命令及转换成功的截图。

使用转换后的模型,重新编译运行样例应用(基于Caffe ResNet-50网络实现图片分类(仅推理)),提交成功编译运行应用的截图。

总结实战过程中遇到的问题及解决方法,并提交总结。

优化样例应用,包括优化代码逻辑、优化代码注释、补充代码注释等,提交优化后的源码、优化思路说明、优化位置说明。

评分一和评分二:

1.连接华为云服务器并克隆下载samples代码库

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

2.切换用户及目录(因为cann装在该用户下)

cd /home/
su - HwHiAiUser
source ~/Ascend/ascend-toolkit/set_env.sh
cd samples/cplusplus/level2_simple_inference/1_classification/
resnet50_imagenet_classification

3.切换到/caffe_model目录下使用wget命令会下载到当前目录

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

4.转换模型

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

5.下载图片并转换为bin文件

请从以下链接获取该样例的输入图片,并以运行用户将获取的文件上传至开发环境的“样例目录/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

6.编译运行

6.1请先进入“cplusplus/level2_simple_inference/1_classification/resnet50_imagenet_classification”样例目录

6.2设置环境变量,配置程序编译依赖的头文件与库文件路径。

当开发环境与运行环境的操作系统架构相同时,配置示例如下所示:

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

6.3切换到样例目录,创建目录用于存放编译文件,例如,本文中,创建的目录为“build/intermediates/host“。

mkdir -p build/intermediates/host

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

当开发环境与运行环境操作系统架构相同时,执行如下命令编译。

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

6.5执行如下命令,生成的可执行文件main在“样例目录/out“目录下。

make

6.6切换到可执行文件main所在的目录,例如“$HOME/cplusplus/level2_simple_inference/1_classification/resnet50_imagenet_classification/out”,运行可执行文件。

./main

遇到的问题:
执行环境设置时,报错

报错原因:

查看Ubuntu系统/bin/sh的实际链接,发现使用的是dash,而source xxx.sh或者. xxx.sh命令需要使用bash解析器,因此出现报错。

解决办法:

Ubuntu下shell执行source命令报source: not found问题处理

作业二

基于Caffe ResNet-50网络实现图片分类(仅推理)样例,更换为ResNet-101分类模型。更换同类模型时,由于模型的输入、输出相似,所以源码基本可以复用,只需更换模型即可。

定制点说明如下

下载ResNet-101模型(resnet101_tf.pb),放到resnet50_imagenet_classification样例的caffe_model目录(表示原始模型的存放路径),执行以下命令转换模型,在output参数处指定的model目录下获取resnet101_tf.om:

atc --model=caffe_model/resnet101_tf.pb --framework=3 --output=model/resnet101_tf --output_type=FP32 --soc_version=Ascend310 --input_shape="input:1,224,224,3" --log=info

生成测试数据

进入resnet50_imagenet_classification样例的script目录,修改transferPic.py脚本中的如下内容,将float16改为float32:
img = img.astype(“float16”)修改后:img = img.astype(“float32”)
切换到“resnet50_imagenet_classification样例目录/data“目录下,执行transferPic.py脚本,将*.jpg转换为*.bin,同时将图片从1024683的分辨率缩放为224224。在“resnet50_imagenet_classification样例目录/data“目录下生成2个*.bin测试文件。

python3 …/script/transferPic.py

调用AscendCL接口(例如aclmdlLoadFromFileWithMem接口)加载ResNet-101模型:

在src/sample_process.cpp文件中定制代码。

参考Caffe ResNet-50网络实现图片分类(仅推理)样例的readme,重新编译并运行。

评分细则:

使用atc工具转换模型,提供转换命令及转换成功的截图。(5分)

使用转换后的模型、定制后的代码,重新编译运行应用,提交成功编译运行应用的截图。(10分)

总结实战过程中遇到的问题及解决方法,并提交总结。(5分)

评分一:

同作业一中,下载好模型后,执行上述ATC模型转换命令即可

评分二:

修改sample_process.cpp中om模型的位置

作业三
使用Pytorch实现LeNet网络的minist手写数字识别。

硬件平台不限,可以基于windows或者linux系统,尽量给出整个过程的截图,并在最后给出loss或者accuracy运行结果,提供打印loss和accuracy日志,给出截图。参考链接Github:https://github.com/allegrofb/LeNet.git

**:**根据链接中的文件,设置好训练参数等,运行训练脚本即可

作业四

采用课程中学习到的手工或者自动迁移方式,将上述脚本迁移到昇腾npu上,单机单卡,提供迁移脚本,突出关键点并截图

**答:**自动迁移,仅PyTorch 1.8.1版本及以上使用,自动迁移方式较简单,只需在训练脚本中添加引入几行代码。

import torch_npu
from torch_npu.contrib import transfer_to_npu

作业五

提供使用ddp迁移的单机8卡的训练脚本,无需运行,提供修改后的脚本,并突出关键点

【CANN训练营第三季】新手班结业考核笔记相关推荐

  1. 【CANN训练营】新手班结业考核

    CANN训练营第二季官网链接,可以报名和申请资源,申请完资源,开通弹性云服务器,使用华为给准备好的环境,就可以上手实验和完成考核了 作业一:Caffe ResNet-50网络实现图片分类 题目:下载基 ...

  2. 【CANN训练营第三季】基于昇腾PyTorch框架的模型训练调优

    文章目录 性能分析工具PyTorch Profiling 性能分析工具CANN Profiling 结业考核 1.使用Pytorch实现LeNet网络的minist手写数字识别. 2.采用课程中学习到 ...

  3. 【CANN训练营第三季】【进阶班笔记3】PyTorch安装与环境配置

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.pandas是什么? 二.使用步骤 1.引入库 2.读入数据 总结 前言 提示:这里可以添加本文要记录的大概内容: ...

  4. CANN训练营第三季_昇腾CANN算子精讲课_TBE算子Sinh开发笔记_算子开发(二)

    1.作业算子要求 2.检查版本对应关系 在Mindstudio软件包下载界面可以检查安装的mindstudio版本和cann版本是否一致,如果不一致可能会导致后面算子工程创建出错. 这里我用的Mind ...

  5. CANN训练营第三季_昇腾CANN算子精讲课_TBE算子Sinh开发笔记_UT测试(三)

    UT测试: UT测试是为了测试算子代码的正确性和不同场景下的覆盖率的测试,UT测试在硬件CPU上执行,MindStudio提供了gtest框架方便进行UT测试. 参考:https://www.hias ...

  6. 【CANN训练营第三季】Pytorch模型迁移

    文章目录 第4题 第5题 首先安装pytorch 参考:https://gitee.com/ascend/pytorch 安到测试这一步,报错,没办法继续了. RuntimeError: Unsupp ...

  7. 【2022年第一期 CANN训练营进阶班应用课】第一次大作业

    前情提要 按照官方B站视频介绍,接收镜像,并创建云服务器:如果不想看视频,可以参照其他开发者的教程配置环境,推荐教程[CANN训练营进阶班应用课笔记]大作业1实战趟坑记录. ssh登录服务器,可以用M ...

  8. 【2023 · CANN训练营第一季】——Ascend C算子开发入门——第一次课

    前言:昇腾AI处理器的算子开发增加了一种新的方式,称之为TIK2,正式名称是Ascend C算子开发.不同于采用Python的DSL和TIK方式,Ascend C使用C/C++作为前端语言的算子开发工 ...

  9. 昇腾CANN训练营-应用营第二期-第三课作业流程记录

    课程及作业地址:ascend_camp: CANN训练营第二期-应用营 (gitee.com) 一.基本作业 1.在上节课申请的镜像环境中,安装opencv-python,并进入python3,输入i ...

最新文章

  1. cd: mkdir: rmdir: rm
  2. AL2018届校招笔试——自然语言处理
  3. spring mvc hello
  4. P5217 贫穷 平衡树
  5. 关于TTL大家容易忽略的地方
  6. iOS中使用URL Scheme进行App跳转
  7. 数学建模论文注意事项
  8. JAVA程序修改PDF内容_java 修改pdf
  9. 国际海运流程有哪些,国际海运物流哪家比较好
  10. 什么是服务器、云服务的优缺点是什么、为什么要使用云服务器?
  11. 阿里巴巴编码规范 java认证记录
  12. 如何用Python给图片添加文字/图片水印的方法,特别简单好用,filestools和Pil模块
  13. oracle的固定值
  14. 网易视频云资深产品经理钱栩磊:2B产品经理养成记
  15. 【newman】postman生成漂亮的测试报告
  16. DT、RF、GBDT、XGBoost
  17. 四月单向历——你是人间四月天
  18. rtx服务器消息管理器,RTX企业微信插件来了,现在你可以在手机上收发RTX消息
  19. mybatis里的when和otherwise用法
  20. 2030零售品牌未来的数字化技术战略

热门文章

  1. Scrapy框架第一个爬虫项目--汽车之家二手车列表信息抓取
  2. IE浏览器被修改怎么办?
  3. Java项目:JSP大学生思想建设与心理健康网站
  4. 65work 最简单运算的实现,吉凶早知道
  5. 【征集需求】准备开发一个针对淘宝卖家的excel模板,实现在Excel上做帐
  6. 以下属于python中文分词方向第三方库的是_以下选项中是 Python 中文分词的第三方库的是( )...
  7. 买了一个腾讯云轻量服务器 要怎么去操作?
  8. 一禾九穗——禾穗精英女性成长营第一期
  9. 美国CISA将设立供应链风险管理办公室
  10. 采集文章自动发布:技术与应用探索