
初级功能【免费下载链接】geGEGraph Engine是面向昇腾的图编译器和执行器提供了计算图优化、多流并行、内存复用和模型下沉等技术手段加速模型执行效率减少模型内存占用。 GE 提供对 PyTorch、TensorFlow 前端的友好接入能力并同时支持 onnx、pb 等主流模型格式的解析与编译。项目地址: https://gitcode.com/cann/ge原始模型文件或离线模型转成JSON文件场景介绍如果用户不方便查看原始模型或离线模型的参数信息时可以将原始模型或离线模型转成JSON文件进行查看。转换方法本章节以TensorFlow框架ResNet50网络模型为例进行演示单击Link根据页面提示获取ResNet50网络模型文件*.pb。原始模型文件转JSON文件命令示例如下atc --mode1 --om$HOME/module/resnet50_tensorflow_1.7.pb --json$HOME/module/out/tf_resnet50.json --framework3--mode运行模式1表示原始模型文件或离线模型转JSON此处特指原始模型文件转JSON。--om指定ResNet50网络模型文件所在路径。--json转换为JSON格式的文件路径和文件名。--framework原始框架类型3表示TensorFlow。离线模型转JSON文件该场景的前提是用户根据开源框架的TensorFlow网络模型转换成离线模型已经得到了om离线模型文件命令示例如下atc --mode1 --om$HOME/module/out/tf_resnet50.om --json$HOME/module/out/tf_resnet50.json--mode运行模式1表示原始模型文件或离线模型转JSON此处特指离线模型文件转JSON。--om指定离线模型文件所在路径。关于参数的详细解释请参见参数说明。若提示如下信息则说明转换成功。若模型转换失败请参见《故障处理》“错误码参考”章节进行辅助定位。ATC run success, welcome to the next use.成功执行命令后在--json参数指定的路径下可查看转换后的JSON文件信息如下为部分JSON片段{ node: [ { attr: [ { key: shape, value: { shape: { dim: [ { size: 1 }, { size: 224 }, { size: 224 }, { size: 3 } ] } } }, { key: dtype, value: { type: DT_FLOAT } } ], name: Placeholder, op: Placeholder }, ... ] }离线模型支持动态batch_size/动态分辨率IPV350不支持动态batch_size和动态分辨率特性。场景介绍某些推理场景如检测出目标后再执行目标识别网络由于目标个数不固定导致目标识别网络输入batch_size不固定。如果每次推理都按照最大的batch_size或最大分辨率进行计算会造成计算资源浪费。为此ATC工具提供了--dynamic_batch_size参数设置batch_size档位提供了--dynamic_image_size参数设置分辨率档位。转换方法如下转换示例以TensorFlow框架ResNet50网络模型为例进行演示单击Link根据页面提示获取ResNet50网络的模型文件*.pb。以CANN软件包运行用户登录开发环境将模型文件*.pb上传到开发环境任意路径例如上传到$HOME_/module__/_目录下。执行如下命令生成离线模型。如下命令中使用的目录以及文件均为样例请以实际为准动态batch_sizeatc --model$HOME/module/resnet50_tensorflow_1.7.pb --framework3 --output$HOME/module/out/tf_resnet50 --soc_versionsoc_version --input_shapePlaceholder:-1,224,224,3 --dynamic_batch_size1,2,4,8动态分辨率atc --model$HOME/module/resnet50_tensorflow_1.7.pb --framework3 --output$HOME/module/out/tf_resnet50 --soc_versionsoc_version --input_shapePlaceholder:1,-1,-1,3 --dynamic_image_size224,224;448,448关键参数解释如下--dynamic_batch_size设置动态batch_size参数。--dynamic_image_size设置输入图片的动态分辨率参数。--input_shape指定模型输入数据的shape配合--dynamic_batch_size或--dynamic_image_size参数使用。--modelResNet50网络模型文件所在路径。--framework原始框架类型3表示TensorFlow。关于参数的详细解释请参见参数说明。若提示如下信息则说明模型转换成功。若模型转换失败请参见《故障处理》“错误码参考”章节进行辅助定位。ATC run success, welcome to the next use.成功执行命令后在--output参数指定的路径下可查看离线模型如tf_resnet50.om。模型转换完成后在生成的om离线模型中会新增一个输入如图1中红框中的Data输入在模型推理时通过该新增的输入提供具体的batch_size值或分辨率值。例如a输入的batch_size是动态的或分辨率是动态的在om离线模型中会有与a对应的b输入来描述a的batch_size或分辨率取值。图 1包含动态batch_size功能的离线模型 离线模型支持动态维度场景介绍为支持Transformer等网络模型在输入Tensor维度不确定的场景ATC工具提供了--dynamic_dims参数实现ND格式下任意维度的档位设置。ND表示支持任意格式。转换方法本章节以TensorFlow框架ResNet50网络模型为例进行演示单击Link根据页面提示获取ResNet50网络模型文件*.pb。以CANN软件包运行用户登录开发环境将模型文件上传到开发环境任意路径例如上传到$HOME_/module__/_目录下。执行如下命令生成离线模型。如下命令中使用的目录以及文件均为样例请以实际为准atc --model$HOME/module/resnet50_tensorflow_1.7.pb --framework3 --output$HOME/module/out/tf_resnet50 --soc_versionsoc_version --input_shapePlaceholder:-1,-1,-1,3 --dynamic_dims1,224,224;8,448,448 --input_formatND关键参数解释如下--dynamic_dims设置ND格式下动态维度档位。--input_shape指定模型输入数据的shape配合--dynamic_dims参数使用。--input_format指定Format为ND格式。--modelResNet50网络模型文件所在路径。--framework原始框架类型3表示TensorFlow。关于参数的详细解释请参见参数说明。若提示如下信息则说明模型转换成功。若模型转换失败请参见《故障处理》“错误码参考”章节进行辅助定位。ATC run success, welcome to the next use.成功执行命令后在--output参数指定的路径下可查看离线模型。模型转换完成后在生成的om离线模型中会新增一个输入如图1中红框中的Data输入在模型推理时通过该新增的输入提供具体的维度值。例如a输入的维度为动态的在om离线模型中会有与a对应的b输入来描述a的维度值。图 1包含动态维度的离线模型 自定义离线模型的输入输出数据类型场景介绍模型转换时支持指定网络的输入节点、输出节点的DataType、Format、模型转换支持精度选择等关键参数。假如针对TensorFlow框架ResNet-50网络模型要求转换后离线模型的输入数据为Float16类型指定_MaxPoolWithArgmax_算子作为输出算子对应的节点名称为fp32_vars/MaxPoolWithArgmax并且指定该输出节点的数据类型为FP16。该场景下就需要分别使用--input_fp16_nodes、--out_nodes、--output_type等参数来实现上述功能。转换方法本章节以TensorFlow框架ResNet50网络模型为例进行演示单击Link根据页面提示获取ResNet50网络模型文件*.pb。以CANN软件包运行用户登录开发环境将模型文件*.pb上传到开发环境任意路径例如上传到$HOME_/module__/_目录下。执行如下命令生成离线模型。如下命令中使用的目录以及文件均为样例请以实际为准atc --model$HOME/module/resnet50_tensorflow_1.7.pb --framework3 --output$HOME/module/out/tf_resnet50 --soc_versionsoc_version --input_fp16_nodesPlaceholder --out_nodesfp32_vars/MaxPoolWithArgmax:0 --output_typefp32_vars/MaxPoolWithArgmax:0:FP16关键参数解释如下--input_fp16_nodes指定输入数据类型为Float16。--out_nodes指定MaxPoolWithArgmax算子作为模型的输出。--output_type指定输出节点的数据类型为Float16。--modelResNet50网络模型文件所在路径。--framework原始框架类型3表示TensorFlow。关于参数的详细解释请参见参数说明。若提示如下信息则说明模型转换成功。若模型转换失败请参见《故障处理》“错误码参考”章节进行辅助定位。ATC run success, welcome to the next use.成功执行命令后在output参数指定的路径下可查看离线模型如tf_resnet50.om。图1为_MaxPoolWithArgmax_算子作为模型输出算子的示意图下图使用Netron可视化软件打开。图 1指定某个算子为离线模型输出 借助离线模型查看软件基础版本号场景介绍不同CANN软件包版本由于软件功能差异所转换出的离线模型功能也有差异该场景下建议用户使用匹配CANN软件版本的ATC工具重新进行模型转换。假如用户已有转换好的离线模型想查看使用的CANN软件包基础版本号则可以参见本章节完成。查看方法获取已经转换好的离线模型例如_tf_resnet50.om_并以CANN软件包运行用户将其上传至开发环境任意目录例如上传到$HOME_/module__/_目录下。将离线模型转成JSON文件atc --mode1 --om$HOME/module/tf_resnet50.om --json$HOME/module/out/tf_resnet50.json--om指定离线模型文件_tf_resnet50.om_所在路径。--json转换为JSON格式的文件路径和文件名。在转换后的JSON文件中可以查看原始模型转换为离线模型时使用的基础版本号示例如下如下为部分JSON片段_version_即为展示的版本号信息{ key: opp_version, value: { s: version } }, ... ... { key: atc_version, value: { s: version } }, ... ... { key: atc_cmdline, value: { s: xxx/atc.bin --model ./resnet50_tensorflow.pb --framework 3 --output ./out/tf_resnet50 --soc_version soc_version } }, ... ... { key: soc_version, value: { s: soc_version } },【免费下载链接】geGEGraph Engine是面向昇腾的图编译器和执行器提供了计算图优化、多流并行、内存复用和模型下沉等技术手段加速模型执行效率减少模型内存占用。 GE 提供对 PyTorch、TensorFlow 前端的友好接入能力并同时支持 onnx、pb 等主流模型格式的解析与编译。项目地址: https://gitcode.com/cann/ge创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考