Harmonic Networks: Deep Translation and Rotation Equivariance
This code requires Tensorflow version 1.0
This code accompanies the paper Harmonic Networks: Deep Translation and Rotation Equivariance
Authors: Daniel E. Worrall, Stephan J. Garbin, Daniyar Turmukhambetov, and Gabriel J. Brostow.
1 Running the code
To run code for a specific experiment, run the file run_<myscript>.py
in the relevant folder.
2 Using harmonic convolutions in your code
The core functions for harmonic convolutions can be found in harmonic_network_ops.py
. However, the best way to use these operations is via harmonic_network_lite.py
. This contains the following functions:
- conv2d
- batch_norm
- non_linearity
- mean_pool
- sum_magnitudes
- stack_magnitudes
Each function takes in a 6D tensor with dimensions: minibatch size, height, width, num rotation orders, num complex channels, num channels. For instance, a real tensor with 16 items of height 128 and width 128, 2 rotation orders and 5 channels would have shape [16,128,128,2,1,5]. Whereas a complex tensor with the same parameters would be of shape [16,128,128,2,2,5].