GPflow / GPflow

Gaussian processes in TensorFlow
Apache License 2.0
1.85k stars 434 forks source link

Kronecker SVGP #93

Closed c0g closed 6 years ago

c0g commented 8 years ago

Opening this here to get thoughts on the best design for integrating Blitzkriging into GPflow - I have the tensorflow ops in place to get it all working but would appreciate the maintainers thoughts on how to structure the code.

In the short term I think I will implement the functionality I need based after the functions in svgp.py - for example, I'd make a set of new KL divergence functions with the calling convention of kullback_leiblers.gauss_kl(...).

Do you think it would be better to integrate the kronecker approximation into SVGP directly, or as a separate class? I'm tending towards a separate class to avoid multiple levels of if statements but I'm receptive to other ideas.

Am I correct in thinking that if I make a variable a Param it will get optimised automatically?

jameshensman commented 8 years ago

1) Yep, a separate class most definitely.

2) correct :)

3) We may have to think about where to put this. The namespace is getting a bit cluttered, so we may end up having a models module (with GPR, VGP, SVGP, etc) and a contrib module. For things like Kronecker structures, GPLVMs, etc. @alexggmatthews , any thoughts?

alexggmatthews commented 8 years ago

@c0g Great to hear from you. Sorry for the slow reply on this I will give @jameshensman a ring to discuss it tomorrow.

c0g commented 8 years ago

No worries Alex - my ping is currently a week or two, so no hurries. Clearing out my backlog though.