---
title: 简介
description: "节点构建器类，用于构建符合IR规范的图节点，该类提供了链式API来定义节点的IR输入、输出、属性等信息，确保生成的节点符合IR规范要求，属于ES generated API内部调用的类，构图者如果直接基于ES generated API来构图，无需感知这个类，如果要自定义ES API，则需使用此类提供的能力来构建节点。"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/API/ascendgraphapi/atlasgeapi_07_0406.html
sourcePath: /source/zh/canncommercial/900/API/ascendgraphapi/atlasgeapi_07_0406.html
indexId: 82d1f81aeccd00585c0a7aed3b700d778e99312539f01703b52c38ffbeb7b64b72
---
# 简介

节点构建器类，用于构建符合IR规范的图节点，该类提供了链式API来定义节点的IR输入、输出、属性等信息，确保生成的节点符合IR规范要求，属于ES generated API内部调用的类，构图者如果直接基于ES generated API来构图，无需感知这个类，如果要自定义ES API，则需使用此类提供的能力来构建节点。

#### 需要包含的头文件

```
#include "compliant_node_builder.h"
```


#### public成员函数

```
explicit CompliantNodeBuilder(ge::Graph *graph)
~CompliantNodeBuilder()
CompliantNodeBuilder(CompliantNodeBuilder &&) noexcept
CompliantNodeBuilder(const CompliantNodeBuilder &)
CompliantNodeBuilder &OpType(const char_t *type)
CompliantNodeBuilder &IrDefInputs(std::vector<IrInputDef> input_ir_def)
CompliantNodeBuilder &IrDefOutputs(std::vector<IrOutputDef> output_ir_def)
CompliantNodeBuilder &IrDefAttrs(std::vector<IrAttrDef> attr_ir_def)
CompliantNodeBuilder &Name(const char_t *name)
CompliantNodeBuilder &InstanceDynamicInputNum(const char_t *ir_name, int32_t num)
CompliantNodeBuilder &InstanceDynamicOutputNum(const char_t *ir_name, int32_t num)
CompliantNodeBuilder &InstanceOutputDataType(const char_t *name, ge::DataType data_type)
CompliantNodeBuilder &InstanceOutputShape(const char_t *name, const std::vector<int64_t> &shape)
CompliantNodeBuilder &InstanceOutputOriginShape(const char_t *name, const std::vector<int64_t> &shape)
CompliantNodeBuilder &InstanceOutputStorageShape(const char_t *name, const std::vector<int64_t> &shape)
CompliantNodeBuilder &InstanceOutputFormat(const char_t *name, ge::Format format)
CompliantNodeBuilder &InstanceOutputOriginFormat(const char_t *name, ge::Format format)
CompliantNodeBuilder &InstanceOutputStorageFormat(const char_t *name, ge::Format format)
ge::GNode Build() const
```


#### 对外函数

```
AttrValue CreateFrom(T &&t) 
bool ValuesEqual(const T &a, const T &b)
bool ValuesEqual(const std::vector<T> &a, const std::vector<T> &b)
AttrValue CreateFromIfNotEqual(T &&value, typename std::decay<T>::type default_value)
graphStatus AddEdgeAndUpdatePeerDesc(Graph &graph, GNode &src_node, int32_t src_port_index, GNode &dst_node, int32_t dst_port_index)
```


#### 枚举

```
enum IrAttrType  
enum IrInputType 
enum IrOutputType
```


#### 结构体

```
struct IrAttrDef 
struct IrInputDef 
struct IrOutputDef
```


#### 内部类

```
class AnyTypeOperator
```
