陈军 · 2021年07月18日

周易 AIPU 部署及仿真教程——resnet50

1. 模型转换

按照R329教程一|周易 AIPU 部署及仿真教程将tensorflow的模型转换成pb模型。这里对resnet50进行转换,转换后的模型在附件一的百度网盘。

2. 矫正数据集

这里我们是针对imagenet分类的模型进行量化的。我们量化矫正的数据集采用imagenet_1k.zip,然后将数据制作成npy文件。制作好的npy文件在附件一的百度网盘。

3. NN compiler的cfg文件

这里我们因为是在docker中进行仿真测试的,所以我们采用run的模式,具体的配置如下。需要根据模型,数据的位置进行修改。
resnet50_run.cfg

[Common]
mode=run

[Parser]
model_name = resnet_50
detection_postprocess = 
model_domain = image_classification
output = resnet_v1_50/predictions/Reshape_1
input_model = ./model/resnet_v1_50_frozen.pb
input = input
input_shape = [1,224,224,3]
output_dir = ./

[AutoQuantizationTool]
model_name = resnet_50
quantize_method = SYMMETRIC
ops_per_channel = DepthwiseConv
calibration_data = ./dataset/dataset1000.npy
calibration_label = ./dataset/label1000.npy
preprocess_mode = normalize
quant_precision=int8
reverse_rgb = False
label_id_offset = 0

[GBuilder]
inputs=./output/input.bin
outputs=./output/output_resnet_50.bin
simulator=aipu_simulator_z1
profile= True
target=Z1_0701

4. simulator执行的输入输出结果,比较运算量化误差

准备好:

  • pb模型
  • 校准数据集
  • cfg配置文件
    这三样东西后,就可以用docker cp ./folder $name:path命令,将所有的文件拷贝到docker容器中。我拷贝到docker容器中截图:
    image.png

接下来,就可以进行模型的量化和验证了。直接使用如下命令

aipubuild config/resnet50_run.cfg

运行之后得到在output文件夹下得到output_resnet_50.bin,使用 quant_val.py进行解析:

root@a721d8d4db47:~/demos/2_resnet50# python demo/quan_val.py 
predict first 5 label:
    index  230, prob 205, name: Old English sheepdog, bobtail
    index  231, prob  48, name: Shetland sheepdog, Shetland sheep dog, Shetland
    index  999, prob   0, name: ear, spike, capitulum
    index  342, prob   0, name: hog, pig, grunter, squealer, Sus scrofa
    index  340, prob   0, name: sorrel
true first 5 label:
    index  232, prob  83, name: collie
    index  231, prob  83, name: Shetland sheepdog, Shetland sheep dog, Shetland
    index  158, prob  41, name: papillon
    index  170, prob  40, name: borzoi, Russian wolfhound
    index  161, prob  39, name: Afghan hound, Afghan
Detect picture save to result.jpeg

***************** TOP 1 result ***************
Predict Class is 231
True Class is 231

可以看到都是231是最大可能的类别。
测试时的图片是:
result.jpeg

附件

  1. 模型,数据百度网盘,password:8epy

参考

  1. R329教程一|周易 AIPU 部署及仿真教程
推荐阅读
关注数
1
文章数
5
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息