This repository provides an preliminary Julia implementation for extended convolutional layers. For a short technical report on extended convolutional layers click here.
To start running the examples, clone the repository:
$ git clone https://github.com/slimgroup/ExtendedConv.jl
$ cd ExtendedConv.jl/
Before starting installing the required packages in Julia, make sure you have matplotlib
and seaborn
installed in your Python environment since we depend on PyPlot.jl
and Seaborn.jl
for creating figures.
Next, run the following commands in the command line to install the necessary libraries and setup the Julia project:
julia -e 'using Pkg; Pkg.add("DrWatson")'
julia -e 'using Pkg; Pkg.Registry.add(RegistrySpec(url = "https://github.com/slimgroup/SLIMregistryJL.git"))'
julia --project -e 'using Pkg; Pkg.instantiate()'
After the last line, the necessary dependencies will be installed.
To visualize the loss landscape for conventional and extended CNNs run the following script:
$ julia scripts/2d-ext-obj-visualization.jl
To plot the optimization trajectory on the landscape produced above, run the following:
To perform joint or conditional (posterior) samples via the pretrained normalizing flow (obtained by running the script above), run:
$ julia scripts/2d-ext-obj-visualization.jl
Running these scripts in order is required.
Please contact [email protected] or [email protected] for further questions.
Ali Siahkoohi and Mathias Louboutin