快速入门
本章节以各框架下模型转换为例,演示如何快速转换一个离线模型。
- 版本兼容性说明:
- 针对8.5.0及之后版本:使用ATC工具进行模型转换时,必须安装与目标昇腾AI处理器匹配的ops算子包,否则会导致编译失败。
- 低版本的CANN软件包环境上转换出的离线模型,支持在高版本的CANN软件包环境上运行,兼容4个版本周期。
- 若开发环境架构为Arm(aarch64),模型转换耗时较长,则可以参考开发环境架构为Arm(aarch64)时模型转换耗时较长解决。
- 如果模型转换时,用户使用了设置网络模型精度参数--precision_mode或--precision_mode_v2:
开源框架的TensorFlow网络模型转换成离线模型
- 获取TensorFlow网络模型。
单击Link,根据页面提示获取ResNet50网络的模型文件(*.pb),并以CANN软件包运行用户将获取的文件上传至开发环境任意目录,例如上传到$HOME/module/目录下。
- 执行如下命令生成离线模型。(如下命令中使用的目录以及文件均为样例,请以实际为准)
atc --model=$HOME/module/resnet50_tensorflow*.pb --framework=3 --output=$HOME/module/out/tf_resnet50 --soc_version=<soc_version>- --model:ResNet50网络模型文件所在路径。
- --framework:原始框架类型,3表示TensorFlow。
- --output:生成的离线模型路径。
- --soc_version:昇腾AI处理器的型号。
关于参数的详细解释请参见参数说明,请使用与芯片名相对应的<soc_version>取值进行模型转换,然后再进行推理,具体使用芯片查询方法请参见--soc_version。
- 若提示如下信息,则说明模型转换成功。
1ATC run success, welcome to the next use.
成功执行命令后,在--output参数指定的路径下,可查看离线模型(如:tf_resnet50.om)。若模型转换失败,请参见“错误码参考”章节进行辅助定位。
ONNX网络模型转换成离线模型
- 获取ONNX网络模型。
单击Link进入ModelZoo页面,查看README.md中“快速上手>模型推理”章节获取*.onnx模型文件,再以CANN软件包运行用户将获取的文件上传至开发环境任意目录,例如上传到$HOME/module/目录下。
- 执行如下命令生成离线模型。(如下命令中使用的目录以及文件均为样例,请以实际为准)
atc --model=$HOME/module/resnet50*.onnx --framework=5 --output=$HOME/module/out/onnx_resnet50 --soc_version=<soc_version>- --model:Resnet50网络模型文件所在路径。
- --framework:原始框架类型,5表示ONNX。
- --output:生成的离线模型路径。
- --soc_version:昇腾AI处理器的型号。
关于参数的详细解释请参见参数说明,请使用与芯片名相对应的<soc_version>取值进行模型转换,然后再进行推理,具体使用芯片查询方法请参见--soc_version。
- 若提示如下信息,则说明模型转换成功。
1ATC run success, welcome to the next use.
成功执行命令后,在--output参数指定的路径下,可查看离线模型(如:onnx_resnet50.om)。若模型转换失败,请参见“错误码参考”章节进行辅助定位。
开源框架的Caffe网络模型转换成离线模型
- 获取Caffe网络模型。
您可以从以下链接中获取ResNet-50网络的模型文件(*.prototxt)、权重文件(*.caffemodel),并以CANN软件包运行用户将获取的文件上传至开发环境任意目录,例如上传到$HOME/module/目录下。
- 执行如下命令生成离线模型。(如下命令中使用的目录以及文件均为样例,请以实际为准)
atc --model=$HOME/module/resnet50.prototxt --weight=$HOME/module/resnet50.caffemodel --framework=0 --output=$HOME/module/out/caffe_resnet50 --soc_version=<soc_version>- --model:ResNet-50网络模型文件所在路径。
- --weight:ResNet-50网络权重文件所在路径。
- --framework:原始框架类型,0表示Caffe。
- --output:生成的离线模型路径。
- --soc_version:昇腾AI处理器的型号。
关于参数的详细解释请参见参数说明,请使用与芯片名相对应的<soc_version>取值进行模型转换,然后再进行推理,具体使用芯片查询方法请参见--soc_version。
- 若提示如下信息,则说明模型转换成功。
1ATC run success, welcome to the next use.
成功执行命令后,在--output参数指定的路径下,可查看离线模型(如:caffe_resnet50.om)。若模型转换失败,请参见“错误码参考”章节进行辅助定位。
*.air格式的模型文件转换成离线模型
- 获取*.air格式模型文件。
单击Link,获取ResNet-50网络的模型文件,并以CANN软件包运行用户将获取的文件上传到开发环境任意路径,例如$HOME/module/目录下。
- 执行如下命令生成离线模型。(如下命令中使用的目录以及文件均为样例,请以实际为准)
atc --model=$HOME/module/ResNet50.air --framework=1 --output=$HOME/module/out/ResNet50_air --soc_version=<soc_version>- --model:*.air格式的模型文件所在路径。
- --framework:原始框架类型,1表示*.air格式的模型文件。
- --output:生成的离线模型路径。
- --soc_version:昇腾AI处理器的型号。
关于参数的详细解释请参见参数说明,请使用与芯片名相对应的<soc_version>取值进行模型转换,然后再进行推理,具体使用芯片查询方法请参见--soc_version。
- 若提示如下信息,则说明模型转换成功。
1ATC run success, welcome to the next use.
成功执行命令后,在--output参数指定的路径下,可查看离线模型(如:ResNet50_air.om)。若模型转换失败,请参见“错误码参考”章节进行辅助定位。