新闻详情

新闻详情

首页 / 资讯中心 / 详情

CANN/GE ES构图可选输入样例

发布时间:2026/9/10 3:26:14来源:尧图网络
CANN/GE ES构图可选输入样例
样例使用指导【免费下载链接】geGEGraph Engine是面向昇腾的图编译器和执行器提供了计算图优化、多流并行、内存复用和模型下沉等技术手段加速模型执行效率减少模型内存占用。 GE 提供对 PyTorch、TensorFlow 前端的友好接入能力并同时支持 onnx、pb 等主流模型格式的解析与编译。项目地址: https://gitcode.com/cann/ge1、功能描述本样例使用BatchNorm算子可选输入进行构图旨在帮助构图开发者快速理解可选输入定义和使用该类型算子进行构图2、目录结构python/ ├── src/ | └── make_batchnorm_graph.py // sample文件 ├── run_sample.sh // 执行脚本 ├── CMakeLists.txt // 编译脚本 ├──README.md // README文件3、使用方法3.1、准备cann包通过安装指导 环境准备正确安装toolkit和ops包设置环境变量 (假设包安装在/usr/local/Ascend/)source /usr/local/Ascend/cann/set_env.sh3.2、编译和执行注和 C/C构图对比Python构图需要额外添加 LD_LIBRARY_PATH 和 PYTHONPATH(参考sample中的配置方式)bash run_sample.sh -t sample_and_run_python该命令会自动生成ES接口编译sample程序生成dump图并运行该图执行成功后会看到[Success] sample 执行成功pbtxt dump 已生成在当前目录。该文件以 ge_onnx_ 开头可以在 netron 中打开显示输出文件说明执行成功后会在当前目录生成以下文件ge_onnx_*.pbtxt- 图结构的protobuf文本格式可用netron查看3.3、日志打印可执行程序执行过程中如果需要日志打印来辅助定位可以在bash run_sample.sh -t sample_and_run_python之前设置如下环境变量来让日志打印到屏幕export ASCEND_SLOG_PRINT_TO_STDOUT1 #日志打印到屏幕 export ASCEND_GLOBAL_LOG_LEVEL0 #日志级别为debug级别3.4、图编译流程中DUMP图可执行程序执行过程中如果需要DUMP图来辅助定位图编译流程可以在bash run_sample.sh -t sample_and_run_python 之前设置如下环境变量来DUMP图到执行路径下export DUMP_GE_GRAPH24、核心概念介绍4.1、构图步骤如下创建图构建器(用于提供构图所需的上下文、工作空间及构建相关方法)添加起始节点(起始节点指无输入依赖的节点通常包括图的输入(如 Data 节点)和权重常量(如 Const 节点))添加中间节点(中间节点为具有输入依赖的计算节点通常由用户构图逻辑生成并通过已有节点作为输入连接)设置图输出(明确图的输出节点作为计算结果的终点)4.2、概念说明可选输入是指算子的某些输入是非必选输入。构图 API 特点构图时输入为非必传参数例如 BatchNorm 算子原型如下所示ES 构图生成的API是BatchNorm()支持在 Python 层使用REG_OP(BatchNorm) .INPUT(x, TensorType({DT_FLOAT16,DT_FLOAT})) .INPUT(scale, TensorType({DT_FLOAT})) .INPUT(offset, TensorType({DT_FLOAT})) .OPTIONAL_INPUT(mean, TensorType({DT_FLOAT})) .OPTIONAL_INPUT(variance, TensorType({DT_FLOAT})) .OUTPUT(y, TensorType({DT_FLOAT16,DT_FLOAT})) .OUTPUT(batch_mean, TensorType({DT_FLOAT})) .OUTPUT(batch_variance, TensorType({DT_FLOAT})) .OUTPUT(reserve_space_1, TensorType({DT_FLOAT})) .OUTPUT(reserve_space_2, TensorType({DT_FLOAT})) .OUTPUT(reserve_space_3, TensorType({DT_FLOAT})) .ATTR(epsilon, Float, 0.0001f) .ATTR(data_format, String, NHWC) .ATTR(is_training, Bool, true) .ATTR(exponential_avg_factor, Float, 1.0) .OP_END_FACTORY_REG(BatchNorm)其对应的函数原型为函数名BatchNorm参数共 9 个依次为 x scale offset mean(可选输入) variance(可选输入) epsilon data_format is_training exponential_avg_factor返回值输出 y batch_mean batch_variance reserve_space_1 reserve_space_2 reserve_space_3Python API中BatchNorm(x: Union[TensorHolder, TensorLike], scale: Union[TensorHolder, TensorLike], offset: Union[TensorHolder, TensorLike], mean: Optional[Union[TensorHolder, TensorLike]] None, variance: Optional[Union[TensorHolder, TensorLike]] None, epsilon: float 0.00100, data_format: str NHWC, is_training: bool True, exponential_avg_factor: float 0.00100) - BatchNormOutput:class BatchNormOutput: def __init__(self, y: TensorHolder, batch_mean: TensorHolder, batch_variance: TensorHolder, reserve_space_1: TensorHolder, reserve_space_2: TensorHolder, reserve_space_3: TensorHolder) self.y y self.batch_mean batch_mean self.batch_variance batch_variance self.reserve_space_1 reserve_space_1 self.reserve_space_2 reserve_space_2 self.reserve_space_3 reserve_space_3注 1.使用TensorLike类型表达输入以支持实参可以直接传递数值的情况Python 层 API 示例方式 : 直接调用 BatchNorm()from ge.es.graph_builder import GraphBuilder, TensorHolder from ge.graph import Tensor from ge.graph.types import DataType, Format from ge.graph import Graph from ge.es.all import BatchNorm # 1. 创建图构建器 builder GraphBuilder(control_dep_example) # 2. 创建节点 input_tensor_holder builder.create_input( index0, nameinput, data_typeDataType.DT_FLOAT, shape[2, 3] ) variance builder.create_input( index1, namevariance, data_typeDataType.DT_FLOAT, shape[2, 3] ) scale builder.create_vector_int64([3, 1]) offset builder.create_vector_int64([3, 0]) # 3. 可选输入 mean 为None, variance 有输入 batchNorm_tensor_holder BatchNorm(input_tensor_holder, scale, offset, None, variance) # 4. 设置输出并构建 builder.set_graph_output(batchNorm_tensor_holder.y, 0) graph builder.build_and_reset()【免费下载链接】geGEGraph Engine是面向昇腾的图编译器和执行器提供了计算图优化、多流并行、内存复用和模型下沉等技术手段加速模型执行效率减少模型内存占用。 GE 提供对 PyTorch、TensorFlow 前端的友好接入能力并同时支持 onnx、pb 等主流模型格式的解析与编译。项目地址: https://gitcode.com/cann/ge创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

