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