3.1 模型迁移概述
最后更新于
最后更新于
用户首先需要进行模型迁移,把其他框架下训练好的模型转换为能够运行于算丰Sophon TPU平台上的定制模型BModel。
当前Sophon SDK已支持绝大部分开源的 Caffe、Darknet、MXNet、ONNX、PyTorch、TensorFlow、Paddle Paddle等框架下的算子和模型,更多的网络层和模型也在持续支持中。关于对算子和模型的支持情况,请查看《NNToolChain用户开发手册》。
1
Caffe
官方版本
bmnetc
2
Darknet
官方版本
bmnetd
3
MXNet
mxnet>=1.3.0
bmnetm
4
ONNX
onnx == 1.7.0
(Opset version == 12) onnxruntime == 1.3.0 protobuf >=3.8.0
bmneto
5
PyTorch
pytorch>=1.0.0
bmnetp
6
TensorFlow
tensorflow>=1.10.0
bmnett
7
Paddle Paddle
paddlepaddle>=2.1.1
bmpaddle
我们提供了NNToolChain工具套件帮助用户实现模型迁移。对于BM1684平台来说,它既支持float32模型,也支持int8量化模型。其模型转换流程以及章节介绍如图:
如果需要运行fp32 BModel,请参考3.2 FP32模型生成章节。
如果需要运行in8 BModel,需要先准备量化数据集、将原始模型转换为fp32 UModel、再使用量化工具量化为int8 UModel、最后使用bmnetu编译为int8 BModel,具体请依次参考3.3 INT8模型生成章节。
NNToolChain工具套件提供了bmnetc、bmnetd、bmnetm、bmneto、bmnetp、bmnett、bmnetu等工具,分别用来转换Caffe、Darknet、MXNet、ONNX、Pytorch、Tensorflow、UFramework(算能科技自定义的模型中间格式框架)等框架下的模型:经前端工具解析后,模型编译器BMNet Compiler会对各种框架的模型进行离线转换,生成 TPU 能够执行的指令流并序列化保存为BModel文件;当执行在线推理时, 由BMRuntime负责BModel模型的读取、数据的拷贝传输、TPU推理的执行以及计算结果的读取等。