快速入门
本章节以各框架下模型转换为例,演示如何快速转换一个模型。

- 版本兼容性说明:
- 低版本的CANN软件包环境上转换出的om离线模型,支持在高版本的CANN软件包环境上运行,兼容4个版本周期。
- 动态shape场景和静态昇腾虚拟化实例场景:若用户使用6.0.1之前的CANN版本进行的模型转换,无法在6.0.1及之后CANN版本进行推理,需要使用6.0.1及之后匹配的CANN版本重新进行模型转换。如果用户想查看已有离线模型使用的ATC工具等基础版本信息,则请参见借助离线模型查看软件基础版本号。
(昇腾虚拟化实例主要是指NPU资源虚拟化的场景,其主要目的是为了通过相互隔离的vNPU虚拟实例提升物理NPU资源利用率,因此在某些场景下也称为算力切分。)
- 若开发环境架构为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。
- 若提示如下信息,则说明模型转换成功。
1
ATC run success, welcome to the next use.
成功执行命令后,在--output参数指定的路径下,可查看离线模型(如:tf_resnet50.om)。若模型转换失败,请参见《故障处理》>“错误码参考”章节进行辅助定位。
- (后续处理)如果想快速体验直接使用转换后的om离线模型文件进行推理,请准备好环境、om模型文件、符合模型输入要求的*.bin格式的输入数据,单击Link,获取msame工具,参考该工具配套的README,进行体验。
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。
- 若提示如下信息,则说明模型转换成功。
1
ATC run success, welcome to the next use.
成功执行命令后,在--output参数指定的路径下,可查看离线模型(如:onnx_resnet50.om)。若模型转换失败,请参见《故障处理》>“错误码参考”章节进行辅助定位。
- (后续处理)如果想快速体验直接使用转换后的om离线模型文件进行推理,请准备好环境、om模型文件、符合模型输入要求的*.bin格式的输入数据,单击Link,获取msame工具,参考该工具配套的README,进行体验。
开源框架的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。
- 若提示如下信息,则说明模型转换成功。
1
ATC run success, welcome to the next use.
成功执行命令后,在--output参数指定的路径下,可查看离线模型(如:caffe_resnet50.om)。若模型转换失败,请参见《故障处理》>“错误码参考”章节进行辅助定位。
- (后续处理)如果想快速体验直接使用转换后的om离线模型文件进行推理,请准备好环境、om模型文件、符合模型输入要求的*.bin格式的输入数据,单击Link,获取msame工具,参考该工具配套的README,进行体验。
MindSpore框架的网络模型转换成离线模型
- 获取MindSpore框架的网络模型。
单击Link,获取ResNet-50网络的模型文件(仅支持*.air格式的模型文件进行模型转换),并以CANN软件包运行用户将获取的文件上传到开发环境任意路径,例如$HOME/module/目录下。
- 执行如下命令生成离线模型。(如下命令中使用的目录以及文件均为样例,请以实际为准)
atc --model=$HOME/module/ResNet50.air --framework=1 --output=$HOME/module/out/ResNet50_mindspore --soc_version=<soc_version>
- --model:*.air格式的模型文件所在路径。
- --framework:原始框架类型,1表示*.air格式的模型文件。
- --output:生成的离线模型路径。
- --soc_version:昇腾AI处理器的型号。
关于参数的详细解释请参见参数说明,请使用与芯片名相对应的<soc_version>取值进行模型转换,然后再进行推理,具体使用芯片查询方法请参见--soc_version。
- 若提示如下信息,则说明模型转换成功。
1
ATC run success, welcome to the next use.
成功执行命令后,在--output参数指定的路径下,可查看离线模型(如:ResNet50_mindspore.om)。若模型转换失败,请参见《故障处理》>“错误码参考”章节进行辅助定位。
- (后续处理)如果想快速体验直接使用转换后的om离线模型文件进行推理,请准备好环境、om模型文件、符合模型输入要求的*.bin格式的输入数据,单击Link,获取msame工具,参考该工具配套的README,进行体验。