I printed the graph before conversion to heterograph and seems like node and edge attributes are missing.
Here’s the DGLGraph
DGLGraph(num_nodes=2238, num_edges=7264,
ndata_schemes={‘node_attributes’: Scheme(shape=(64,), dtype=torch.float64)}
edata_schemes={‘edge_attributes’: Scheme(shape=(64,), dtype=torch.float64)})
And here’s the graph after conversion to Heterograph
Graph(num_nodes=2238, num_edges=7264,
ndata_schemes={}
edata_schemes={})
I fixed this ndata_schemes problem.
Is the following conversion from DGLGraph to DGLHeterograph erroneous?
subgraph1, feats, labels1 = data1
print(subgraph1)
nxg = subgraph1.to_networkx(node_attrs=[‘node_attributes’], edge_attrs=[‘edge_attributes’])
subgraph = dgl.graph(nxg)
subgraph.ndata[‘node_attributes’] = feats
subgraph.edata[‘edge_attributes’] = subgraph1.edata[‘edge_attributes’]
print(subgraph)
Now the output of converted graph looks like
Graph(num_nodes=2238, num_edges=7264,
ndata_schemes={‘node_attributes’: Scheme(shape=(64,), dtype=torch.float64)}
edata_schemes={‘edge_attributes’: Scheme(shape=(64,), dtype=torch.float64)})
However, after all this, I still get the fc_src error
AttributeError: ‘GATConv’ object has no attribute ‘fc_src’