https://github.com/ssydasheng/gpflow-slim
customized GPflow with simple Tensorflow API
https://github.com/ssydasheng/gpflow-slim
gaussian-processes machine-learning
Last synced: 10 months ago
JSON representation
customized GPflow with simple Tensorflow API
- Host: GitHub
- URL: https://github.com/ssydasheng/gpflow-slim
- Owner: ssydasheng
- License: apache-2.0
- Created: 2018-06-23T04:50:51.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2019-08-07T19:08:15.000Z (almost 7 years ago)
- Last Synced: 2025-04-06T04:41:21.362Z (about 1 year ago)
- Topics: gaussian-processes, machine-learning
- Language: Python
- Homepage:
- Size: 131 KB
- Stars: 17
- Watchers: 4
- Forks: 9
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# GPflow-Slim
GPflow-Slim is a package for building Gaussian process models in python, using TensorFlow. It is adapted from
[GPflow](https://github.com/GPflow/GPflow) and now contributed by [Shengyang Sun](https://github.com/ssydasheng/Neural-Kernel-Network/)
and [Guodong Zhang](https://github.com/gd-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](./examples) as well as
[Neural Kernel Network](https://github.com/ssydasheng/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](https://github.com/GPflow/GPflow).