https://github.com/GPflow/GPflow
Revision db383233eaf595a04b4eafc9872845e66ba54634 authored by Mark van der Wilk on 23 November 2016, 18:31:25 UTC, committed by James Hensman on 23 November 2016, 18:31:25 UTC
This squash-commit contains a large volume of work by @markvdw and @alexisboukouvalas. I'm keeping all of the commit history here for posterity. Interested viewers can see some discussion on github, under pull request #195. * Initial code for new kernel expectations. - RBF done. - Added another transformation in etransforms.py. * first step to merge gplvm and kernexp approaches * Added kernel expectations of linear, and eKxz for RBF. - NB: Linear still need to be tested better. - Todo: exKxz for linear. * Added multidimensional quadrature in `Kern` base class for kernel expectations. - Replaced monte carlo tests with more reliable quadrature tests. - Added exKxz for `Linear` kernel * testing new ekernels code, starting on active dimensions, further testing needed as well as modifying Bayesian GPLVM code * Linear and Polynomial kernels did not respect active_dims properly in Kdiag. - Added slice call to Linear.Kdiag - Fixed TestSlice to test more kernels. - Fxied TestSlice to have the correct inputdim. * Begin work on sum kernel, smoothing out active_dims for ekernels. * Fixed `input_dim` in `test_kerns.py`. Added assertion. * kernexp quadrature now works with `active_dims`. - exKzx which doesn't work now raises an error from TensorFlow. - Various other assertions. * Better deduction of `input_dim` for `kernels.Combination`. * Small fix of test. * Fixed issue of KzxKxz in Add kernel. Solution checks for diagonal q(X) and performs quadrature on the covariance of KzxKxz if not diagonal. * GPLVM now works with new kernel expectation code. - Added a new DiagMatrix transform. - Removed legacy code. - Modified GPLVM to accept full covariance matrices. * Fixing a small error in DiagMatrix transform. * Added warnings. * Removed etransforms code. BlockTriDiagonalTransform is now only used in tests. * Prevent `TridiagonalBlockRep` from being tested as a `Transform`. * improvements to DiagonalMatrix transform * improved testing of kernel slice * update test to use kernels * `ekernels.RBF` ARD bug fixed. * Increased test coverage. * Increased test coverage. * docstring for gplvm, removed unused variable in ekernels * testing composite kernels in gplvm * Added Prod to `ekernels.py`. * Fixed usage of `tf.gather_nd`, which does not have a gradient in `_slice_cov()`. * add GPLVM notebook, increase testing to include Prod kernels, add documentation stub, fix bibliography * improve GPLVM notebook with working example * Fixed bug that `X_var` in `BayesianGPLVM` gets slightly different values. * Quadrature can be switched off, plus the appropriate checks. * Kernel expectations now accept 2D variances. * Fix to test. * Reworked quadrature code in Add in anticipation of adding exact expectations for certain pairs of kernels. * Added Linear + Add cross terms for overlapping active_dims. * Initial try for extra test for `ekernels.Add` cross terms. * `_slice_cov` now again compatible with numpy arrays. * Requested code reviews.
1 parent 419c43b
Tip revision: db383233eaf595a04b4eafc9872845e66ba54634 authored by Mark van der Wilk on 23 November 2016, 18:31:25 UTC
Kernel expectations (#195)
Kernel expectations (#195)
Tip revision: db38323
RELEASE.md
# Release 0.3.4
- Changes to stop computations all being done on the default graph.
- Update list of GPflow contributors and other small changes to front page.
- Better deduction of `input_dim` for `kernels.Combination`
- Some kernels did not properly respect active dims, now fixed.
- Make sure log jacobian is computed even for fixed variables
# Release 0.3.3
- House keeping changes for paper submission.
# Release 0.3.2
- updated to work with tensorflow 0.11 (release candidate 1 available at time of writing)
- bugfixes in vgp._compile
# Release 0.3.1
- Added configuration file, which controls verbosity and level of numerical jitter
- tf_hacks is deprecated, became tf_wraps (tf_hacks will raise visible deprecation warnings)
- Documentation now at gpflow.readthedocs.io
- Many functions are now contained in tensorflow scopes for easier tensorboad visualisation and profiling
# Release 0.3
- Improvements to the way that parameters for triangular matrices are stored and optimised.
- Automatically generated Apache license headers.
- Ability to track log probabilities.
# Release 0.2
- Significant improvements to the way that data and fixed parameters are handled.
Previously, data and fixed parameters were treated as tensorflow constants.
Now, a new mechanism called `get_feed_dict()` can gather up data and and fixed
parameters and pass them into the graph as placeholders.
- To enable the above, data are now stored in objects called `DataHolder`. To
access values of the data, use the same syntax as parameters:
`print(m.X.value)`
- Models do not need to be recompiled when the data changes.
- Two models, VGP and GPMC, do need to be recompiled if the *shape* of the data changes
- A multi-class likelihood is implemented
# Release 0.1.4
- Updated to work with tensorflow 0.9
- Added a Logistic transform to enable contraining a parameter between two bounds
- Added a Laplace distribution to use as a prior
- Added a periodic kernel
- Several improvements to the AutoFlow mechanism
- added FITC approximation (see comparison notebook)
- improved readability of code according to pep8
- significantly improved the speed of the test suite
- allowed passing of the 'tol' argument to scipy.minimize routine
- added ability to add and multiply MeanFunction objects
- Several new contributors (see README.md)
# Release 0.1.3
- Removed the need for a fork of TensorFlow. Some of our bespoke ops are replaced by equivalent versions.
# Release 0.1.2
- Included the ability to compute the full covaraince matrix at predict time. See `GPModel.predict_f`
- Included the ability to sample from the posterior function values. See `GPModel.predict_f_samples`
- Unified code in conditionals.py: see deprecations in `gp_predict`, etc.
- Added SGPR method (Sparse GP Regression)
# Release 0.1.1
- included the ability to use tensorflow's optimizers as well as the scipy ones
# Release 0.1.0
The initial release of GPflow.
Computing file changes ...