Code for reproducing the results in the following paper:
Decorrelated Batch Normalization
Lei Huang, Dawei Yang, Bo Lang, Jia Deng
IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2018.
arXiv:1804.08450
cutorch
should be compiled with MAGMA support if you have installed MAGMA and set the environments correctly.optnet
by:
luarocks install optnet
bash execute_MLP_0debug_MNIST.sh
This script will download MNIST automatically and you should put the mnist.t7/
under ./dataset/
. The experiment results will be saved at ./set_result/MLP/
.
/dataset/
so that the paths look like ./dataset/YaleB/YaleB_train.dat
and ./dataset/YaleB/YaleB_test.dat
.bash execute_MLP_1FIM_YaleB_best.sh
The experiment results will be saved at directory: 'set_result/MLP/'.
You can experiment with different hyperparameters by running these scripts -- execute_MLP_1FIM_YaleB_HyperP.sh
and execute_MLP_1FIM_YaleB_HyperP_nnn.sh
.
Prepare the data: download the PIE dataset here, and put the data file under ./dataset/
such that the paths look like ./dataset/PIE/PIE_train.dat
and ./dataset/PIE/PIE_test.dat
.
To experiment with different group sizes, run:
bash execute_MLP_2PIE_DBNGroup.sh
To obtain different baseline performances, execute:
bash execute_MLP_2PIE.sh
bash execute_MLP_2PIE_nnn.sh
Note that the experiments until this point can be run on CPU, so MAGMA is not needed in above experiments.
cifar_provider.t7
under ./dataset/
.
bash execute_Conv_1vggA_2test_adam.sh
bash execute_Conv_1vggA_2test_base.sh
bash execute_Conv_1vggA_2test_ELU.sh
bash execute_Conv_1vggA_2test_var.sh
Note that if your machine has fewer than 4 GPUs, the environment variable CUDA_VISIBLE_DEVICES
should be changed accordingly.
bash exp_Conv_4Splain_1deep.lua
bash exp_Conv_4Splain_2large.lua
./dataset/
.bash execute_Conv_2residual_old.sh
bash execute_Conv_3residual_wide_Cifar100_wr_BN_d28_h48_g16_b128_dr0.3_s1_C2.sh
bash execute_Conv_3residual_wide_Cifar100_wr_DBN_scale_L1_d28_h48_g16_b128_dr0.3_s1_C3.sh
bash execute_Conv_3residual_wide_Cifar10_wr_BN_d28_h48_g16_b128_dr0.3_s1_C2.sh
bash execute_Conv_3residual_wide_Cifar10_wr_DBN_scale_L1_d28_h48_g16_b128_dr0.3_s1_C3.sh
/tmp/dataset/ImageNet/
(you can also customize the path in opts.lua
)./models/imagenet/cuSpatialDBN/
and run luarocks make cudbn-1.0-0.rockspec
.
./models/imagenet/
(resnet_BN.lua
, resnet_DBN_scale_L1.lua
and init.lua
) to ./models
directory in the cloned repo fb.resnet.torch
, for reproducing the results reported in the paper. You also can compare the pre-activation version of residual networks introduced in the paper (using the model files
preresnet_BN.lua
and preresnet_DBN_scale_L1.lua
). Email: huanglei@nlsde.buaa.edu.cn. Any discussions and suggestions are welcome!