Skip to content

A spherical convolutional neural network for cosmology (TFv2).

License

Notifications You must be signed in to change notification settings

deepsphere/deepsphere-cosmo-tf2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

91 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DeepSphere: a spherical convolutional neural network

Code style: black

Janis Fluri, Nathanaël Perraudin, Michaël Defferrard

This is an implementation of DeepSphere using TensorFlow 2.x.

Resources

Code:

Papers:

  • DeepSphere: Efficient spherical CNN with HEALPix sampling for cosmological applications, 2018.
    [paper, blog, slides]
  • DeepSphere: towards an equivariant graph-based spherical CNN, 2019.
    [paper, poster]
  • DeepSphere: a graph-based spherical CNN, 2020.
    [paper, slides, video]

Installation

  1. Clone this repository.

    git clone https://github.com/deepsphere/deepsphere-cosmo-tf2.git
    cd deepsphere-cosmo-tf2
  2. Install the package (including dependencies)

    pip install -e .

    Note: the code has been developed and tested with Python 3.10. It does not work on Python 2.7!

  3. (Optional) Test the installation.

    pytest tests
    
  4. Play with the Jupyter notebooks.

    jupyter notebook

Notebooks

The below notebooks contain examples and experiments to play with the model.

  1. Quick Start. The easiest to play with the model by classifying data on the whole sphere.
  2. Advanced Tutorial. An introduction to various layers, customized training loops, and custom survey masks.
  3. Generative Models. How to build an auto-encoder using spherical data and the transpose healpy pseudo convolutions.

License & citation

The content of this repository is released under the terms of the MIT license.
Please consider citing our papers if you find it useful.

@article{deepsphere_cosmo,
  title = {{DeepSphere}: Efficient spherical Convolutional Neural Network with {HEALPix} sampling for cosmological applications},
  author = {Perraudin, Nathana\"el and Defferrard, Micha\"el and Kacprzak, Tomasz and Sgier, Raphael},
  journal = {Astronomy and Computing},
  volume = {27},
  pages = {130-146},
  year = {2019},
  month = apr,
  publisher = {Elsevier BV},
  issn = {2213-1337},
  doi = {10.1016/j.ascom.2019.03.004},
  archiveprefix = {arXiv},
  eprint = {1810.12186},
  url = {https://arxiv.org/abs/1810.12186},
}
@inproceedings{deepsphere_rlgm,
  title = {{DeepSphere}: towards an equivariant graph-based spherical {CNN}},
  author = {Defferrard, Micha\"el and Perraudin, Nathana\"el and Kacprzak, Tomasz and Sgier, Raphael},
  booktitle = {ICLR Workshop on Representation Learning on Graphs and Manifolds},
  year = {2019},
  archiveprefix = {arXiv},
  eprint = {1904.05146},
  url = {https://arxiv.org/abs/1904.05146},
}
@inproceedings{deepsphere_iclr,
  title = {{DeepSphere}: a graph-based spherical {CNN}},
  author = {Defferrard, Michaël and Milani, Martino and Gusset, Frédérick and Perraudin, Nathanaël},
  booktitle = {International Conference on Learning Representations (ICLR)},
  year = {2020},
  url = {https://openreview.net/forum?id=B1e3OlStPB},
}

Development

Hooks

Pre-commit hooks come in any color you'd like

pre-commit install -c .hooks/.pre-commit-config.yaml