Open othmanelhoufi opened 2 years ago
The current GAE
module does not support heterogeneous graphs. Please try
model = GCNEncoder(...)
model = to_hetero(model)
def train(...):
z_dict = model.encode(data.x_dict, data.edge_index_dict)
pos_edge_label_index = data['edge_type_to_predict'].edge_index
pos_edge_label = torch.ones(pos_edge_label_index.size(1))
neg_edge_label_index = utills.negative_sampling(...)
neg_edge_label = torch.ones(neg_edge_label_index.size(1))
edge_label_index = torch.cat([pos_edge_label_index, neg_edge_label_index], dim=1)
edge_label = torch.cat([pos_edge_label, neg_edge_label], dim=0)
z_src = z_dict['src_node_type'][edge_label_index[0]]
z_dst = z_dict['dst_node_type'][edge_label_index[1]]
recon = (z_src * z_dst).sum(dim=-1)
loss = F.bce_with_logits(recon, edge_label)
🐛 Describe the bug
After several failed attempts to create a Heterogeneous Graph AutoEncoder It's time to ask for help.
Here is a sample of my Dataset:
I tried to follow these two tutorials in the PyTorch-Geometric documentation:
And here is what I wrote:
FYI the error I get is: NotImplementedError: Module [GAE] is missing the required "forward" function
But when I execute the example set by PyTorch-Geometric on Github it works just fine. So I'm guessing that GAE is not working well with my Heterogeneous Graph.
Environment
conda
,pip
, source): pip