使用前必读
用户使用Caffe/TensorFlow等框架训练好的模型,可通过ATC工具将其转换为昇腾AI处理器BS9SX1A AI处理器支持的离线模型,模型转换过程中可以实现算子调度的优化、权重数据重排、内存使用优化等,可以脱离设备完成模型的预处理,详细架构如图1所示。
约束说明
在进行模型转换前,请务必查看如下约束要求:
- 如果要将FasterRCNN、YoloV3、YoloV2等网络模型转成适配昇腾AI处理器BS9SX1A AI处理器的离线模型, 则务必参见《ATC工具使用指南》“定制网络专题”章节先修改prototxt模型文件。
- 不支持动态shape的输入,例如:NHWC输入为[?,?,?,3]多个维度可任意指定数值。模型转换时需指定固定数值。
- 模型中的所有层算子除常量算子外,输入和输出需要满足维度不为0。
- 只支持《CANN 支持Caffe/TensorFlow/ONNX算子清单》中的算子,并需满足算子限制条件。
- 支持的原始框架类型、输入数据类型和模型文件如表1所示。
表1 支持框架类型 原始框架类型
输入数据类型
模型文件说明
Caffe
- FP32。
- FP16:通过设置入参--input_fp16_nodes实现。
- UINT8:通过配置数据预处理实现。
说明:
- 输入数据最大支持四维,转维算子(reshape、expanddim等)不能输出五维。
- 模型文件:xxx.prototxt
- 权重文件:xxx.caffemodel
其中,模型文件和权重文件的op name、op type必须保持名称一致(包括大小写)。
TensorFlow
- FP16
- FP32
- UINT8
- INT32
- INT64
- BOOL
说明:
不支持输出数据类型为INT64,需要用户自行将INT64的数据类型修改为INT32类型。
模型文件:xxx.pb
只支持FrozenGraphDef格式的.pb模型转换。
ONNX
- FP32。
- FP16:通过设置入参--input_fp16_nodes实现。
- UINT8:通过配置数据预处理实现。
模型文件:xxx.onnx
MindSpore
- FP32。
- UINT8:通过配置数据预处理实现。
模型转换:xxx.air
父主题: 模型转换