Git Product home page Git Product logo

gpy's Introduction

GPy

The Gaussian processes framework in Python.

develstat covdevel Research software impact Code Health

Updated Structure

We have pulled the core parameterization out of GPy. It is a package called paramz and is the pure gradient based model optimization.

If you installed GPy with pip, just upgrade the package using:

$ pip install --upgrade GPy

If you have the developmental version of GPy (using the develop or -e option) just install the dependencies by running

$ python setup.py develop

again, in the GPy installation folder.

A warning: This usually works, but sometimes distutils/setuptools opens a whole can of worms here, specially when compiled extensions are involved. If that is the case, it is best to clean the repo and reinstall.

Supported Platforms:

Python 2.7, 3.4 and higher

Citation

@Misc{gpy2014,
  author =   {{GPy}},
  title =    {{GPy}: A Gaussian process framework in python},
  howpublished = {\url{http://github.com/SheffieldML/GPy}},
  year = {since 2012}
}

Pronounciation:

We like to pronounce it 'g-pie'.

Getting started: installing with pip

We are now requiring the newest version (0.16) of scipy and thus, we strongly recommend using the anaconda python distribution. With anaconda you can install GPy by the following:

conda update scipy
pip install gpy

We've also had luck with enthought. Install scipy 0.16 (or later) and then pip install GPy:

pip install gpy

If you'd like to install from source, or want to contribute to the project (i.e. by sending pull requests via github), read on.

Installing on Windows with GPU support

Installation on Windows with GPU support requires some additional libraries and changes. First of all you need to install pycuda then install GPy. To install pyCUDA you will need to download a pre-compiled windows binary. Up to date versions are is available at Christopher Gohlke's site. e.g.

pip install pycuda-2016.1.1+cuda7518-cp35-cp35m-win_amd64.whl
pip install gpy

You will also need to modify your environment variables so that the Microsoft C compiler (cl.exe) is in you system or user PATH. Currently Visual Studio 2015 (VC 14.00) is not supported by pycuda so you will need to install Visual Studio 2013 (VC 12.00) or earlier. Only the Visual C++ components are required. Add the (C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin) directory to your windows path.

Troubleshooting installation problems

If you're having trouble installing GPy via pip install GPy here is a probable solution:

git clone https://github.com/SheffieldML/GPy.git
cd GPy
git checkout devel
python setup.py build_ext --inplace
nosetests GPy/testing

Direct downloads

PyPI version source Windows MacOSX

Saving models in a consistent way across versions:

As pickle is inconsistent across python versions and heavily dependent on class structure, it behaves inconsistent across versions. Pickling as meant to serialize models within the same environment, and not to store models on disk to be used later on.

To save a model it is best to save the m.param_array of it to disk (using numpy’s np.save). Additionally, you save the script, which creates the model. In this script you can create the model using initialize=False as a keyword argument and with the data loaded as normal. You then set the model parameters by setting m.param_array[:] = loaded_params as the previously saved parameters. Then you initialize the model by m.initialize_parameter(), which will make the model usable. Be aware that up to this point the model is in an inconsistent state and cannot be used to produce any results.

# let X, Y be data loaded above
# Model creation:
m = GPy.models.GPRegression(X, Y)
m.optimize()
# 1: Saving a model:
np.save('model_save.npy', m.param_array)
# 2: loading a model
# Model creation, without initialization:
m = GPy.models(GPRegression(X,Y,initialize=False)
m[:] = np.load('model_save.npy')
m.initialize_parameter()
print m

Running unit tests:

Ensure nose is installed via pip:

pip install nose

Run nosetests from the root directory of the repository:

nosetests -v GPy/testing

or from within IPython

import GPy; GPy.tests()

or using setuptools

python setup.py test

Ubuntu hackers

Note: Right now the Ubuntu package index does not include scipy 0.16.0, and thus, cannot be used for GPy. We hope this gets fixed soon.

For the most part, the developers are using ubuntu. To install the required packages:

sudo apt-get install python-numpy python-scipy python-matplotlib

clone this git repository and add it to your path:

git clone [email protected]:SheffieldML/GPy.git ~/SheffieldML
echo 'PYTHONPATH=$PYTHONPATH:~/SheffieldML' >> ~/.bashrc

Compiling documentation:

The documentation is stored in doc/ and is compiled with the Sphinx Python documentation generator, and is written in the reStructuredText format.

The Sphinx documentation is available here: http://sphinx-doc.org/latest/contents.html

Developing GPy library

To develop the library and contribute then fork the GPy repository and issue a pull request with any modifications.

To work on the library locally use the following from within a virtual or conda environment

pip install develop

Installing dependencies:

To compile the documentation, first ensure that Sphinx is installed. On Debian-based systems, this can be achieved as follows:

sudo apt-get install python-pip
sudo pip install sphinx

Compiling documentation:

The documentation can be compiled as follows:

cd doc
sphinx-apidoc -o source/ ../GPy/
make html

The HTML files are then stored in doc/build/html

Funding Acknowledgements

Current support for the GPy software is coming through the following projects.

Previous support for the GPy software came from the following projects:

  • BBSRC Project No BB/K011197/1 "Linking recombinant gene sequence to protein product manufacturability using CHO cell genomic resources"
  • EU FP7-KBBE Project Ref 289434 "From Data to Models: New Bioinformatics Methods and Tools for Data-Driven Predictive Dynamic Modelling in Biotechnological Applications"
  • BBSRC Project No BB/H018123/2 "An iterative pipeline of computational modelling and experimental design for uncovering gene regulatory networks in vertebrates"
  • Erasysbio "SYNERGY: Systems approach to gene regulation biology through nuclear receptors"

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.