Hello there friends from Keops,
First at all, thanks a lot for putting this nice library available to everyone.
I am trying to use pykeops to re-implement the RBF interpolation function available in scipy with a local neighborhood support.
After reading a bit through the documentation of keops, I see that I can nicely solve linear systems by assembling the local kernel function associated to the RBF interpolation.
However, if I try to stick to the fomulation given in the scipy documentation, for each neighborhood, I need to solve the following linear system:
$$(K(y,y) + \lambda I)a + P(y)b = d $$
$$P(y)^Ta = 0 $$
in this case $K(y,y)$ falls nicely within what I think can be done with keops. However, I am not sure if there would be support for assembling the full block linear system in this case.
I am thinking of using a torch.nn.Module which can serve as some sort of LinearOperator and pass this to an iterative solver available in torch, but here is where I am not really sure if this would work.
At the end, my goal is to avoid realizing the full dense matrix associated to $K(y,y$ If I try to solve this system via the standard torch.linalg.solve, then I guess using the symbolic definition of $K(y,y)$ looses its original purpose and value, isnt it?
Maybe you have some recommendations/suggestions on where to look/refer to to solve this implementation.
Thanks for the feedback.
Hello there friends from Keops,
First at all, thanks a lot for putting this nice library available to everyone.
I am trying to use pykeops to re-implement the RBF interpolation function available in scipy with a local neighborhood support.
After reading a bit through the documentation of keops, I see that I can nicely solve linear systems by assembling the local kernel function associated to the RBF interpolation.
However, if I try to stick to the fomulation given in the scipy documentation, for each neighborhood, I need to solve the following linear system:
in this case$K(y,y)$ falls nicely within what I think can be done with keops. However, I am not sure if there would be support for assembling the full block linear system in this case.
I am thinking of using a
torch.nn.Modulewhich can serve as some sort of LinearOperator and pass this to an iterative solver available in torch, but here is where I am not really sure if this would work.At the end, my goal is to avoid realizing the full dense matrix associated to$K(y,y$ If I try to solve this system via the standard $K(y,y)$ looses its original purpose and value, isnt it?
torch.linalg.solve, then I guess using the symbolic definition ofMaybe you have some recommendations/suggestions on where to look/refer to to solve this implementation.
Thanks for the feedback.