首页 > 其他分享 >【CANN训练营第三季】基于Caffe ResNet-50网络实现图片分类

【CANN训练营第三季】基于Caffe ResNet-50网络实现图片分类

时间:2022-12-20 10:34:43浏览次数:70  
标签:resnet50 .. CANN ResNet 50 -- 文件夹 model com


【CANN训练营第三季】基于Caffe ResNet-50网络实现图片分类

一、云服务器的使用

为了更好的让我们能够了解并学习昇腾的相关知识,华为CANN训练营第三季给予了一定的云服务器资源,申请镜像:​​https://devcloud.huaweicloud.com/expertmobile/qtn?id=37c0f1996ab744d0aecfc3209c843d95​


关于云服务器的使用简单总结如下:

找到共享镜像如下步骤:

【CANN训练营第三季】基于Caffe ResNet-50网络实现图片分类_caffe

【CANN训练营第三季】基于Caffe ResNet-50网络实现图片分类_git_02


申请ESC弹性云服务器->获取弹性公网IP->运用SSH远程访问云服务器->正常按照ubuntu系统的终端命令来操作使用服务器 

【CANN训练营第三季】基于Caffe ResNet-50网络实现图片分类_分类_03

资源链接:
远程终端软件推荐Xshell:​​​Xshell7_Xftp7,Xmanager7下载-xshellcn​

进入终端后为root用户,需要进入HwHiAiUser用户

【CANN训练营第三季】基于Caffe ResNet-50网络实现图片分类_人工智能_04


指令:

cd /home/

su - HwHiAiUser

可以使用ls或者ll指令随意浏览系统中已有的文件情况。

$ ls -al

【CANN训练营第三季】基于Caffe ResNet-50网络实现图片分类_人工智能_05

 

二、基于Caffe ResNet-50网络实现图片分类

准备工作完成,开始正式实验!可以按照仓库里的readme文件所述步骤一步步操作,此处也仅仅简单给出实验的步骤和实验图。
仓库资源链接:
​​​samples: CANN Samples - Gitee.com​

1、下载样例代码

克隆sample仓里的代码

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

【CANN训练营第三季】基于Caffe ResNet-50网络实现图片分类_git_06


进入到resnet50_imagenet_classification样例的文件夹中

cd samples/cplusplus/level2_simple_inference/1_classification/resnet50_imagenet_classification

2、获取ResNet-50预训练模型

先创建一个用来存储该模型的文件夹caffe_model,进入文件夹

mkdir caffe_model

cd caffe_model

从网页直接通过命令下载预训练模型:权重文件(resnet50.caffemodel)和模型文件(resnet50.prototxt)

$ wget https://modelzoo-train-atc.obs.cn-north-4.myhuaweicloud.com/003_Atc_Models/AE/ATC%20Model/resnet50/resnet50.prototxt

$ wget https://modelzoo-train-atc.obs.cn-north-4.myhuaweicloud.com/003_Atc_Models/AE/ATC%20Model/resnet50/resnet50.caffemodel

 

3、模型转换

上述下载的预训练模型需要首先运用ATC模型转换工具将该模型转换成昇腾AI处理器支持的离线模型(.om)
流程:
首先先切换到样例目录下(接着上面的操作就是上一级目录)

cd ../

然后运行模型转换工具 atc (atc 命令找不到解决办法:​​Ubuntu切换默认sh为bash或者dash - 灰信网(软件开发博客聚合) (freesion.com)​​)

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

成功

【CANN训练营第三季】基于Caffe ResNet-50网络实现图片分类_云服务_07


打开model文件夹可以看到resnet50.om已经转换完成了

 ls -al model/

【CANN训练营第三季】基于Caffe ResNet-50网络实现图片分类_云服务_08

 

4、下载测试图片

进入data文件夹,并下载两张ImageNet数据集中存在类别的图片

cd  ./data/

wget https://c7xcode.obs.cn-north-4.myhuaweicloud.com/models/aclsample/dog1_1024_683.jpg

wget https://c7xcode.obs.cn-north-4.myhuaweicloud.com/models/aclsample/dog2_1024_683.jpg

【CANN训练营第三季】基于Caffe ResNet-50网络实现图片分类_分类_09

 

 

5、图片格式转换

下载的图片是JPEG格式的,需要转换成适合模型输入要求格式的二进制文件(.bin)
在data目录下,执行transferPic.py脚本,将*.jpg转换为*.bin,同时将图片从1024 * 683的分辨率缩放为224 * 224。

如果执行脚本报错“ModuleNotFoundError: No module named 'PIL'”,则表示缺少Pillow库,请使用pip3 install Pillow --user命令安装Pillow库。

【CANN训练营第三季】基于Caffe ResNet-50网络实现图片分类_云服务_10

 

python3 ../script/transferPic.py

 

【CANN训练营第三季】基于Caffe ResNet-50网络实现图片分类_云服务_11

 

6、编译运行

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

cd ../

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

export DDK_PATH=$HOME/Ascend/ascend-toolkit/latest

export NPU_HOST_LIB=$DDK_PATH/acllib/lib64/stub

建立build文件夹,准备编译代码文件

mkdir -p build/intermediates/host

进入build文件夹,编译.cpp文件

cd build/intermediates/host

cmake ../../../src -DCMAKE_CXX_COMPILER=g++ -DCMAKE_SKIP_RPATH=TRUE

make

可以在样例目录(cplusplus/level2_simple_inference/1_classification/resnet50_imagenet_classification)下的out文件夹中找到编译好的可执行main文件,接下来我们直接运行main文件

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

./main

标签:resnet50,..,CANN,ResNet,50,--,文件夹,model,com
From: https://blog.51cto.com/u_15917813/5954240

相关文章