# Node
## 概述
算子节点结构体。
nodeAttr参数是一段被序列化的数据,并调用OHOS的hdi的反序列化接口才能得到具体参数。大致流程如下:
1. 定义算子参数的结构体,OP op{},其中OP可以被替换为[NodeAttrTypes.idl](_node_attr_types_8idl.md)的算子参数结构体,op是变量名。
2. 申明MessageParcle对象,用存储反序列化的数据,OHOS::MessageParcel data。
3. 将nodeAttr写入data中,data.WriteBuffer(nodeAttr.data(),nodeAttr.size())。
4. 将data中的数据反序列化到op结构体中,(void)OPBlockUnmarshalling(data, op)。
然后就可以在op中查看具体的算子的参数值。
例如: 某一个算子的 nodeType为NODE_TYPE_FULL_CONNECTION,那么它所对应的算子参数结构体应该为[FullConnection](_full_connection.md), 则该算子具有四个参数:hasBias,useAxis,axis和activationType。
则按照如下流程调用:
1. [FullConnection](_full_connection.md) full_connection{};
2. OHOS::MessageParcel data;
3. data.WriteBuffer(nodeAttr.data(),nodeAttr.size());
4. (void)FullConnectionBlockUnmarshalling(data, full_connection);
至此FullConnection的四个参数就写入了full_connection中。
**Since:**
3.2
**Version:**
1.0
**相关模块:**
[NNRt](_n_n_rt.md)
## 汇总
### Public 属性
| 名称 | 描述 |
| -------- | -------- |
| [name](#name) | String
算子节点的名称 。 |
| [nodeType](#nodetype) | enum [NodeType](_n_n_rt.md#nodetype)
算子节点的类型,详情请参考:[NodeType](_n_n_rt.md#nodetype)。 |
| [nodeAttr](#nodeattr) | byte[]
算子节点的参数对应的序列化数组。 |
| [inputIndex](#inputindex) | unsigned int[]
算子节点的输入节点下标。 |
| [outputIndex](#outputindex) | unsigned int[]
算子节点的输出节点下标。 |
| [quantType](#quanttype) | enum [QuantType](_n_n_rt.md#quanttype)
算子节点的量化参数,详情请参考:[QuantType](_n_n_rt.md#quanttype)。 |
## 类成员变量说明
### inputIndex
```
unsigned int [] Node::inputIndex
```
**描述:**
算子节点的输入节点下标。
### name
```
String Node::name
```
**描述:**
算子节点的名称 。
### nodeAttr
```
byte [] Node::nodeAttr
```
**描述:**
算子节点的参数对应的序列化数组。
### nodeType
```
enum NodeType Node::nodeType
```
**描述:**
算子节点的类型,详情请参考:[NodeType](_n_n_rt.md#nodetype)。
### outputIndex
```
unsigned int [] Node::outputIndex
```
**描述:**
算子节点的输出节点下标。
### quantType
```
enum QuantType Node::quantType
```
**描述:**
算子节点的量化参数,详情请参考:[QuantType](_n_n_rt.md#quanttype)。