pgl.heter_graph_wrapper module: Heterogenous Graph data holders for Paddle GNN.¶
This package provides interface to help building static computational graph for PaddlePaddle.
-
class
pgl.heter_graph_wrapper.HeterGraphWrapper(name, edge_types, node_feat={}, edge_feat={}, **kwargs)[source]¶ Bases:
objectImplement a heterogeneous graph wrapper that creates a graph data holders that attributes and features in the heterogeneous graph. And we provide interface
to_feedto help convertingGraphdata intofeed_dict.- Parameters
name – The heterogeneous graph data prefix
node_feat – A dict of list of tuples that decribe the details of node feature tenosr. Each tuple mush be (name, shape, dtype) and the first dimension of the shape must be set unknown (-1 or None) or we can easily use
HeterGraph.node_feat_info()to get the node_feat settings.edge_feat – A dict of list of tuples that decribe the details of edge feature tenosr. Each tuple mush be (name, shape, dtype) and the first dimension of the shape must be set unknown (-1 or None) or we can easily use
HeterGraph.edge_feat_info()to get the edge_feat settings.
Examples
import paddle.fluid as fluid import numpy as np from pgl import heter_graph from pgl import heter_graph_wrapper num_nodes = 4 node_types = [(0, 'user'), (1, 'item'), (2, 'item'), (3, 'user')] edges = { 'edges_type1': [(0,1), (3,2)], 'edges_type2': [(1,2), (3,1)], } node_feat = {'feature': np.random.randn(4, 16)} edges_feat = { 'edges_type1': {'h': np.random.randn(2, 16)}, 'edges_type2': {'h': np.random.randn(2, 16)}, } g = heter_graph.HeterGraph( num_nodes=num_nodes, edges=edges, node_types=node_types, node_feat=node_feat, edge_feat=edges_feat) gw = heter_graph_wrapper.HeterGraphWrapper( name='heter_graph', edge_types = g.edge_types_info(), node_feat=g.node_feat_info(), edge_feat=g.edge_feat_info())
-
to_feed(heterGraph, edge_types_list='__ALL__')[source]¶ Convert the graph into feed_dict.
This function helps to convert graph data into feed dict for
fluid.Excecutorto run the model.- Parameters
heterGraph – the
HeterGraphdata objectedge_types_list – the edge types list to be fed
- Returns
A dictinary contains data holder names and its coresponding data.