CANN/ge TensorHolder文档
2026/5/30 4:41:26 网站建设 项目流程

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),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询