DimitrisCC / GPflow-Slim

customized GPflow with simple Tensorflow API

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

GPflow-Slim

GPflow-Slim is a package for building Gaussian process models in python, using TensorFlow. It is adapted from GPflow and now contributed by Shengyang Sun and Guodong Zhang.

Compared to GPflow, GPflow-Slim enables simpler Tensorflow-style programming. User can define variables arbitrarily anywhere in the program and apply standard Tensorflow optimizer to optimize the objective.

Install

For installing, please run

python setup.py develop

Examples

Below we show a simple example to use GPflow-Slim and additionally defined variables.

X = tf.constant(np.random.normal(size=[20, 4]))
y = tf.sin(X)

var_ = tf.get_variable('var', initializer=1.)
kern = gpf.kernels.RBF(13, ARD=True) + tf.exp(var_)
m = gpf.models.GPR(X, y, kern=kern)

objective = m.objective
optimizer = tf.train.AdamOptimizer(1e-3)
infer = optimizer.minimize(objective)
with tf.Session() as sess:
    sess.run(infer) 

For more examples, please refer examples as well as Neural Kernel Network.

Citation

To cite this work, please use

@article{sun2018differentiable,
  title={Differentiable Compositional Kernel Learning for Gaussian Processes},
  author={Sun, Shengyang and Zhang, Guodong and Wang, Chaoqi and Zeng, Wenyuan and Li, Jiaman and Grosse, Roger},
  journal={arXiv preprint arXiv:1806.04326},
  year={2018}
}

as well as

@ARTICLE{GPflow2017,
   author = {Matthews, Alexander G. de G. and {van der Wilk}, Mark and Nickson, Tom and
	Fujii, Keisuke. and {Boukouvalas}, Alexis and {Le{\'o}n-Villagr{\'a}}, Pablo and
	Ghahramani, Zoubin and Hensman, James},
    title = "{{GP}flow: A {G}aussian process library using {T}ensor{F}low}",
  journal = {Journal of Machine Learning Research},
  year    = {2017},
  month = {apr},
  volume  = {18},
  number  = {40},
  pages   = {1-6},
  url     = {http://jmlr.org/papers/v18/16-537.html}
}

Acknowledgement

GPflow-Slim is adapted from GPflow.

About

customized GPflow with simple Tensorflow API

License:Apache License 2.0


Languages

Language:Python 100.0%