  We introduce GPflux, a Python library for Bayesian deep learning with a
strong emphasis on deep Gaussian processes (DGPs). Implementing DGPs is a
challenging endeavour due to the various mathematical subtleties that arise
when dealing with multivariate Gaussian distributions and the complex
bookkeeping of indices. To date, there are no actively maintained, open-sourced
and extendable libraries available that support research activities in this
area. GPflux aims to fill this gap by providing a library with state-of-the-art
DGP algorithms, as well as building blocks for implementing novel Bayesian and
GP-based hierarchical models and inference schemes. GPflux is compatible with
and built on top of the Keras deep learning eco-system. This enables
practitioners to leverage tools from the deep learning community for building
and training customised Bayesian models, and create hierarchical models that
consist of Bayesian and standard neural network layers in a single coherent
framework. GPflux relies on GPflow for most of its GP objects and operations,
which makes it an efficient, modular and extensible library, while having a
lean codebase.
