This repository contains a PyTorch implementation of the DeepWave model originally published at NeurIPS 2019
| paper | original code |
Get started with inference
- SphericalChebConv: Spherical Chebyshev graph convolutions
- BackProjLayer: project correlation matrix into image form (intensity map form)
- ReTanh: Rectified hyperbolic tangent action function
- DeepWave: the actual model architecture
DeepWave (PyTorch) architecture:
Deepwave: input=S, trainable={mu, D, tau}
y <- BackProjLayer(S)
conv4 <- SphericalChebConv(I_init) + y
conv4 <- ReTanh(conv4)
conv3 <- SphericalChebConv(conv4) + y
conv3 <- ReTanh(conv3)
conv2 <- SphericalChebConv(conv3) + y
conv2 <- ReTanh(conv2)
conv1 <- SphericalChebConv(conv2) + y
conv1 <- ReTanh(conv1)
conv0 <- SphericalChebConv(conv1) + y
I_out <- ReTanh(conv0)
Many of the operations used in this implementation were borrowed from the repository deepsphere-pytorch.
Create a Python virtual environment
python3 -m venv /path/to/your_new_venv
Start your_new_venv
source /path/to/<your_new_venv>/bin/activate
- Clone
DeepWaveTorch
(this repo!).
git clone [email protected]:adrianSRoman/DeepWaveTorch.git
- Initialize submodules
git submodule init
- Start
ImoT_tools
: plotting library used to nicely visualize DeepWave's output
cd ImoT_tools
pip install -r requirements.txt
python3 setup.py develop
- Start
DeepWave
: original DeepWave implementation. Used for benchmarking against the PyTorch implementation. Data loaders are also re-used from the original implementation.
cd DeepWave
python3 setup.py develop
- Start
DeepWaveTorch
: new DeepWave PyTorch implementation.
cd DeepWaveTorch
pip install -r requirements.txt
python3 setup.py develop
- Start
your_new_venv
source /path/to/<your_new_venv>/bin/activate
- Create a Jupyter Kernel to contain your required packages (first time setup only)
pip install ipykernel
ipython kernel install --user --name=<your_new_kernel_name>
- Start Jupyter
jupyter notebook
- Select a given notebook you want to work with
- Select
your_new_kernel_name
under: Kernel > Change kernel >your_new_kernel_name
Qualitatively, the implementation from this repository generates the same intensity fields as the original DeepWave implementation.
This work is licensed under a Creative Commons Attribution 4.0 International License.