为了更好的让我们能够了解并学习昇腾的相关知识,华为 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
准备工作完成,
开始
正式实验!可以按照仓库里的
readme文件所述步骤一步步操作,此处也仅仅简单给出实验的步骤和实验图。
仓库资源链接:
https://gitee.com/ascend/samples/tree/master/cplusplus/level2_simple_inference/1_classification/resnet50_imagenet_classification
克隆 sample仓里的代码
git clone https :// gitee . com / ascend / samples . git
进入到
resnet50_imagenet_classification样例的文件夹中
c d samples / cplusplus / level2_simple_inference / 1 _classification / resnet50_imagenet_classification
先创建一个用来存储该模型的文件夹 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
上述下载的预训练模型需要首先运用
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/
进入 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
下载的图片是
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
进入 “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/ ,如需转载,请注明出处,否则将追究法律责任。