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

CANN训练营第二季官网链接,可以报名和申请资源,申请完资源,开通弹性云服务器,使用华为给准备好的环境,就可以上手实验和完成考核了

作业一:Caffe ResNet-50网络实现图片分类

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

  1. 下载样例源码并成功编译、运行,结果正确,上传运行结果截图至附件。【20分】
  2. 数据替换成自己的图片并重新编译运行成功,上传运行结果截图以及修改后的源码至附件。【20 分】

评分一步骤

  1. 使用SSH客户端连接弹性云服务器
  2. 克隆samples代码库
git clone https://gitee.com/ascend/samples.git
  1. 切换用户及目录
su - HwHiAiUser
source ~/Ascend/ascend-toolkit/set_env.sh
cd samples/cplusplus/level2_simple_inference/1_classification/resnet50_imagenet_classification
  1. 准备ResNet-50模型
    可以从以下链接中获取ResNet-50网络的模型文件(resnet50.prototxt)、预训练模型文件(resnet50.caffemodel),并以HwHiAiUser用户将获取的文件上传至开发环境的“resnet50_imagenet_classification/caffe_model“目录下。如果目录不存在,需要自行创建。所有操作均使用HwHiAiUser进行,否则会出现权限问题
  2. 转换模型
    下面展示一些 内联代码片
    在resnet50_imagenet_classification目录下
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
  1. 准备数据
    将图片dog1_1024_683.jpg、dog2_1024_683.jpg上传至“resnet50_imagenet_classification/data“目录下
    执行命令将*.jpg*转换为*.bin*
python3 ../script/transferPic.py
  1. 编译代码
    在resnet50_imagenet_classification目录下
# 设置环境变量
export DDK_PATH=$HOME/Ascend/ascend-toolkit/latest
export NPU_HOST_LIB=$DDK_PATH/acllib/lib64/stub
# 创建目录用于存放编译文件
mkdir -p build/intermediates/host
cd build/intermediates/host
cmake ../../../src -DCMAKE_CXX_COMPILER=g++ -DCMAKE_SKIP_RPATH=TRUE

【CANN训练营】新手班结业考核_第1张图片

make

在这里插入图片描述

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

【CANN训练营】新手班结业考核_第2张图片

评分二步骤

  1. 准备两张图片,并上传至“resnet50_imagenet_classification/data“目录下,必须是*,jpg*格式图片,可以是类似图片,这里取名为mao_1.jpg

【CANN训练营】新手班结业考核_第3张图片
3. 执行命令将*.jpg*转换为*.bin*

python3 ../script/transferPic.py
  1. 修改代码,主要是讲原来要识别的狗的图片,变为我们自己上传的图片
    vim src/sample_process.cpp
string testFile[] = {
        "../data/mao_1.bin",
        "../data/mao_2.bin"
    };
  1. 重新执行上面的第7步即可

作业二待补充ing

  1. 使用Tensorflow1.15实现LeNet网络的minist手写数字识别。硬件平台不限,可以基于window或者linux系统,尽量给出整个过程的截图,并在最后给出Loss或者accuracy运行结果。 参考链接Gitee或Github。【15分】
    提交样式:步骤xx截图xx

  2. 采用课程中学习到的手工或自动迁移方式,将上述脚本迁移到昇腾AI处理器上,不要求执行训练,仅需提交迁移后的脚本。【15分】

  3. 将上述迁移好的LeNet网络使用minist数据集在ModelArts平台上正常跑通。
    评分明细:
    a. Pycharm控制台界面有正常训练日志打印,给出截图。【5分】
    b. 将最终训练的模型权重文件(训练步数不限)保存在OBS上,给出截图。【2分】
    c. 给出当前训练的CANN运行日志截图,给出截图。【3分】

作业三

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

  1. 模型转换成功,上传模型转换成功提示的截图至附件。【5 分】
  2. 修改代码并运行成功,上传运行结果截图以及修改后的源码至附件。【5 分】

评分一

  1. 下载模型
    模型地址为:modelzoo resnet101,将获取的文件上传至开发环境的“resnet50_imagenet_classification/caffe_model“目录下。
  2. 转换命令为
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
  1. 修改代码
    a. 主要是将原来的resnet50改为resnet101,vim src/sample_process.cpp,
const char* omModelPath = "../model/resnet50.om";
替换为
const char* omModelPath = "../model/resnet101_tf.om";

b. 修改编码,vim script/transferPic.py

img = img.astype("float16")
替换为
img = img.astype("float32")

然后执行作业一第一步的6,7两步

你可能感兴趣的:(MindSpore)