Google MobileNet implementation with Keras
Switch branches/tags
Nothing to show
Clone or download
Latest commit 674a1c3 Dec 7, 2017
Permalink
Failed to load latest commit information.
keras_mobilenet ADD bias setting Apr 19, 2017
tests ADD shallow option Apr 19, 2017
.gitignore ADD shallow option Apr 19, 2017
LICENSE ADD init Apr 18, 2017
README.md Update README.md Dec 7, 2017

README.md

Note: This project is not maintained anymore. Mobilenet implementation is already included in Keras Applications folder. Mobilenet

Keras MobileNet

Google MobileNet Implementation using Keras Framework 2.0

Project Summary

  • This project is just the implementation of paper from scratch. I don't have the pretrained weights or GPU's to train :)
  • Separable Convolution is already implemented in both Keras and TF but, there is no BN support after Depthwise layers (Still investigating).
  • Custom Depthwise Layer is just implemented by changing the source code of Separable Convolution from Keras. Keras: Separable Convolution
  • There is probably a typo in Table 1 at the last "Conv dw" layer stride should be 1 according to input sizes.
  • Couldn't find any information about the usage of biases at layers (not used as default).

TODO

  • Add Custom Depthwise Convolution
  • Add BN + RELU layers
  • Check layer shapes
  • Test Custom Depthwise Convolution
  • Benchmark training and feedforward pass with both CPU and GPU
  • Compare with SqueezeNet

Library Versions

  • Keras v2.0+
  • Tensorflow 1.0+ (not supporting Theano for now)

References

  1. Keras Framework

  2. Google MobileNet Paper

Licence

MIT License

Note: If you find this project useful, please include reference link in your work.