Home

Awesome

ROTDCF: Decomposition Of Convolutional Filters For Rotation-Equivariant Deep Neural Netowrks

<font size=4>Code for paper: ROTDCF: Decomposition Of Convolutional Filters For Rotation-Equivariant Deep Neural Netowrks[paper link]

This repo implements the rotMNIST experiment in Section 4.1(ref. Table 3 and Table A.3).</font>

Requirements

pytorch>=1.0

numpy>=1.18

matplotlib

Dataset

Download processed rotMNIST dataset from here. Unzip it to this work directory.

Change data_path and save_path variables in dataset.py.

Notebook for Rotation Equivariance

'Demo for Rotataion Equivariance' shows the main property of proposed method. Go through the notebook and you will observe rotation equivariance in output feature maps, e.g.,

<center class="half"> <img src=./misc/featmap_rotequi_layer1.png width=700> </center>

Test Pretrained Models

Test 6-layer CNN(M=32) [Acc=96.87%]

./test.sh CNN 6

Test 6-layer RotDCF(M=16, =8, K=5, =5) [Acc=99.01%]

change M=16, =8, K=5, and =5 in test.sh, and then,

./test.sh RotDCF 6 

Test 6-layer DCF(M=32, K=5) [Acc=96.94%]

change K=5 in test.sh, and then,

./test.sh DCF 6 

Train New Models

Train 6-layer CNN(M=32)

./train.sh CNN 6

Train 6-layer RotDCF(M=16, =8$, K=5, =5)

change M=16, =8, K=5, and =5 in train.sh, and then,

./train.sh RotDCF 6 

Train 6-layer DCF(M=32, K=5)

change K=5 in train.sh, and then,

./train.sh DCF 6