Advanced Usage =============================================== Here are some examples highlighting GPyTorch's more advanced features. Batch GPs ----------- GPyTorch makes it possible to train/perform inference with a batch of Gaussian processes in parallel. This can be useful for a number of applications: - Modeling a function with multiple (independent) outputs - Performing efficient cross-validation - Parallel acquisition function sampling for Bayesian optimization - And more! Here we highlight a number of common batch GP scenarios and how to construct them in GPyTorch. - **Multi-output functions (with independent outputs).** Batch GPs are extremely efficient at modelling multi-output functions, when each of the output functions are **independent**. See the `Batch Independent Multioutput GP`_ example for more details. - **For cross validation**, or for some BayesOpt applications, it may make sense to evaluate the GP on different batches of test data. This can be accomplished by using a standard (non-batch) GP model. At test time, feeding a `b x n x d` tensor into the model will then return `b` batches of `n` test points. See the `Batch Mode Regression`_ example for more details. .. toctree:: :glob: :maxdepth: 1 :hidden: ../03_Multitask_Exact_GPs/Batch_Independent_Multioutput_GP.ipynb Simple_Batch_Mode_GP_Regression.ipynb GPs with Derivatives ---------------------- Derivative information can be used by GPs to accelerate Bayesian optimization. See the `1D derivatives GP example`_ or the `2D derivatives GP example`_ for examples on using GPs with derivative information. .. toctree:: :glob: :maxdepth: 1 :hidden: Simple_GP_Regression_Derivative_Information_1d.ipynb Simple_GP_Regression_Derivative_Information_2d.ipynb .. _Batch Independent Multioutput GP: ../03_Multitask_Exact_GPs/Batch_Independent_Multioutput_GP.ipynb .. _Batch Mode Regression: Simple_Batch_Mode_GP_Regression.ipynb .. _1D derivatives GP example: Simple_GP_Regression_Derivative_Information_1d.ipynb .. _2D derivatives GP example: Simple_GP_Regression_Derivative_Information_2d.ipynb Variational Fantasization ---------------------------------- We also include an example of how to perform fantasy modelling (e.g. efficient, closed form updates) for variational Gaussian process models, enabling their usage for lookahead optimization. See the `Variational fantasization`_ example. .. toctree:: :glob: :maxdepth: 1 :hidden: SVGP_Model_Updating.ipynb .. _Variational fantasization: SVGP_Model_Updating.ipynb Converting Models to TorchScript ---------------------------------- In order to deploy GPs in production code, it can be desirable to avoid using PyTorch directly for performance reasons. Fortunarely, PyTorch offers a mechanism called TorchScript to aid in this. In these example notebooks, we'll demonstrate how to convert both an exact GP and a variational GP to a ScriptModule that can then be used for example in LibTorch. .. toctree:: :glob: :maxdepth: 1 :hidden: TorchScript_Exact_Models.ipynb TorchScript_Variational_Models.ipynb