---
title: Tensor/Node/Graph
description: "Ascend IR（Ascend Intermediate Representation，昇腾中间表示）是AI处理器专用的抽象数据结构，用于表达计算流程。基于GE图引擎能力，PyTorch、TensorFlow、MindSpore、PaddlePaddle等主流AI框架的算法模型可以统一转换为使用Ascend IR表示的计算图，同时也支持用户自定义构建计算图，后续的编译加速优化均基于该计算图完成。"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/programug/graphdevg/atlasag_25_0085.html
sourcePath: /source/zh/canncommercial/900/programug/graphdevg/atlasag_25_0085.html
indexId: 6a17b34d0f41606c35cf502b29b705c4f07e5eee81d6a2b5a0ef91732b27e9ec70
---
# Tensor/Node/Graph

Ascend IR（Ascend Intermediate Representation，昇腾中间表示）是AI处理器专用的抽象数据结构，用于表达计算流程。基于GE图引擎能力，PyTorch、TensorFlow、MindSpore、PaddlePaddle等主流AI框架的算法模型可以统一转换为使用Ascend IR表示的计算图，同时也支持用户自定义构建计算图，后续的编译加速优化均基于该计算图完成。

图1 使用Ascend IR表示的计算图

Ascend IR主要包括张量（Tensor）、Node（Operator）、Graph三个维度的信息。

#### Tensor

包括Tensor描述及数据两部分，Tensor描述包括了该Tensor的name、dtype、shape、format信息。
**表1 TensorDesc属性说明**

| 属性 | 定义 |
| --- | --- |
| 名称（name） | 用于对Tensor进行索引，不同Tensor的name需要保持唯一。 |
| 形状（shape） | Tensor的形状，例如(10, )或者(1024, 1024)或者(2, 3, 4)等。如形状(3, 4)表示第一维有3个元素，第二维有4个元素，(3, 4)表示一个3行4列的矩阵数组。 形式：(i1, i2, …, in)，其中i1到in均为正整数。 |
| 数据类型（dtype） | Tensor对象的数据类型。 取值范围：float16, float32, int8, int16, int32, uint8, uint16, bfloat16, bool等。 |
| 数据排布格式（format） | 数据的物理排布格式，详细请参见数据排布格式。 |


#### Node

Node（Operator）包括算子的name、type、输入、输出、属性等信息。
**表2 Operator属性说明**

| 属性 | 定义 |
| --- | --- |
| 名称（name） | 算子的名称，用于标识图中的某个算子，同一图中算子的名称需要保持唯一。如下图所示Conv1、Pool1、Conv2都是图中的算子名称，其中Conv1与Conv2算子的类型为Convolution，表示分别做一次卷积运算。 |
| 类型（type） | 网络中每一个算子根据算子类型进行实现的匹配，相同类型的算子的实现逻辑相同。在一个图中同一类型的算子可能存在多个，例如上图中的Conv1算子与Conv2算子的类型都为Convolution。 |
| 输入（input） | 算子的输入Tensor数据。 |
| 输出（output） | 算子的输出Tensor数据。 |
| 属性（Attributes） | 定义算子行为和功能，常见的算子属性包括轴（Axis）、权重（Weight）、偏差（Bias）。 |


#### Graph

Graph包括name、算子列表、输入算子、输出算子等信息。
**表3 Graph属性说明**

| 属性 | 定义 |
| --- | --- |
| 名称（name） | 图的名称，用于标识网络中的某个Graph，同一网络中Graph的名称需要保持唯一。 |
| 算子列表 | 图中所有的节点列表。 |
| 输入算子（input） | 图的输入算子。 |
| 输出算子（output） | 图的输出算子。 |
