极智AI | 周易AIPU算法部署仿真测试

简介: 本教程详细记录了使用周易 AIPU 进行算法部署仿真测试的方法,带大家尝尝鲜。

本教程详细记录了使用周易 AIPU 进行算法部署仿真测试的方法,带大家尝尝鲜。

这里以 resnet_v1_101 为例(原谅我在边缘端用这么大的模型,这里纯粹就是为了跑通)。


1、安装 docker 镜像环境

# pull 镜像
docker pull zepan/zhouyi
# run 容器
docker run -it zepan/zhouyi  /bin/bash
# 如果要vscode远程开发的话,可以加端口
docker run -it -p 9999:22 -v /path/to/container:/path/to/host zepan/zhouyi  /bin/bash

验证容器环境是否正常:

cd ~/demos/tflite
# 执行仿真
./run_sim.sh

# 验证结果
python3 quant_predict.py


2、准备模型文件

2.1 下载预训练模型:

wget http://download.tensorflow.org/models/resnet_v1_101_2016_08_28.tar.gz

解压得到 resnet_v1_101.ckpt

tar zxvf resnet_v1_101_2016_08_28.tar.gz

2.2 export graph

vim export_graph.sh

加入以下内容

# export graph
python3 export_inference_graph.py \
    --alsologtostderr \
    --model_name=resnet_v1_101 \
    --image_size=224 \
    --labels_offset=1 \ 
    --output_file=tmp/resnet_v1_101_inf.pb

执行 ./export_graph.sh 后将在 tmp文件夹下生成 resnet_v1_101_inf.pb

2.3 freeze graph

vim freeze_graph.sh

加入以下内容:

# freeze graph
python3 freeze_graph.py \
    --input_graph=tmp/resnet_v1_101_inf.pb \
    --input_checkpoint=tmp/resnet_v1_101.ckpt \
    --input_binary=true --output_graph=tmp/resnet_v1_101_frozen.pb \
    --output_node_names= resnet_v1_101/predictions/Reshape_1

执行 ./freeze_graph.sh 后将在 tmp 文件夹下生成 resnet_v1_101_frozen.pb

通过如上三步操作,将生成如下模型文件,最终推理会用到的只有 resnet_v1_101_frozen.pb。


3、准备量化校准数据集

我这里没有自己去做数据集,使用了镜像提供的图片和标签。

制作量化校准数据集:

python3 preprocess_dataset.py

执行如上操作会生成 dataset.npy 和 label.npy


4、NN Compiler 配置

在有 resnet_v1_101_frozen.pb 和 校准数据集之后,就可以编辑 NN Compiler 配置文件了。

在 config 目录下创建 resnet_101_build.cfg 和 resnet_101_run.cfg 配置文件。

resnet_101_build.cfg 内容如下:

[Common]
mode=build
[Parser]
model_name = resnet_101
detection_postprocess = 
model_domain = image_classification
output = resnet_v1_101/predictions/Reshape
input_model = ./tmp/resnet_v1_101_frozen.pb
input = input
input_shape = [1,224,224,3]
[AutoQuantizationTool]
model_name = resnet_101
quantize_method = SYMMETRIC
ops_per_channel = DepthwiseConv
calibration_data = ./dataset/dataset.npy
calibration_label = ./dataset/label.npy
preprocess_mode = normalize
quant_precision=int8
reverse_rgb = False
label_id_offset = 0
[GBuilder]
outputs=./aipu.bin
profile= True
target=Z1_0701

resnet_101_run.cfg 内容如下:

[Common]
mode=run
[Parser]
model_name = resnet_101
detection_postprocess = 
model_domain = image_classification
output = resnet_v1_101/predictions/Reshape
input_model = ./tmp/resnet_v1_101_frozen.pb
input = input
input_shape = [1,224,224,3]
output_dir = ./
[AutoQuantizationTool]
model_name = resnet_101
quantize_method = SYMMETRIC
ops_per_channel = DepthwiseConv
calibration_data = ./dataset/dataset.npy
calibration_label = ./dataset/label.npy
preprocess_mode = normalize
quant_precision=int8
reverse_rgb = False
label_id_offset = 0
[GBuilder]
inputs=./model/input.bin
simulator=aipu_simulator_z1
outputs=output_resnet_101.bin
profile= True
target=Z1_0701


5、AIPU 仿真

执行build:

aipubuild confg/resnet_101_build.cfg

执行 run:

aipubuild config/resnet_101_run.cfg

得到存储模型输出数据的文件,后面验证模型数据结果会用到。


6、仿真结果比对

python3 quant_predict.py

看结果,TOP1 已经可以对的上了,细节和更深的东西等拿到板子再好好研究,先跑通再优秀~


这篇先这样了,在我的github上可以拿到我上述测试过程的代码,模型在这里,提取码:6666。


