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

CANN/GE TensorHolder API文档

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/1120826/

相关文章:

  • 如何快速上手hashdeep:从安装到基础使用的完整指南
  • 如何高效使用raylib游戏开发库:7个实战技巧与完整指南
  • AI文生图模型为何画不好中文?扩散模型原理与优化方案详解
  • Spotube插件系统终极指南:3种简单方法打造你的专属音乐体验
  • 「实战应用」如何用图表控件LightningChart .NET在WPF中制作表格?(二)
  • 计算机视觉入门实战:从图像识别到目标检测与分割的PyTorch完整指南
  • cuda06- 流 并发
  • 3个技巧让你在Minecraft中实现跨平台地图编辑:Amulet-Map-Editor完全指南
  • Mermaid在线编辑器:为什么这是你告别复杂绘图软件的最佳选择?
  • 15分钟极速部署:TrueNAS Scale上搭建高性能Minecraft Forge服务器全指南
  • Mermaid在线编辑器完整指南:5个实用技巧制作专业图表
  • Qwable-9B-Claude-Fable-5-StraTA-i1-GGUF完全解析:革命性量化模型如何重塑AI部署效率
  • Java开发入门:从零开始构建第一个RESTAPI
  • 如何轻松永久保存微信聊天记录?WeChatMsg完整数据导出与智能分析完全指南
  • gsplat完整指南:如何快速掌握CUDA加速的高斯溅射技术
  • Claude Opus 4.7深度评测:上下文稳定性与推理深度退化实测
  • 百度网盘macOS插件破解指南:3步解锁SVIP高速下载功能
  • oXygen XML Editor—— XML编辑与结构化内容管理的优秀工具
  • 终极PDF解析方案:AnythingLLM如何让复杂文档「开口说话」
  • 如何用85%准确率的AI模型预测股票走势?Kronos金融时间序列预测模型深度解析
  • HsMod:炉石传说终极增强插件,55个功能让游戏体验全面升级
  • 如何快速集成多语言支持:CozoDB嵌入式部署完整指南
  • 终极懒猫助手:3步打造整洁如新的浏览器书签库
  • 如何快速融入已有一期的项目并参与二期开发
  • DevExpress WinForms中文教程:Grid View - 如何实现识别行操作?(一)
  • Faster-Whisper终极指南:4倍速本地语音识别技术深度解析
  • Umi-OCR Windows 7环境部署与性能调优技术指南
  • GPT-6寂寞感背后:大模型落地的四重错位与务实破局路径
  • 双向全桥LLC谐振变换器在新能源并网中的应用
  • 从零到专业:3步掌握Lean量化交易引擎,打造你的智能交易系统