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

本文涉及的产品
视觉智能开放平台,图像通用资源包5000点
视觉智能开放平台,分割抠图1万点
视觉智能开放平台,视频通用资源包5000点
简介: 本教程详细记录了使用周易 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

相关文章
|
13天前
|
人工智能 物联网 调度
边缘大型AI模型:协作部署与物联网应用——论文阅读
论文《边缘大型AI模型:协作部署与物联网应用》系统探讨了将大模型(LAM)部署于边缘网络以赋能物联网的前沿框架。针对传统云端部署高延迟、隐私差的问题,提出“边缘LAM”新范式,通过联邦微调、专家混合与思维链推理等技术,实现低延迟、高隐私的分布式智能。
322 6
边缘大型AI模型:协作部署与物联网应用——论文阅读
|
9天前
|
算法
基于MPPT算法的光伏并网发电系统simulink建模与仿真
本课题基于MATLAB/Simulink搭建光伏并网发电系统模型,集成PV模块、MPPT算法、PWM控制与并网电路,实现最大功率跟踪与电能高效并网。通过仿真验证系统在不同环境下的动态响应与稳定性,采用SVPWM与电流闭环控制,确保输出电流与电网同频同相,满足并网电能质量要求。
|
9天前
|
机器学习/深度学习 算法 数据可视化
基于MVO多元宇宙优化的DBSCAN聚类算法matlab仿真
本程序基于MATLAB实现MVO优化的DBSCAN聚类算法,通过多元宇宙优化自动搜索最优参数Eps与MinPts,提升聚类精度。对比传统DBSCAN,MVO-DBSCAN有效克服参数依赖问题,适应复杂数据分布,增强鲁棒性,适用于非均匀密度数据集的高效聚类分析。
|
9天前
|
开发框架 算法 .NET
基于ADMM无穷范数检测算法的MIMO通信系统信号检测MATLAB仿真,对比ML,MMSE,ZF以及LAMA
简介:本文介绍基于ADMM的MIMO信号检测算法,结合无穷范数优化与交替方向乘子法,降低计算复杂度并提升检测性能。涵盖MATLAB 2024b实现效果图、核心代码及详细注释,并对比ML、MMSE、ZF、OCD_MMSE与LAMA等算法。重点分析LAMA基于消息传递的低复杂度优势,适用于大规模MIMO系统,为通信系统检测提供理论支持与实践方案。(238字)
|
23天前
|
机器学习/深度学习 人工智能 自然语言处理
如何让AI更“聪明”?VLM模型的优化策略与测试方法全解析​
本文系统解析视觉语言模型(VLM)的核心机制、推理优化、评测方法与挑战。涵盖多模态对齐、KV Cache优化、性能测试及主流基准,助你全面掌握VLM技术前沿。建议点赞收藏,深入学习。
317 8
|
22天前
|
人工智能 自然语言处理 前端开发
深度解析Playwright MCP:功能、优势与挑战,AI如何提升测试效率与覆盖率
Playwright MCP通过AI与浏览器交互,实现自然语言驱动的自动化测试。它降低门槛、提升效率,助力测试工程师聚焦高价值工作,是探索性测试与快速验证的新利器。
|
6天前
|
机器学习/深度学习 人工智能 监控
Java与AI模型部署:构建企业级模型服务与生命周期管理平台
随着企业AI模型数量的快速增长,模型部署与生命周期管理成为确保AI应用稳定运行的关键。本文深入探讨如何使用Java生态构建一个企业级的模型服务平台,实现模型的版本控制、A/B测试、灰度发布、监控与回滚。通过集成Spring Boot、Kubernetes、MLflow和监控工具,我们将展示如何构建一个高可用、可扩展的模型服务架构,为大规模AI应用提供坚实的运维基础。
67 0
|
21天前
|
算法 数据建模 调度
【INC-MPPT】增量导纳算法追踪光伏的最大功率点用于光伏的并网接入研究(Simulink仿真实现)
【INC-MPPT】增量导纳算法追踪光伏的最大功率点用于光伏的并网接入研究(Simulink仿真实现)
|
15天前
|
传感器 机器学习/深度学习 编解码
MATLAB|主动噪声和振动控制算法——对较大的次级路径变化具有鲁棒性
MATLAB|主动噪声和振动控制算法——对较大的次级路径变化具有鲁棒性
126 3

热门文章

最新文章