* multiplied RBF kernels can now be used with gradient observations
* standard periodic kernels can now be used with gradient observations
* predictive gradients (derivatives of posterior means and variances) can now be calculated when using gradient observations
* simplified and commented RBF & StdP kernel derivatives
* updated kernel slicing and commented prod kernel derivatives
* removed caching from stdp kern, as it breaks optimization for some reason
* fixed hyperparameter optimization for prod kernel
* improved code readability
* added unit tests for gradient observing MultioutputGP models
* added predictions check to unit tests
* bugfix for multioutput_kern
* improved testing coverage
* reduced size of some tests; led to an issue in an unrelated test
* updated testing
* added gradient MultioutputGP prod kernel example
* added keywords and plotting to example
* Update setup.py
remove special handling of scipy dependencies for old python versions
* Update __init__.py
replace numpy type by native type
* replace np.bool by bool
The number of inducing points in the latent space defaults to 10, which creates an error if there are fewer than 10 conditions (i.e. output dimension is less than 10). Currently this error shows up somewhat opaquely. This fix makes the error explicit, which may save time for future developers.
The current error shown is:
```
~/code/anaconda/lib/python3.6/site-packages/GPy/inference/latent_function_inference/vardtc_svi_multiout_miss.py in inference_d(self, d, beta, Y, indexD, grad_dict, mid_res, uncertain_inputs_r, uncertain_inputs_c, Mr, Mc)
82 LcInvPsi1_cT = dtrtrs(Lc, psi1_c.T)[0]
83 LrInvPsi1_rT = dtrtrs(Lr, psi1_r.T)[0]
---> 84
85 tr_LrInvPsi2_rLrInvT_LrInvSrLrInvT = (LrInvPsi2_rLrInvT*LrInvSrLrInvT).sum()
86 tr_LcInvPsi2_cLcInvT_LcInvScLcInvT = (LcInvPsi2_cLcInvT*LcInvScLcInvT).sum()
ValueError: operands could not be broadcast together with shapes (5,5) (6,6)
```
If you run mpiexec -n 2 on any code to try to use MPI multiprocessing for SparseGPRegression, it crashes (see #618) because the rank>1 processes do not have ret defined.
This PR adds two main things to GPy:
- to- and from-dict functions for the kernels listed belop
- a fix for the appveyor CI
Please see the squashed commit messages listed below.
Authors: @gehbiszumeis @ppk42 respectively
Reviewer: @ekalosak
---
* new: added to_dict() method to Coregionalize kernel class
* new: added to_dict() method to MixedNoise likelihood class
* fix: made Y_metadata dict content serializable
* fix: typo
* added additional needed parameters to to_dict() method for Coregionalize kernel + added _build_from_input dict method
* new: added possibility to build MixedNoise likelihood from input_dict
* Y_metadata conversion from serializable to np.array when loading from dict
* fix: rework Y_metadata part for compatibility with unittests !minor
* conda cleanup in appveyors pipeline
* conda clean up after conda update
* conda clean before conda update
* try pinning packages for conda
* revert all conda changes
* conda clean all (not only packages)
* use conda update anaconda
* pin conda package
* pin conda package
* try installing charset-normalizer beforehand
* try to get from conda-forge
* revert all conda changes
* Try to fix the conda update challange.
See: https://community.intel.com/t5/Intel-Distribution-for-Python/Conda-update-Conda-fails/td-p/1126174
It is just a try for a different context/(conda version).
* Still fixing build error on appveyor
I also use a newer miniconda version for greater python versions.
* Update appveyor.yml
Thinking it over it decided to use miniconda38 for all python versions unless python 3.5.
* revert miniconda versioning changes
* adjust GPy version in appveyor.yml
* 1st attempt bring the appveyor build to life again
* #955 fixing ci build on appveyor
After bringing the miniconda env to work again, the wrong matplotlib version was used. This commit should fix that.
* #955 Fix CI build
Freezing numpy and scipy was a bad idea.
I freeze matplotlib dependend on the python version only.
* add: built_from_dict method for White Kernel
Co-authored-by: Peter Paul Kiefer <ppk42@users.noreply.github.com>
Co-authored-by: Peter Paul Kiefer <dafisppk@gmail.com>