I will open source my previous solutions without tweak.
Just some experimental code of ideas are shown here, while more general tools may be open source after the challenge.
Test the origin model on RTX2080TI(ms) --
merge_bn.ipynb
: Merge batchnorm layers to convolution.clear_idle_filters.ipynb
: Clear some idle filters whose weights are near to zero.fc_svd.ipynb
: Seperate a fully connection into several ones via SVD.- Seperate a kxk-convolution into [kxk, 1x1] or [kx1, 1xk].
- Use some special algorithm for computations(im2, kn2, Winograd, FFT, direct and so on).
- Try different stategies to prune.
- Sparse convolutions and sparse fully connections.
- Quantization.
- Merge layers(for example, merge two 3x3-convolutions into one 5x5-convolution if relu can be ignored).
Good luck~