/keras-mobilenet

Google MobileNet implementation with Keras

Primary LanguagePythonMIT LicenseMIT

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.