当前位置: 首页 > 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.jsqmd.com/news/914076/

相关文章:

  • 无人机集群分布式模型预测控制技术解析
  • Spring Boot项目实战:手把手教你集成BouncyCastle实现国密SM2加解密与签名
  • 理性看待AI文本生成:技术原理、风险边界与协同实践
  • 三傻排序———冒泡排序
  • 别再乱调了!Unity LayoutElement三兄弟(Min/Preferred/Flexible)的保姆级使用手册
  • 从单卡到千卡:聊聊Megatron-LM里那些‘反直觉’的并行策略选择与硬件配置玄学
  • 如何通过GDScript反编译工具从Godot游戏二进制文件中恢复完整项目
  • AI商业应用实战:从巨头案例到企业落地路线图
  • HVV期间,红队最爱打的漏洞Top 10:从告警日志看实战攻击手法(附CVE编号)
  • bloom-3b-conversational配置详解:从config.json到generation_config的完整设置指南
  • A2UI架构:让AI智能体从“能执行”到“会表达”的进化之路
  • 如何优化Qwen2.5-14B-Instruct-GPTQ-Int8内存占用:3种部署策略对比
  • AI时代职场变革:从技能重塑到人机共生的未来工作指南
  • 避坑指南:UE与Omniverse USD文件Live-Sync实战,从环境配置到Session管理的完整流程
  • FModel完全指南:3步掌握虚幻引擎游戏资源提取技术
  • 如何在5分钟内开始使用Qwen2-7B-Instruct-embed-base-openmind生成文本嵌入
  • Fillinger终极指南:Adobe Illustrator智能填充插件完整教程
  • STM32F103C8T6定时器+DMA驱动WS2812B全攻略:从波形分析到彩虹呼吸灯代码实现
  • 免费RNA结构预测终极指南:ViennaRNA快速入门与实战技巧
  • 5个实用技巧:如何高效使用猫抓浏览器资源嗅探扩展
  • Kontext-make-person-real未来展望:AI图像真实化技术发展趋势分析
  • da-ner-base模型训练数据揭秘:DaNE数据集完整指南 [特殊字符]
  • C161CS双串口通信实现与printf调试方案
  • 从AI仆人走向AI朋友:价值对齐、反馈循环与友好智能体构建
  • AI时代人机协作指南:未来工作变革与个人技能重塑
  • Guanaco-3B-Uncensored-v2高级部署教程:NPU与CPU环境下的优化配置方案
  • 深度学习篇---指纹识别的发展历程与代表技术
  • 如何用MAA明日方舟助手实现游戏日常全自动化?新手配置与效率革命指南
  • 情绪分析:从数据到洞察,驱动营销决策的关键技术
  • 告别熬夜调格式!okbiye 论文排版功能实测:一键匹配 5000 + 院校模板