构建图(FlowGraph)
功能介绍
用户使用创建好的FlowData和FlowNode,创建一个FlowGraph实例,并在FlowGraph中设置输入、输出,从而完成Graph构建。
定义节点
- 包含的模块。
1
import dataflow as df
- 系统初始化,申请资源。
1 2 3 4 5 6 7 8
# dataflow 初始化参数按需设置 options = { "ge.exec.deviceId":"0", "ge.exec.logicalDeviceClusterDeployMode":"SINGLE", "ge.exec.logicalDeviceId":"[0:0]", "ge.socVersion": "AscendXXX", # 必须设置的参数 } df.init(options)
- 定义节点,支持如下两种类型。
- FlowData
1 2 3
# 定义输入 data0 = df.FlowData() data1 = df.FlowData()
- FlowNode
1
flow_node0 = df.FlowNode(input_num=2, output_num=1)
图中的data名称和node名称必须唯一。
- FlowData
- 定义PP实例并添加在flownode中。
- GraphProcessPoint
1 2 3
pp1 = df.GraphProcessPoint(df.Framework.TENSORFLOW, "./add.pb", load_params={"input_data_names":"Placeholder,Placeholder_1"},compile_config_path='config/add_graph_config.json') flow_node0 = df.FlowNode(input_num=2, output_num=1) flow_node0.add_process_point(pp1)
- FuncProcessPoint
1 2 3
pp0 = df.FuncProcessPoint(compile_config_path='config/add_func_config.json', name="func_pp") flow_node0 = df.FlowNode(input_num=2, output_num=1) flow_node0.add_process_point(pp0)
- GraphProcessPoint
节点间的连接边表达
节点之间的连边为数据边。数据边用于指定节点的输入。数据边表达如下。
上图的示例代码和注释如下。
1 2 3 4 5 6 7 8 9 10 |
# 定义输入 data0 = df.FlowData() data1 = df.FlowData() flow_node0 = df.FlowNode(input_num=2, output_num=1) flow_node1 = df.FlowNode(input_num=1, output_num=1) flow_node2 = df.FlowNode(input_num=1, output_num=1) # 构建连边关系 flow_node0_out = flow_node0(data0, data1) flow_node1_out = flow_node1(flow_node0_out) flow_node2_out = flow_node2(flow_node0_out) |
父主题: 构建FlowGraph