Batch inner product decoder for VGAE
See original GitHub issueHi,
Do you guys have any idea on how to implement an inner product decoder for architectures such as VGAE (Eq. 2) using mini-batches in torch_geometric
?
Thank you!
Issue Analytics
- State:
- Created 5 years ago
- Comments:11 (6 by maintainers)
Top Results From Across the Web
Batch inner product decoder for VGAE · Issue #17 - GitHub
Hi, Do you guys have any idea on how to implement an inner product decoder for architectures such as VGAE (Eq. 2) using...
Read more >Source code for torch_geometric.nn.models.autoencoder
Module): r"""The inner product decoder from the `"Variational Graph ... [docs]class VGAE(GAE): r"""The Variational Graph Auto-Encoder model from the ...
Read more >Effective Decoding in Graph Auto-Encoder Using Triadic ...
However, the decoder is relatively primitive, and prediction of a link is based simply on the inner product between the latent representations of...
Read more >Variational Graph Auto-Encoders | DeepAI
11/21/16 - We introduce the variational graph auto-encoder (VGAE), ... using a graph convolutional network (GCN) encoder and a simple inner product decoder....
Read more >Rethinking Graph Auto-Encoder Models for Attributed ... - arXiv
Another example is GMM-VGAE (Variational Graph Auto-. Encoder with Gaussian Mixture ... In another simplification, we use the inner product for measuring.
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
Thank you for your reply, @rusty1s !
After a few changes in your code, it was possible to make it. Here’s what worked for me:
I couldn’t make the line
torch.matmul(assignment, assignment.t())
work for sparse matrices. It returned the following error:RuntimeError: Sparse tensors do not have strides.
I suppose this way is not the optimal, since performing dense matrix operations instead of sparse ones will take more time.
If I‘m not mistaken, masking could be achieved by:
You can then train against your densified input graph. However, this involves computing and comparing two
N x N
dense matrices, but this is more a problem of VGAE than with the proposed approach.