Group-Equivariant Convolutional Neural networks for Keras: keras_gcnn

Python 3.6

Straight-forward keras implementations for 90-degree roto-reflections equivariant CNNs. See a working example.

Install: pip install git+https://github.com/nom/GrouPy#egg=GrouPy -e git+https://github.com/basveeling/keras-gcnn.git#egg=keras_gcnn

Requires python 3, up to date keras and a tensorflow backend. Please report any problems in the issues.

About Group-equivariance

Conventional fully-convolutional NNs are 'equivariant' to translation: as the input shifts in the spatial plane, the output shifts accordingly. This can be extended to include other forms of transformations such as 90 degree rotations and reflection. This is formalized by [2].

Citing

If you use these implementations in your work, we appreciate a citation to our paper:

[1] B. S. Veeling, J. Linmans, J. Winkens, T. Cohen, M. Welling. "Rotation Equivariant CNNs for Digital Pathology". arXiv:1806.03962

Biblatex entry:

@ARTICLE{Veeling2018-qh,
  title         = "Rotation Equivariant {CNNs} for Digital Pathology",
  author        = "Veeling, Bastiaan S and Linmans, Jasper and Winkens, Jim and
                   Cohen, Taco and Welling, Max",
  month         =  jun,
  year          =  2018,
  archivePrefix = "arXiv",
  primaryClass  = "cs.CV",
  eprint        = "1806.03962"
}

GDensenet

GDensenet We provide a Group-equivariant version of DenseNet [3] as proposed in [1].

Recipe for building equivariant networks:

References