CANN/GE离线编译API文档
OfflineCompile【免费下载链接】geGEGraph Engine是面向昇腾的图编译器和执行器提供了计算图优化、多流并行、内存复用和模型下沉等技术手段加速模型执行效率减少模型内存占用。 GE 提供对 PyTorch、TensorFlow 前端的友好接入能力并同时支持 onnx、pb 等主流模型格式的解析与编译。项目地址: https://gitcode.com/cann/ge产品支持情况产品是否支持Atlas A3 训练系列产品/Atlas A3 推理系列产品√Atlas A2 训练系列产品/Atlas A2 推理系列产品√模块导入from ge.offline_compile import build_initialize, build_finalize, build_model, save_model, bundle_build_model, bundle_save_model, GraphWithOptions, ModelBuffer功能说明离线编译模块提供将计算图编译为离线模型.om文件的能力。支持单图编译build_model和多图 bundle 编译bundle_build_model。使用流程如下调用build_initialize初始化离线编译资源。调用build_model编译单个图或调用bundle_build_model编译多图为 bundle 离线模型。调用save_model或bundle_save_model将编译结果保存为.om文件。调用build_finalize释放离线编译资源。build_options中的配置优先级高于build_initialize中的global_options。数据类GraphWithOptions一个图与其对应的编译选项的组合用于 bundle 编译场景。dataclass class GraphWithOptions: graph: Graph build_options: Dict[str, str]属性类型说明graphGraph待编译的计算图对象build_optionsDict[str, str]该图对应的编译选项字典键和值均为字符串默认为空字典类ModelBuffer离线模型缓冲区类用于存储编译后的离线模型数据。该类不支持直接实例化由build_model或bundle_build_model返回。方法/属性说明lengthproperty获取模型缓冲区长度字节返回 intget_length()获取模型缓冲区长度字节返回 int函数原型build_initializedef build_initialize(global_options: Optional[dict] None) - None初始化离线编译所需的资源。build_finalizedef build_finalize() - None释放离线编译资源。build_modeldef build_model(graph: Graph, build_options: Optional[dict] None) - ModelBuffer编译单个计算图为离线模型模型数据保存在内存中。save_modeldef save_model(output_file: str, model: ModelBuffer) - None将内存中的离线模型序列化为.om文件。bundle_build_modeldef bundle_build_model(graph_with_options: List[GraphWithOptions]) - ModelBuffer编译多个图为 bundle 离线模型。bundle_save_modeldef bundle_save_model(output_file: str, model: ModelBuffer) - None将内存中的 bundle 离线模型序列化为.om文件。参数说明build_initialize参数类型必选说明global_optionsOptional[dict]否全局编译配置字典键和值均为字符串。默认为 None表示不传入额外配置build_model参数类型必选说明graphGraph是待编译的计算图对象build_optionsOptional[dict]否图级别的编译配置字典键和值均为字符串。若某选项同时在此处和build_initialize的global_options中配置则以本参数的值为准。默认为 Nonesave_model参数类型必选说明output_filestr是输出模型文件的基础名称。生成的离线模型文件名自动以.om为后缀。若文件名中包含操作系统和架构信息则该 OM 文件仅可在对应的操作系统和架构的运行环境中使用modelModelBuffer是离线模型缓冲区对象bundle_build_model参数类型必选说明graph_with_optionsList[GraphWithOptions]是包含多个GraphWithOptions的列表每个元素包含一个计算图及其编译选项。列表中必须包含 2 个及以上图bundle_save_model参数类型必选说明output_filestr是输出模型文件的基础名称。生成的离线模型文件名自动以.om为后缀。若文件名中包含操作系统和架构信息则该 OM 文件仅可在对应的操作系统和架构的运行环境中使用modelModelBuffer是bundle 离线模型缓冲区对象返回值说明build_model返回值类型说明modelModelBuffer包含编译后离线模型数据的缓冲区对象bundle_build_model返回值类型说明modelModelBuffer包含编译后 bundle 离线模型数据的缓冲区对象其他函数build_initialize、build_finalize、save_model、bundle_save_model无返回值。约束说明使用离线编译模块前必须先调用build_initialize初始化资源使用完毕后必须调用build_finalize释放资源。build_options中键和值必须均为字符串类型。bundle_build_model的graph_with_options列表中必须包含 2 个及以上图。ModelBuffer对象不支持拷贝copy和深拷贝deepcopy也不支持直接实例化。save_model和bundle_save_model的output_file参数为输出文件的基础名称系统会自动添加.om后缀。build_options中的配置优先级高于build_initialize中的global_options。使用示例from ge.offline_compile import ( build_initialize, build_finalize, build_model, save_model, bundle_build_model, bundle_save_model, GraphWithOptions ) from ge.graph import Graph # 初始化离线编译资源 build_initialize({log_level: 0}) # 单图编译 model build_model(graph, {input_format: ND}) save_model(output_model, model) print(f模型大小{model.length} 字节) # 多图 bundle 编译 gwo_list [ GraphWithOptions(graph1, {input_format: ND}), GraphWithOptions(graph2, {input_format: NCHW}), ] bundle_model bundle_build_model(gwo_list) bundle_save_model(bundle_output, bundle_model) # 释放离线编译资源 build_finalize()【免费下载链接】geGEGraph Engine是面向昇腾的图编译器和执行器提供了计算图优化、多流并行、内存复用和模型下沉等技术手段加速模型执行效率减少模型内存占用。 GE 提供对 PyTorch、TensorFlow 前端的友好接入能力并同时支持 onnx、pb 等主流模型格式的解析与编译。项目地址: https://gitcode.com/cann/ge创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考