logo_show.gif

相关文章
|
19天前
|
人工智能 自然语言处理 开发者
AIGC创作活动 | 跟着UP主秋葉一起部署AI视频生成应用!
本次AI创作活动由 B 站知名 AI Up 主“秋葉aaaki”带您学习在阿里云 模型在线服务(PAI-EAS)中零代码、一键部署基于ComfyUI和Stable Video Diffusion模型的AI视频生成Web应用,快速实现文本生成视频的AI生成解决方案,帮助您完成社交平台短视频内容生成、动画制作等任务。制作上传专属GIF视频,即有机会赢取乐歌M2S台式升降桌、天猫精灵、定制保温杯等好礼!
|
1月前
|
机器学习/深度学习 人工智能 监控
AI算法分析,智慧城管AI智能识别系统源码
AI视频分析技术应用于智慧城管系统,通过监控摄像头实时识别违法行为,如违规摆摊、垃圾、违章停车等,实现非现场执法和预警。算法平台检测街面秩序(出店、游商、机动车、占道)和市容环境(垃圾、晾晒、垃圾桶、路面不洁、漂浮物、乱堆物料),助力及时处理问题,提升城市管理效率。
AI算法分析,智慧城管AI智能识别系统源码
|
6天前
|
机器学习/深度学习 人工智能 算法
基于DCT和扩频的音频水印嵌入提取算法matlab仿真
本文介绍了结合DCT和扩频技术的音频水印算法,用于在不降低音质的情况下嵌入版权信息。在matlab2022a中实现,算法利用DCT进行频域处理,通过扩频增强水印的隐蔽性和抗攻击性。核心程序展示了水印的嵌入与提取过程,包括DCT变换、水印扩频及反变换步骤。该方法有效且专业,未来研究将侧重于提高实用性和安全性。
|
22小时前
|
机器学习/深度学习 人工智能 算法
详解AI作画算法原理
AI作画算法运用深度学习和生成对抗网络(GAN),通过学习大量艺术作品,模拟艺术家风格。卷积神经网络(CNN)提取图像特征,GAN中的生成器和判别器通过对抗训练生成艺术图像。循环神经网络和注意力机制可提升作品质量。这种技术开创了艺术创作新途径。
|
3天前
|
人工智能 监控 数据处理
【AI大模型应用开发】【LangSmith: 生产级AI应用维护平台】1. 快速上手数据集与测试评估过程
【AI大模型应用开发】【LangSmith: 生产级AI应用维护平台】1. 快速上手数据集与测试评估过程
18 0
|
4天前
|
人工智能 安全 机器人
AI电销机器人系统源码部署:freeswitch安装Windows
在Windows上安装FreeSWITCH:访问官网下载安装程序,运行并按提示安装;选择安装路径和组件;等待安装完成;配置FreeSWITCH,修改设置;启动服务;测试其功能;如遇问题,参考官方文档或进行调试故障排除。记得定期更新维护以保证稳定安全。
|
28天前
|
人工智能 监控 Serverless
如何基于ACK Serverless快速部署AI推理服务
通过上述步骤,可以在ACK Serverless上快速部署AI推理服务,实现高可用、弹性扩展的服务架构。
21 1
|
1月前
|
算法
m基于log-MPA检测算法的SCMA通信链路matlab误码率仿真
MATLAB 2022a仿真实现了稀疏码多址接入(SCMA)算法,该算法利用码本稀疏性实现多用户高效接入。每个用户从码本中选取码字发送,接收端采用Log-MPA算法进行多用户检测。由于MAP检测计算复杂度高,故采用Log-MPA降低复杂性。仿真展示了不同迭代次数(1, 5, 10, 30)对误码率(BER)的影响,通过比较各次迭代的BER曲线,研究算法性能与迭代次数的关系。
22 0
|
1月前
|
算法 搜索推荐
基于遗传优化的协同过滤推荐算法matlab仿真
该内容是关于推荐系统和算法的描述。使用Matlab2022a执行的算法生成了推荐商品ID列表,显示了协同过滤在个性化推荐中的应用。用户兴趣模型通过获取用户信息并建立数学模型来提高推荐性能。程序片段展示了遗传算法(GA)的迭代过程,确定支持度阈值,并基于关联规则生成推荐商品ID。最终结果是推荐的商品ID列表,显示了算法的收敛和支持值。
|
1月前
|
机器学习/深度学习 算法
m基于深度学习的64QAM调制解调系统相位检测和补偿算法matlab仿真
MATLAB 2022a仿真实现了基于深度学习的64QAM相位检测和补偿算法,有效应对通信中相位失真问题。通过DNN进行相位检测和补偿,降低解调错误。核心程序生成随机信号,模拟AWGN信道,比较了有无相位补偿的误码率,结果显示补偿能显著提升性能。
27 8