https://github.com/GPflow/GPflow
Revision 57d8ab787dbb1b7b555279d38641d8b4db5dda0e authored by st-- on 26 February 2020, 14:09:18 UTC, committed by GitHub on 26 February 2020, 14:09:18 UTC
Historically, there was just a single flat directory full of test modules. This had several negative implications: a) some test files ended up very long, b) it was occasionally hard to find a good place for new tests, c) no separation between unit and integration tests. This PR gives the tests a directory structure that mirrors that of the gpflow package. Where possible, the code in gpflow/submodule/file.py is tested in tests/gpflow/submodule/test_file.py. Integration tests (e.g. notebooks, method equivalence) are now in tests/integration/. Most of this PR is simple file moves, plus some splitting up of tests (particularly for models) according to the new structure. The reference kernel implementations are now unified in tests/gpflow/kernels/reference.py.
1 parent f8ee093
Tip revision: 57d8ab787dbb1b7b555279d38641d8b4db5dda0e authored by st-- on 26 February 2020, 14:09:18 UTC
improve organization of test modules (#1288)
improve organization of test modules (#1288)
Tip revision: 57d8ab7
RELEASE.md
# Release 1.2.0
- Added `SoftMax` likelihood (#799)
- Added likelihoods where expectations are evaluated with Monte Carlo, `MonteCarloLikelihood` (#799)
- GPflow monitor refactoring, check `monitor-tensorboard.ipynb` for details (#792)
- Speedup testing on Travis using utility functions for configuration in notebooks (#789)
- Support Python 3.5.2 in typing checks (Ubuntu 16.04 default python3) (#787)
- Corrected scaling in Students-t likelihood variance (#777)
- Removed jitter before taking the cholesky of the covariance in NatGrad optimizer (#768)
- Added GPflow logger. Created option for setting logger level in `gpflowrc` (#764)
- Fixed bug at `params_as_tensors_for` (#751)
- Fixed GPflow SciPy optimizer to pass options to _actual_ scipy optimizer correctly (#738)
- Improved quadrature for likelihoods. Unified quadrature method introduced - `ndiagquad` (#736), (#747)
- Added support for multi-output GPs, check `multioutput.ipynb` for details (#724)
* Multi-output features
* Multi-output kernels
* Multi-dispatch for conditional
* Multi-dispatch for Kuu and Kuf
- Support Exponential distribution as prior (#717)
- Added notebook to demonstrate advanced usage of GPflow, such as combining GP with Neural Network (#712)
- Minibatch shape is `None` by default to allow dynamic change of data size (#704)
- Epsilon parameter of the Robustmax likelihood is trainable now (#635)
- GPflow model saver (#660)
* Supports native GPflow models and provides an interface for defining custom savers for user's models
* Saver stores GPflow structures and pythonic types as numpy structured arrays and serializes them using HDF5
# Release 1.1
- Added inter-domain inducing features. Inducing points are used by default and are now set with `model.feature.Z`.
# Release 1.0
* Clear and aligned with tree-like structure of GPflow models design.
* GPflow trainable parameters are no longer packed into one TensorFlow variable.
* Integration of bare TensorFlow and Keras models with GPflow became very simple.
* GPflow parameter wraps multiple tensors: unconstained variable, constrained tensor and prior tensor.
* Instantaneous parameter's building into the TensorFlow graph. Once you created an instance of parameter, it creates necessary tensors at default graph immediately.
* New implementation for AutoFlow. `autoflow` decorator is a replacement.
* GPflow optimizers match TensorFlow optimizer names. For e.g. `gpflow.train.GradientDescentOptimizer` mimics `tf.train.GradientDescentOptimizer`. They even has the same instantialization signature.
* GPflow has native support for Scipy optimizers - `gpflow.train.ScipyOptimizer`.
* GPflow has advanced HMC implementation - `gpflow.train.HMC`. It works only within TensorFlow memory scope.
* Tensor conversion decorator and context manager designed for cases when user needs to implicitly convert parameters to TensorFlow tensors: `gpflow.params_as_tensors` and `gpflow.params_as_tensors_for`.
* GPflow parameters and parameterized objects provide convenient methods and properties for building, intializing their tensors. Check `initializables`, `initializable_feeds`, `feeds` and other properties and methods.
* Floating shapes of parameters and dataholders without re-building TensorFlow graph.
# Release 0.5
- bugfix for log_jacobian in transforms
# Release 0.4.1
- Different variants of `gauss_kl_*` are now deprecated in favour of a unified `gauss_kl` implementation
# Release 0.4.0
- Rename python package name to `gpflow`.
- Compile function has external session and graph arguments.
- Tests use Tensorflow TestCase class for proper session managing.
# Release 0.3.8
- Change to LowerTriangular transform interface.
- LowerTriangular transform now used by default in VGP and SVGP
- LowerTriangular transform now used native TensorFlow
- No longer use bespoke GPflow user ops.
# Release 0.3.7
- Improvements to VGP class allow more straightforward optimization
# Release 0.3.6
- Changed ordering of parameters to be alphabetical, to ensure consistency
# Release 0.3.5
- Update to work with TensorFlow 0.12.1.
# 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.
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...