Java网络编程新选择:轻量AIO框架smart-socket的实战解析 2026/9/10 4:08:19

Java网络编程新选择:轻量AIO框架smart-socket的实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
永磁同步电机对拖实验台:算法落地的物理验证平台 2026/9/10 4:08:19

永磁同步电机对拖实验台:算法落地的物理验证平台

1. 这不是普通电机台架,而是一套“算法显微镜”——永磁同步电机对拖控制实验台到底在验证什么?你手头那台标着“永磁同步电机对拖控制实验台”的设备,绝不是两台电机面对面转起来那么简单。它本质上是一台高精度、可复现、全链路闭环的机电系…

阅读更多 →
同城社区家政系统开发,会员预约功能开发 2026/9/10 4:08:19

同城社区家政系统开发,会员预约功能开发

同城社区家政系统开发,会员预约功能开发同城社区家政服务的核心竞争力,除了上门服务的质量与效率,更在于用户留存与复购能力。当下多数同城家政服务商,基础的在线预约、工单派单功能已经普及,但会员预约体系普遍存在功…

阅读更多 →
CANN/ge获取告警信息V3 2026/9/10 4:08:19

CANN/ge获取告警信息V3

GEGetWarningMsgV3 【免费下载链接】ge GE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch、TensorF…

阅读更多 →
PIC24F16KA101-I/SS采购避坑指南:封装、工艺与低功耗实测验证 2026/9/10 4:08:19

PIC24F16KA101-I/SS采购避坑指南:封装、工艺与低功耗实测验证

1. 为什么说 PIC24F16KA101-I/SS 是“小脚数低功耗 MCU 采购里最容易翻车的型号之一” 你手头正赶一个电池供电的便携式传感器节点项目,主控芯片选型卡在最后一步:要够小、够省电、够便宜,还要能快速量产。这时候工程师群里有人甩出一句&…

阅读更多 →
CANN/ge注册回调函数API 2026/9/10 4:05:19

CANN/ge注册回调函数API

RegisterCallBackFunc 【免费下载链接】ge GE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch、Tens…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