Graph Gaussian process in GPflow #2019
Unanswered
raphael-carpintero
asked this question in
Q&A
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Hello,
I am currently working on Gaussian processes whose inputs are graphs.
Unlike the CGP of vdw2017convgp*, the graph topology is not the same between several inputs. I can have graphs with continuous attributes on the nodes and whose number of vertices and edges vary.
So I would like to create classes inheriting from gpflow.kernels.Kernel whose K function takes as input a list of graph [G_1, ..., G_N] and returns [K(G_i, G_j)]_ij.
The G_i are tuples containing the adjacency list of shape (m_i, 2) and one attribute list of shape (n_i,d) where n_i is the number of vertices, m_i the number of edges and d the number of attributes.
Such a graph cannot be represented as a vector of fixed size since n_i and m_i are not constant.
When I create a model like VGP or GPR, a verification is made about shapes of the input data which forces it to be a tensor/np.ndarray:
@check_shapes(
"data[0]: [N, D]",
"data[1]: [N, P]"
)
Is there any way to bypass these shape controls?
Do you think it is easy to add an overlay to gpflow to define a new kernel and a new model but keep using features like sparse approaches and MOGP?
Thank you in advance for your time.
Raphaël Carpintero Perez
*vdw2017convgp: Convolutional Gaussian Processes, van der Wilk et al., 2017
Beta Was this translation helpful? Give feedback.
All reactions