Differentiable cosmological emulators
Project description
CosmoPower-JAX
(We will add a logo soon!)
CosmoPower-JAX
in an extension of the CosmoPower framework to emulate cosmological power spectra in a differentiable way. With CosmoPower-JAX
you can efficiently run Hamiltonian Monte Carlo with hundreds of parameters (for example, nuisance parameters describing systematic effects), on CPUs and GPUs, in a fraction of the time which would be required with traditional methods. We provide some examples on how to use the neural emulators below, and more applications in our paper (coming soon).
Of course, with CosmoPower-JAX
you can also obtain efficient and differentiable predictions of cosmological power spectra. We show how to achieve this in less than 5 lines of code below.
Installation
To install CosmoPower-JAX
, you can simply use pip
:
pip install cosmopower-jax
We recommend doing it in a fresh conda
environment, to avoid clashes (e.g. conda create -n cpj python=3.9 && conda activate cpj
). Alternatively, you can:
git clone https://github.com/dpiras/cosmopower-jax.git
cd cosmopower-jax
pip install .
The latter will also give you access to a Jupyter notebook with some examples.
Usage & example
After the installation, getting a cosmological power spectrum prediction is as simple as (e.g. for the CMB temperature power spectrum):
import numpy as np
from cosmopower_jax.cosmopower_jax import CosmoPowerJAX as CPJ
# omega_b, omega_cdm, h, tau, n_s, ln10^10A_s
cosmo_params = np.array([0.025, 0.11, 0.68, 0.1, 0.97, 3.1])
emulator = CPJ(probe='cmb_tt')
emulator_predictions = emulator.predict(cosmo_params)
Similarly, we can also compute derivatives like:
emulator_derivatives = emulator.derivative(cosmo_params)
We provide a full walkthrough in the accompanying Jupyter notebook, and we describe CosmoPower-JAX
in detail in the release paper. We currently do not provide the code to train a neural-network model in JAX; if you would like to re-train a JAX-based neural network on different data, raise an issue or contact Davide Piras.
Contributing and contacts
Feel free to fork this repository to work on it; otherwise, please raise an issue or contact Davide Piras.
Citation
If you use CosmoPower-JAX
in your work, please cite both papers as follows:
@article{SpurioMancini2022,
title={CosmoPower: emulating cosmological power spectra for
accelerated Bayesian inference from next-generation surveys},
volume={511},
ISSN={1365-2966},
url={http://dx.doi.org/10.1093/mnras/stac064},
DOI={10.1093/mnras/stac064},
number={2},
journal={Monthly Notices of the Royal Astronomical Society},
publisher={Oxford University Press (OUP)},
author={Spurio Mancini, Alessio and Piras, Davide and
Alsing, Justin and Joachimi, Benjamin and Hobson, Michael P},
year={2022},
month={Jan},
pages={1771–1788}
}
@article{Piras23,
title={CosmoPower-JAX: high-dimensional Bayesian inference with
differentiable cosmological emulators},
volume={TBC},
ISSN={TBC},
url={TBC},
DOI={TBC},
number={TBC},
journal={TBC},
publisher={TBC},
author={Piras, Davide and Spurio Mancini, Alessio},
year={2023},
month={TBC},
pages={TBC}
}
License
CosmoPower-JAX
is released under the GPL-3 license - see LICENSE-, subject to
the non-commercial use condition - see LICENSE_EXT.
CosmoPower-JAX
Copyright (C) 2023 Davide Piras & contributors
This program is released under the GPL-3 license (see LICENSE),
subject to a non-commercial use condition (see LICENSE_EXT).
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for cosmopower_jax-0.2.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7310da5dbffc89bdcf0ff83ee5073e5f011d1ba99f502bdc2d4c3f26b6c95d55 |
|
MD5 | 1655db754f81afc7a82b11789ff1eadd |
|
BLAKE2b-256 | f2f4b91f6c2d5e789858c8b06990a289c40f055a288de5f8aa7c8de6735a06c4 |