Skip to content

slimgroup/XConv

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DOI

Memory efficient convolution layer via matrix sketching

This software provides the implementation of convolution layers where the gradient with respect to the weights is approximated by an unbiased estimate. This estimate is obtained via matrix probing. This package contains two implementation:

  • A julia implementation that overloads NNlib for the computation of ∇conv_filter.
  • A PyTorch implementation that defines a new convolution layer Xconv2D, Xconv3D.

Julia installation

To install the julia package, you can install it via the standard dev command

>> ]dev https://github.com/slimgroup/XConv

Pip installation

The python source of this package can also be directly install via pip:

pip install git+https://github.com/slimgroup/XConv

or if you wish to get access to the experiments and benchmarking script:

git clone https://github.com/slimgroup/XConv
cd XConv
pip install -e .

This installation will install the default torch, we recommend to install the version that is best suited for your system following Torch Installation.

Acknowledgment

This software was developped and tested on GPUs thanks to NVIDIA Academic Hardware Grant.

Authors

This package is developpend at Georgia Institute of Technology byt the ML4Seismic Lab. The main autors of this package are:

License

This package is distributed under the MIT license. Please check the LICENSE file for usage.