Graph
【免费下载链接】geGE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch、TensorFlow 前端的友好接入能力,并同时支持 onnx、pb 等主流模型格式的解析与编译。项目地址: https://gitcode.com/cann/ge
Product Support Status
| Product | Support Status |
|---|---|
| Atlas A3 Training Series Products/Atlas A3 Inference Series Products | √ |
| Atlas A2 Training Series Products/Atlas A2 Inference Series Products | √ |
Module Import
from ge.graph import GraphFunctionality Description
Graph class is the core graph operation class in GE Python interface, used to manage computation graph construction, query and modification. Mainly provides the following capabilities:
- Graph Lifecycle Management: Create, destroy computation graphs, supports graph serialization and deserialization.
- Node Query: Get all nodes or direct nodes in graph, find nodes by name.
- Attribute Management: Get and set graph-level custom attributes.
- Edge Operations: Add/remove data edges and control edges, build data dependencies and control dependencies between nodes.
- Subgraph Management: Add, query, delete subgraphs, supports hierarchical graph structure.
- Serialization and Persistence: Export graph to file (dump_to_file) or string (dump_to_stream), supports saving and loading AIR format models.
Function Prototypes
__init__
def __init__(self, name: Optional[str] = "graph") -> NoneCreates a Graph object.
name(property)
@property def name(self) -> strGets graph name.
get_all_nodes
def get_all_nodes(self) -> List[Node]Gets all nodes in graph, including nodes in subgraphs.
get_direct_nodes
def get_direct_nodes(self) -> List[Node]Gets direct nodes in current graph, not including nodes in subgraphs.
get_attr
def get_attr(self, key: str) -> AnyGets specified attribute value of graph.
set_attr
def set_attr(self, key: str, value: Any) -> NoneSets specified attribute of graph.
dump_to_file
def dump_to_file(self, format: DumpFormat = DumpFormat.kReadable, suffix: str = "") -> NoneExports graph to file.
dump_to_stream
def dump_to_stream(self, format: DumpFormat = DumpFormat.kReadable) -> strExports graph to string.
save_to_air
def save_to_air(self, file_path: str) -> NoneSaves graph as AIR format file.###load_from_air
def load_from_air(self, file_path: str) -> NoneLoads graph from AIR format file.
remove_node
def remove_node(self, node: Node) -> NoneRemoves specified node from graph.
remove_edge
def remove_edge(self, src_node: Node, src_port_index: int, dst_node: Node, dst_port_index: int) -> NoneRemoves specified edge.
add_data_edge
def add_data_edge(self, src_node: Node, src_port_index: int, dst_node: Node, dst_port_index: int) -> NoneAdds data edge.
add_control_edge
def add_control_edge(self, src_node: Node, dst_node: Node) -> NoneAdds control edge.
find_node_by_name
def find_node_by_name(self, name: str) -> NodeFinds node by node name.
get_all_subgraphs
def get_all_subgraphs(self) -> List[Graph]Gets all subgraphs in graph.
get_subgraph
def get_subgraph(self, name: str) -> Optional[Graph]Gets specified subgraph by name.
add_subgraph
def add_subgraph(self, subgraph: Graph) -> NoneAdds subgraph to graph.
remove_subgraph
def remove_subgraph(self, name: str) -> NoneRemoves subgraph by name.
Parameter Description
__init__
| Parameter Name | Type | Required | Default Value | Description |
|---|---|---|---|---|
| name | Optional[str] | No | "graph" | Graph name, must be string type. |
name
No parameters (read-only property).
get_all_nodes
No parameters.
get_direct_nodes
No parameters.
get_attr
| Parameter Name | Type | Required | Default Value | Description |
|---|---|---|---|---|
| key | str | Yes | - | Attribute name, must be string type. |
set_attr
| Parameter Name | Type | Required | Default Value | Description |
|---|---|---|---|---|
| key | str | Yes | - | Attribute name, must be string type. |
| value | Any | Yes | - | Attribute value, supports multiple data types. |
dump_to_file
| Parameter Name | Type | Required | Default Value | Description |
|---|---|---|---|---|
| format | DumpFormat | No | DumpFormat.kReadable | Export file format, valid values: DumpFormat.kOnnx、DumpFormat.kTxt、DumpFormat.kReadable. |
| suffix | str | No | "" | Filename suffix, appended to end of generated filename. For example, when suffix is "xxxx", filename format isge_<format>_00000_<graph_name>_0_xxxx.<ext>. |
DumpFormat enum value description:
| Enum Value | Numeric Value | Description |
|---|---|---|
| DumpFormat.kOnnx | 0 | ONNX text format (pbtxt), contains only graph structure, no weight data or other attributes. |
| DumpFormat.kTxt | 1 | Text format. |
| DumpFormat.kReadable | 2 | Readable format (default). |
dump_to_stream
| Parameter Name | Type | Required | Default Value | Description |
|---|---|---|---|---|
| format | DumpFormat | No | DumpFormat.kReadable | Export string format, valid values: DumpFormat.kOnnx、DumpFormat.kTxt、DumpFormat.kReadable. |
save_to_air
| Parameter Name | Type | Required | Default Value | Description |
|---|---|---|---|---|
| file_path | str | Yes | - | AIR file save path, must be string type. |
load_from_air
| Parameter Name | Type | Required | Default Value | Description |
|---|---|---|---|---|
| file_path | str | Yes | - | AIR file load path, must be string type. |
remove_node
| Parameter Name | Type | Required | Default Value | Description |
|---|---|---|---|---|
| node | Node | Yes | - | Node object to be removed, must be Node type. |
remove_edge
| Parameter Name | Type | Required | Default Value | Description |
|---|---|---|---|---|
| src_node | Node | Yes | - | Edge source node, must be Node type. |
| src_port_index | int | Yes | - | Source node output port index. When removing control edge, should be set to -1. |
| dst_node | Node | Yes | - | Edge target node, must be Node type. |
| dst_port_index | int | Yes | - | Target node input port index. When removing control edge, should be set to -1. |
add_data_edge
| Parameter Name | Type | Required | Default Value | Description |
|---|---|---|---|---|
| src_node | Node | Yes | - | Data edge source node, must be Node type. |
| src_port_index | int | Yes | - | Source node output port index, must be integer. |
| dst_node | Node | Yes | - | Data edge target node, must be Node type. |
| dst_port_index | int | Yes | - | Target node input port index, must be integer. |
add_control_edge
| Parameter Name | Type | Required | Default Value | Description |
|---|---|---|---|---|
| src_node | Node | Yes | - | Control edge source node, must be Node type. |
| dst_node | Node | Yes | - | Control edge target node, must be Node type. |
find_node_by_name
| Parameter Name | Type | Required | Default Value | Description |
|---|---|---|---|---|
| name | str | Yes | - | Node name, must be string type. |
get_all_subgraphs
No parameters.
get_subgraph
| Parameter Name | Type | Required | Default Value | Description |
|---|---|---|---|---|
| name | str | Yes | - | Subgraph name, must be string type. |
add_subgraph
| Parameter Name | Type | Required | Default Value | Description | |
|---|---|---|---|---|---|
| subgraph | Graph | Yes | - | Subgraph object to be added, must be Graph type. | ###remove_subgraph |
| Parameter Name | Type | Required | Default Value | Description |
|---|---|---|---|---|
| name | str | Yes | - | Subgraph name to be removed, must be string type. |
Return Value Description
| Method | Return Type | Description |
|---|---|---|
__init__ | None | No return value. Returns Graph object on successful creation; throws exception on failure. |
name | str | Returns graph name string. |
get_all_nodes | List[Node] | Returns list of all nodes in graph (including nodes in subgraphs). Returns empty list if graph is empty. |
get_direct_nodes | List[Node] | Returns list of direct nodes in current graph (excluding nodes in subgraphs). Returns empty list if graph is empty. |
get_attr | Any | Returns attribute value corresponding to specified attribute name. |
set_attr | None | No return value. Throws exception on failure. |
dump_to_file | None | No return value. Throws exception on export failure. |
dump_to_stream | str | Returns string representation of graph. |
save_to_air | None | No return value. Throws exception on save failure. |
load_from_air | None | No return value. Throws exception on load failure. |
remove_node | None | No return value. Throws exception on removal failure. |
remove_edge | None | No return value. Throws exception on removal failure. |
add_data_edge | None | No return value. Throws exception on addition failure. |
add_control_edge | None | No return value. Throws exception on addition failure. |
find_node_by_name | Node | Returns found node object. Throws exception if not found. |
get_all_subgraphs | List[Graph] | Returns list of all subgraphs. Returns empty list if no subgraphs exist. |
get_subgraph | Optional[Graph] | Returns subgraph object with specified name. Returns None if not found. |
add_subgraph | None | No return value. Throws exception on addition failure. |
remove_subgraph | None | No return value. Throws exception on removal failure. |
Constraint Description
- Ownership Model: Graph objects have two ownership states. By default, Python side manages C++ resource lifecycle. When Graph is passed as subgraph parameter to operator (like If、While、Case), ownership automatically transfers to C++ side to avoid double free issues.
- No Copy: Graph class does not support copy operations (both shallow copy and deep copy are not supported), calling
copyordeepcopywill throw RuntimeError. - Subgraph Name Uniqueness: When calling
add_subgraphto add subgraph, subgraph name must be unique in parent graph. If name already exists, operation will fail and throw exception. - Edge Port Index: When calling
remove_edgeto remove control edge, bothsrc_port_indexanddst_port_indexshould be set to -1. When removing data edge, port index must match the actual connected port. - dump_to_file Output Limitation: When exporting with DumpFormat.kOnnx format, pbtxt file only contains graph structure information, no weight data or other attributes.
- Type Validation: All method parameters undergo type validation, throws TypeError on type mismatch; throws RuntimeError on operation failure.
- Node Lookup:
find_node_by_namethrows RuntimeError when specified name node is not found, instead of returning None. Need to confirm node exists before use.
【免费下载链接】geGE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch、TensorFlow 前端的友好接入能力,并同时支持 onnx、pb 等主流模型格式的解析与编译。项目地址: https://gitcode.com/cann/ge
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考