Giter Site home page Giter Site logo

indexedconv's Introduction

Indexed Convolution

The indexed operations allow the user to perform convolution and pooling on non-Euclidian grids of data given that the neighbors pixels of each pixel is known and provided.

It gives an alternative to masking or resampling the data in order to apply standard Euclidian convolution. This solution has been developed in order to apply convolutional neural networks to data from physics experiments that propose specific pixels arrangements.

It is used in the GammaLearn project for the Cherenkov Telescope Array.

Here you will find the code for the indexed operations as well as applied examples. The current implementation has been done for pytorch.

Documentation may be found online.

image

Documentation Status

image

Install

Install from IndexedConv folder:

git clone https://github.com/IndexedConv/IndexedConv.git
cd IndexedConv
pip install .

Install with pip:

pip install indexedconv

Install with conda:

conda install -c gammalearn indexedconv

Running an experiment

For example, to train the network with indexed convolution on the CIFAR10 dataset transformed to hexagonal:

python examples/cifar_indexed.py main_folder data_folder experiment_name --hexa --batch 125 --epochs 300 --seeds 1 2 3 4 --device cpu

In order to train on the AID dataset, it must be downloaded and can be found here.

Authors

The development of the indexed convolution is born from a collaboration between physicists and computer scientists.

  • Luca Antiga, Orobix
  • Mikael Jacquemont, LAPP (CNRS), LISTIC (USMB)
  • Thomas Vuillaume, LAPP (CNRS)

References

If you use the IndexedConv library, please cite:

Jacquemont, M.; Antiga, L.; Vuillaume, T.; Silvestri, G.; Benoit, A.; Lambert, P. and Maurin, G. (2019). Indexed Operations for Non-rectangular Lattices Applied to Convolutional Neural Networks. In Proceedings of the 14th International Joint Conference on Computer Vision, Imaging and Computer Graphics Theory and Applications - Volume 5: VISAPP, ISBN 978-989-758-354-4, pages 362-371. DOI: 10.5220/0007364303620371, https://www.scitepress.org/Link.aspx?doi=10.5220/0007364303620371

@conference{visapp19,
author={Mikael Jacquemont. and Luca Antiga. and Thomas Vuillaume. and Giorgia Silvestri. and Alexandre Benoit. and Patrick Lambert. and Gilles Maurin.},
title={Indexed Operations for Non-rectangular Lattices Applied to Convolutional Neural Networks},
booktitle={Proceedings of the 14th International Joint Conference on Computer Vision, Imaging and Computer Graphics Theory and Applications - Volume 5: VISAPP,},
year={2019},
pages={362-371},
publisher={SciTePress},
organization={INSTICC},
doi={10.5220/0007364303620371},
isbn={978-989-758-354-4},
}

If you want to use and refer to the code implementation of IndexedConv, please cite:

image

Contributing

All contributions are welcome.

Start by contacting the authors, either directly by email or by creating a GitHub issue.

indexedconv's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

indexedconv's Issues

Make IndexedConv compatible with tensorflow models

It would be very nice, if we can add the IndexedConv package to CTLearn. Therefore we have to translate this code from PyTorch to tensorflow. I was going through your code yesterday night. To make IndexedConv run with tf models (as soon as possible) I need to rewrite indexed.py, masked.py and prepare_mask() in utils.py in tensorflow, right? The other utility functions are needed to transform the various datasets and don't need to be called, when assuming we have our input data (output of dl1dh when selecting 'axial_addressing') in the right format?

Clean-up code

  • Organise indexed code and benchmarks in separate dir
  • Add code to download datasets
  • Change dataset path accordingly with download

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.