-
Notifications
You must be signed in to change notification settings - Fork 18
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implementation of kernels on the edge space of graphs or simplicial complexes #139
base: main
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi @cookbook-ms this looks cool! I've only had a brief skim over the code and left a couple of minor comments. Didn't check the maths though.
Sorry for the late updates. In this update, we have the following changes:
Please have a look at your convenience. Thanks :) |
Thanks a lot, Maosheng! I plan to take a look in a week or two, after the deadline streak has passed. |
Hi @cookbook-ms, Thank you so much for implementing the Hodge compositional kernel! I remember in the past we discussed a somewhat different design, which can hopefully relief the confusion of edges being implicitly oriented and which could better fit into the existing structure of the library. Please tell me if you would be willing to implement (perhaps some parts of) this proposal. What you won't do, I'll get around to doing myself in some time. I'm copying a proposal from one of my old emails below. Well, rather a somewhat more detailed version of it.
In addition to the above classes, add a documentation page for theory of Hodge-compositional kernels on graphs/simplicial complexes. Feel free to ping me if you want to discuss this more. |
Hi Slava, please check my reply per item.
'MaternKarhunenLoeveKernel_HodgeCompositionEdge' should be implemented as discussed already, which takes three sets of parameters as inputs.
I planned to do that after you pass the above.
|
I see. I want to finish #149 asap, so, if that's okay, I'll take another look after you do
|
Now it samples random edges returning both the edges as pairs of nodes, also their indices. But it is much easier to use indices of edges to obtain the eigenvectors at the corresponding locations, thus computing the kernels. For this, I included a method to obtain the indices of given input edges. |
This pull requests an implementation of kernels on the Edge space of a graph or a simplicial 2-complex.
I implemented the following:
geometric_kernels/spaces/graph_edge.py
, which allows backends based on numpy, pytorch and jax.Note that: