当前位置: 首页 > news >正文

CANN/ge TensorHolder文档

TensorHolder

【免费下载链接】geGE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch、TensorFlow 前端的友好接入能力,并同时支持 onnx、pb 等主流模型格式的解析与编译。项目地址: https://gitcode.com/cann/ge

产品支持情况

产品是否支持
Atlas A3 训练系列产品/Atlas A3 推理系列产品
Atlas A2 训练系列产品/Atlas A2 推理系列产品

模块导入

from ge.es import TensorHolder

功能说明

TensorHolder是 Eager-Style 图构建中的张量持有者类,由GraphBuildercreate_*方法(如create_input()create_const_float()等)创建。该类支持运算符重载(+-*/),可通过链式调用设置数据类型、格式和形状。

TensorHolder自动维护对所属GraphBuilder的强引用,确保底层 C++ 资源在TensorHolder存活期间不会被释放。

约束说明

  • 不支持直接实例化TensorHolder对象只能通过GraphBuildercreate_*方法创建,直接调用构造函数将抛出RuntimeError
  • 不可在build_and_reset()后调用 setter 方法:在GraphBuilder.build_and_reset()执行后,调用set_data_type()set_format()set_shape()等 setter 方法将导致错误。
  • 运算要求同一 GraphBuilder:进行张量运算(addsubmuldiv)时,参与运算的两个TensorHolder必须属于同一个GraphBuilder,否则将抛出ValueError

name 属性(property)

获取生产者节点名称。

函数原型

@property def name(self) -> str: ...

参数说明

无参数。

返回值说明

类型说明
str返回生产者节点的名称。

set_data_type 方法

设置张量数据类型。

函数原型

def set_data_type(self, data_type: DataType) -> TensorHolder: ...

参数说明

参数名输入/输出说明
data_type输入数据类型,类型为ge.graph.types.DataType枚举。

返回值说明

类型说明
TensorHolder返回当前TensorHolder对象引用,支持链式调用。

约束说明

  • data_type必须为DataType枚举类型,否则将抛出TypeError

set_format 方法

设置张量数据格式。

函数原型

def set_format(self, format: Format) -> TensorHolder: ...

参数说明

参数名输入/输出说明
format输入数据格式,类型为ge.graph.types.Format枚举。

返回值说明

类型说明
TensorHolder返回当前TensorHolder对象引用,支持链式调用。

约束说明

  • format必须为Format枚举类型,否则将抛出TypeError

set_shape 方法

设置张量形状。

函数原型

def set_shape(self, shape: List[int]) -> TensorHolder: ...

参数说明

参数名输入/输出说明
shape输入形状维度列表,类型为整数列表List[int]

返回值说明

类型说明
TensorHolder返回当前TensorHolder对象引用,支持链式调用。

约束说明

  • shape必须为整数列表,且所有元素必须为int类型,否则将抛出TypeError

add 方法

张量加法运算。

函数原型

def add(self, other: Union[TensorHolder, TensorLike]) -> TensorHolder: ...

参数说明

参数名输入/输出说明
other输入另一个张量,类型为TensorHolderTensorLike(标量/数组等可转换类型)。

返回值说明

类型说明
TensorHolder返回新的TensorHolder对象,表示加法运算的结果。

约束说明

  • otherTensorHolder,必须与当前张量属于同一个GraphBuilder
  • 运算库(libes_math.so或默认生成的库)必须可加载,否则将抛出RuntimeError

sub 方法

张量减法运算。

函数原型

def sub(self, other: Union[TensorHolder, TensorLike]) -> TensorHolder: ...

参数说明

参数名输入/输出说明
other输入另一个张量,类型为TensorHolderTensorLike(标量/数组等可转换类型)。

返回值说明

类型说明
TensorHolder返回新的TensorHolder对象,表示减法运算的结果。

约束说明

  • otherTensorHolder,必须与当前张量属于同一个GraphBuilder
  • 运算库(libes_math.so或默认生成的库)必须可加载,否则将抛出RuntimeError

mul 方法

张量乘法运算。

函数原型

def mul(self, other: Union[TensorHolder, TensorLike]) -> TensorHolder: ...

参数说明

参数名输入/输出说明
other输入另一个张量,类型为TensorHolderTensorLike(标量/数组等可转换类型)。

返回值说明

类型说明
TensorHolder返回新的TensorHolder对象,表示乘法运算的结果。

