3-ai模型移植
昇腾模型压缩工具使用指南(ONNX).pdf
ONNX(Open Neural Network Exchange)是一个用于表示深度学习模型的开放格式,而Opset(Operator Set)是ONNX中定义的一组运算符的集合。Opset版本与ONNX版本相关联,每个ONNX版本都支持一系列Opset版本。安装特定版本的ONNX时,通常会包含相应版本的Opset
3. 昇腾模型压缩工具使用指南(TensorFlow).pdf
// 转换的时候切到 python 3.9.2、量化的时候切到 python 3.7.5 以后或许不会这样,先暂时这样做
python3 ./src/process_data.py <--> pip3 install opencv-python --user
量化 -> 转换 -> 推理(通过推理相关的库加载模型,程序将待预测的数据送入模型,推理引擎(库)按照模型定义的计算图进行前向传播计算,最终得出预测结果,也就是应用模型得到结果)
python3 -m pip install tensorflow-cpu==1.15 --user 之前安装依赖 sudo apt install libhdf5-dev
2. ATC工具使用指南.pdf
1. SS928022_NNN/NNN/驱动和开发环境安装指南.pdf:
--soc_version=OPTG
pip3 install scipy==1.4.1 --user 之前安装依赖 pip3 install Cython sudo ;apt install gfortran ;sudo apt install libopenblas-dev liblapack-dev libatlas-base-dev libblas-dev
pip3 install numpy==1.13.3 --user 改为 pip3 install numpy==1.20.0 --user
开发步骤总览
- 选择与训练模型
- Caffe:由Berkeley Vision and Learning Center 开发,以速度和效率见长,特别适合计算机视觉任务。其模型定义采用配置文件(.prototxt),权重存储在二进制文件(.caffemodel)中。
- PyTorch:由 Facebook AI Research 开发,以其动态计算图和易读的 Pythonic API 而受到欢迎,非常适合研究和原型开发。模型可以直接保存为脚本或序列化为二进制文件(.pt 或 .pth)。
- ONNX (Open Neural Network Exchange):是一种开放格式,用于表示深度学习模型,支持多种框架间的模型转换。通过ONNX,用户可以在一个框架(如PyTorch)训练模型,然后转换到另一个框架(如TensorFlow)或其他平台(如SoC)。
- TensorFlow:由Google Brain团队开发,以其强大的计算图概念和丰富的生态系统而知名,广泛应用于工业级生产环境。模型结构用Python编写,权重数据存储在.pb文件中(或者使用新版的SavedModel格式)。
- 模型优化与转换(模型剪枝、量化...)
- 使用海思提供的工具(MindStudio)
- SDK与开发环境准备 (通过API接口和开发文档,加载和执行AI模型)
- 使用海思提供的文档
- 系统集成和AI部署(整合摄像头驱动程序与AI模型推理引擎,实时捕获视频流输入到模型中进行人形识别,并从模型获取输出结果)
TensorFlow测试
- 模型下载和介绍
- 以 EfficientDet D3 896x896 为例,首先测试在window上通过opencv测试使用。因为要给 opencv 使用,所以要把模型转成OpenCV支持的格式(ss927也是一样)。具了解 opencv 的 DNN模块(深度神经网络)可以加载ONNX格式的模型,所以我需要把EfficientDet模型转换为ONNX格式(可以通过 python 的 TensorFlow-ONNX(tf2onnx) 工具完成转换)
- 准备工作:
- 确保opencv已经安装了dnn模块,
- 确保 python 已经安装了 TensorFlow-ONNX(tf2onnx)
- 安装
tf2onnx
和tensorflow
:pip install tensorflow onnx tf2onnx (多次下载不了,切换下载源)
- 安装
- 准备工作:
- 以 EfficientDet D3 896x896 为例,首先测试在window上通过opencv测试使用。因为要给 opencv 使用,所以要把模型转成OpenCV支持的格式(ss927也是一样)。具了解 opencv 的 DNN模块(深度神经网络)可以加载ONNX格式的模型,所以我需要把EfficientDet模型转换为ONNX格式(可以通过 python 的 TensorFlow-ONNX(tf2onnx) 工具完成转换)
- https://github.com/tensorflow/models/tree/master/research/object_detection :
- 先获得 预训练模型的ckpt文件,然后通过模型配置文件(pipeline.config)以及TensorFlow Object Detection API提供的脚本(**.py)来将ckpt转换为frozen inference graph(.pb)
本文来自博客园,作者:封兴旺,转载请注明原文链接:https://www.cnblogs.com/fxw1/p/17976168