ResNet101模型地址:https://www.hiascend.com/zh/software/modelzoo/models/detail/1/8bbb7c17dfa94408ab46ea0073fec355
模型转换
- 下载ResNet-101模型,并移动至指定定目录:resnet50_imagenet_classification样例的caffe_model目录(表示原始模型的存放路径)
- 模型转换
- 切换至指定目录
cd ~/samples/cplusplus/level2_simple_inference/1_classification/resnet50_imagenet_classification
- 执行模型转换
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")
- 切换到“样例目录/data“目录下,执行transferPic.py脚本,将*.jpg转换为*.bin,同时将图片从1024×683的分辨率缩放为224×224。在“样例目录/data“目录下生成2个*.bin文件。
python3 ../script/transferPic.py
调用接口
调用AscendCL接口(例如aclmdlLoadFromFileWithMem接口)加载ResNet-101模型,在src/sample_process.cpp文件中定制代码。
编译代码
1.进入样例目录
cd ~/samples/cplusplus/level2_simple_inference/1_classification/resnet50_imagenet_classification
2.设置环境变量
export DDK_PATH=$HOME/Ascend/ascend-toolkit/latest
export NPU_HOST_LIB=$DDK_PATH/runtime/lib64/stub
3.创建目录用于存放编译文件
mkdir -p build/intermediates/host
4.切换到“build/intermediates/host“目录
cd build/intermediates/host
5.生成编译文件
cd build/intermediates/host
cmake ../../../src -DCMAKE_CXX_COMPILER=g++ -DCMAKE_SKIP_RPATH=TRUE
6.生成可执行文件main
make