约束说明

  • otherTensorHolder,必须与当前张量属于同一个GraphBuilder
  • 运算库(libes_math.so或默认生成的库)必须可加载,否则将抛出RuntimeError

div 方法

张量除法运算。

函数原型

def div(self, other: Union[TensorHolder, TensorLike]) -> TensorHolder: ...

参数说明

参数名输入/输出说明
other输入另一个张量,类型为TensorHolderTensorLike(标量/数组等可转换类型)。

返回值说明

类型说明
TensorHolder返回新的TensorHolder对象,表示除法运算的结果。

约束说明

  • otherTensorHolder,必须与当前张量属于同一个GraphBuilder
  • 运算库(libes_math.so或默认生成的库)必须可加载,否则将抛出RuntimeError

运算符重载

TensorHolder支持以下 Python 运算符重载,对应关系如下:

运算符对应方法说明
a + ba.add(b)张量加法
a - ba.sub(b)张量减法
a * ba.mul(b)张量乘法
a / ba.div(b)张量除法

同时支持右操作数运算(__radd____rsub____rmul____rtruediv__),用于处理非TensorHolder类型在左侧的运算。


get_owner_builder 方法

获取所属的GraphBuilder

函数原型

def get_owner_builder(self) -> GraphBuilder: ...

参数说明

无参数。

返回值说明

类型说明
GraphBuilder返回创建该TensorHolderGraphBuilder对象。

【免费下载链接】geGE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch、TensorFlow 前端的友好接入能力,并同时支持 onnx、pb 等主流模型格式的解析与编译。项目地址: https://gitcode.com/cann/ge

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

http://www.rkmt.cn/news/1425386.html

相关文章:

  • 无人机集群分布式模型预测控制技术解析
  • Spring Boot项目实战:手把手教你集成BouncyCastle实现国密SM2加解密与签名
  • 三傻排序———冒泡排序
  • A2UI架构:让AI智能体从“能执行”到“会表达”的进化之路
  • 如何通过GDScript反编译工具从Godot游戏二进制文件中恢复完整项目
  • FModel完全指南:3步掌握虚幻引擎游戏资源提取技术
  • STM32F103C8T6定时器+DMA驱动WS2812B全攻略:从波形分析到彩虹呼吸灯代码实现
  • C161CS双串口通信实现与printf调试方案
  • Kontext-make-person-real未来展望:AI图像真实化技术发展趋势分析
  • 从AI仆人走向AI朋友:价值对齐、反馈循环与友好智能体构建
  • AI时代人机协作指南:未来工作变革与个人技能重塑
  • 情绪分析:从数据到洞察,驱动营销决策的关键技术
  • 告别默认布局:在UE4.27中为你的本地多人游戏打造专属分屏体验(C++/蓝图混合教程)
  • 不止于程序:用Codesys跟踪功能可视化调试你的电子凸轮曲线
  • KasmVNC实战指南:通过浏览器访问远程桌面的完整解决方案
  • 2026年评价高的糖浆原料代工/糖浆原料/果酱糖浆原料用户口碑推荐厂家 - 品牌宣传支持者
  • 2026年知名的铜陵车衣贴膜/铜陵汽车漆面保护贴膜维修中心 - 行业平台推荐
  • LDSC遗传力分析工具架构解析与基因组学应用指南
  • 心理学实验设计新手指南:3步学会用PsychoPy创建专业实验
  • 如何快速上手OpenR1-Qwen-7B?5分钟完成数学推理部署指南
  • 华硕笔记本性能调优新选择:G-Helper轻量级控制工具完全指南
  • AI应用数据安全:大语言模型API调用中的敏感信息泄露风险与防护
  • 信息增益实战:用NumPy一步步拆解决策树在鸢尾花数据集上的特征选择过程
  • 遥感新手避坑指南:叶面积指数(LAI)反演,从数据源选择到结果验证的全流程实操
  • Android下拉刷新终极定制指南:SmartRefreshLayout自定义组件完整教程
  • 快速上手Robo 3T:5分钟掌握跨平台MongoDB管理工具
  • 别再为MATLAB编译C++发愁了!手把手教你用MinGW-w64 8.1.0配置环境(含Win32/Posix、SEH/SJLJ版本选择指南)
  • 别再死磕公式了!用Python的filterpy库5分钟搞定卡尔曼滤波(附完整代码)
  • 工业质检实战:如何用YOLOv5的‘小目标检测层’和‘自适应锚框’提升金属表面划痕检出率?
  • 从英伟达CTO言论看技术价值评估:区块链、加密货币与社会效用的多维思考