转换样例
使用高版本ATC工具转换的模型,在低版本环境上使用可能会出现不兼容问题,建议使用匹配的版本重新进行模型转换。
开源框架的Caffe网络模型转换成离线模型
- 以ATC运行用户登录开发环境,并将模型转换过程中用到的模型文件(*.prototxt)、权重文件(*.caffemodel)等上传到开发环境任意路径,例如上传到$HOME/test/目录下。
- 执行如下命令生成离线模型。(如下命令中使用的目录以及文件均为样例,请以实际为准)
atc --model=$HOME/test/resnet50.prototxt --weight=$HOME/test/resnet50.caffemodel --framework=0 --output=$HOME/test/out/caffe_resnet50 --soc_version=${soc_version}
关于参数的详细解释以及使用方法请参见参数说明。
- 若提示如下信息,则说明模型转换成功。
ATC run success
成功执行命令后,在output参数指定的路径下,可查看模型文件(如:caffe_resnet50.om)。
- 如果用户使用的网络模型中有自定义算子,则请优先参见《TBE自定义算子开发指南》手册开发部署好自定义算子,模型转换时会优先去查找自定义算子库匹配模型文件中的算子;若匹配失败,则会去查找内置算子库。
- 如果用户使用Faster RCNN、YOLOv3、YOLOv2、SSD等Caffe框架网络模型进行模型转换,由于此类网络中包含了一些原始Caffe框架中没有定义的算子结构,如ROIPooling、Normalize、PSROI Pooling和Upsample等。为了使昇腾AI处理器能支持这些网络,需要对原始的Caffe框架网络模型进行扩展,降低开发者开发自定义算子/开发后处理代码的工作量,详细扩展方法请参见定制网络修改(Caffe)。
- (可选)如果模型转换过程中指定了输出节点(即使用了--out_nodes参数),转换成.om模型后无法查看算子的输出信息,则可以将.om模型转换成json格式后查看,使用命令为:
atc --mode=1 --om=$HOME/test/caffe_resnet50.om --json=$HOME/test/out/resnet.json
图2-4为使用“--out_nodes”参数指定了输出res4f类型的算子,将转换后的om模型转换成json文件,最后输出算子的变化情况。左边为不使用“--out_nodes”参数,右边为使用“--out_nodes”参数后的变化情况。
单算子描述文件转换成离线模型
- 以ATC运行用户登录开发环境,并将模型转换过程中用到的单算子描述文件(json格式)上传到开发环境$HOME/singleop/目录下,本章节以format为ND的GEMM单算子为例进行说明。
- 执行如下命令生成离线模型。(如下命令中使用的目录以及文件均为样例,请以实际为准)
atc --singleop=$HOME/singleop/gemm.json --output=$HOME/test/out/op_model --soc_version=${soc_version}
- 若提示如下信息,则说明模型转换成功。
ATC run success
成功执行命令后,在output参数指定的路径下,可查看模型文件,例如: 0_GEMM_1_2_16_16_1_2_16_16_1_2_16_16_1_2_1_2_1_2_16_16.om。
其中生成的离线模型文件命名规则为:序号_opType_输入的描述(dataType_format_shape)_输出的描述(dataType_format_shape)。
dataType以及format对应枚举值请从${install_path}/atc/include/graph/types.h文件中查看,枚举值从0开始依次递增。
开源框架的TensorFlow网络模型转换成离线模型
- 以ATC运行用户登录开发环境,并将模型转换过程中使用到的模型文件(*.pb)等上传到开发环境任意路径,例如$HOME/test/目录下。
- 执行如下命令生成离线模型。(如下命令中使用的目录以及文件均为样例,请以实际为准)
atc --model=$HOME/test/resnet18_tensorflow.pb --framework=3 --output=$HOME/test/out/tf_resnet18 --soc_version=${soc_version}
关于参数的详细解释以及使用方法请参见参数说明。
- 若提示如下信息,则说明模型转换成功。
ATC run success
成功执行命令后,在output参数指定的路径下,可查看模型文件(如:tf_resnet18.om)。
ONNX网络模型转换成离线模型
- 以ATC运行用户登录开发环境,并将模型转换过程中使用到的模型文件(*.onnx)等上传到开发环境任意路径,例如$HOME/test/目录下。
- 执行如下命令生成离线模型。(如下命令中使用的目录以及文件均为样例,请以实际为准)
atc --model=$HOME/test/resnet50.onnx --framework=5 --output=$HOME/test/out/onnx_resnet50 --soc_version=${soc_version}
关于参数的详细解释以及使用方法请参见参数说明。
- 若提示如下信息,则说明模型转换成功。
ATC run success
成功执行命令后,在output参数指定的路径下,可查看模型文件(如:onnx_resnet50.om)。
MindSpore框架的网络模型转换成离线模型
- 以ATC运行用户登录开发环境,并将模型转换过程中使用到的模型文件(*.pb)等上传到开发环境任意路径,例如$HOME/test/目录下。
- 执行如下命令生成离线模型。(如下命令中使用的目录以及文件均为样例,请以实际为准)
atc --model=$HOME/test/ReLU.pb --framework=1 --output=$HOME/test/out/ReLU_mindspore --soc_version=${soc_version}
关于参数的详细解释以及使用方法请参见参数说明。
- 若提示如下信息,则说明模型转换成功。
ATC run success
成功执行命令后,在output参数指定的路径下,可查看模型文件(如:ReLU_mindspore.om)。