ITPub博客

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

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

原创 人工智能 作者:hw327701 时间:2022-12-19 22:29:34 0 删除 编辑

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

一、云服务器的使用

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

申请代金券:

https://www.hiascend.com/zh/activities/cloud-resource/842b945fbfbc407abda304d245528d9f

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

找到共享镜像如下步骤:

 


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


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

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


指令:

cd / home /

su -  HwHiAiUser

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

$ ls -al

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

准备工作完成, 开始 正式实验!可以按照仓库里的 readme文件所述步骤一步步操作,此处也仅仅简单给出实验的步骤和实验图。
仓库资源链接:
https://gitee.com/ascend/samples/tree/master/cplusplus/level2_simple_inference/1_classification/resnet50_imagenet_classification

1、下载样例代码

克隆 sample仓里的代码

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


进入到 resnet50_imagenet_classification样例的文件夹中

  c d   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

成功

 


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

  ls -al model/


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

5、图片格式转换

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

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

 

python3 .. / script / transferPic . py

 

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

 

 


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70025312/viewspace-2928662/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2022-12-19

  • 博文量
    4
  • 访问量
    1295