A pretty and customizable web app to deploy your DL model with ease
- Clone this repo
- Install requirements
- Run the script
- Check http://localhost:5000
- Done! 🎉
👇Screenshot:
$ git clone https://github.com/manjrekarom/keras-flask-deploy-webapp.git
$ pip install -r requirements.txt
Make sure you have the following installed:
- tensorflow
- pytorch
- torchvision
- keras
- flask
- pillow
- h5py
- gevent
Python 2.7 or 3.5+ are supported and tested.
Examples:
- To start serving a pretrained keras model:
$ python app.py
- Alternatively, you can specify pytorch models, image size and class categories for custom models.
$ python app.py -t ./models/animal/cnn.pkl -d 112 112 -c ./models/animal/class.txt --delim " "
- For usage details:
$ python app.py -h
Open http://localhost:5000 and have fun. 😃
Place your trained .h5
(for keras) or .pkl
(for PyTorch) file saved by model.save()
under models directory (preferrably) or specify a path to it.
Check the commented code in app.py.
See Keras applications for more available models such as DenseNet, MobilNet, NASNet, etc.
Check this section in app.py.
Modify files in templates
and static
directory.
index.html
for the UI and main.js
for all the behaviors
To deploy it for public use, you need to have a public linux server.
Run the script and hide it in background with tmux
or screen
.
$ python app.py
You can also use gunicorn instead of gevent
$ gunicorn -b 127.0.0.1:5000 app:app
More deployment options, check here
To redirect the traffic to your local app.
Configure your Nginx .conf
file.
server {
listen 80;
client_max_body_size 20M;
location / {
proxy_pass http://127.0.0.1:5000;
}
}
Check Siraj's "How to Deploy a Keras Model to Production" video. The corresponding repo.
Building a simple Keras + deep learning REST API
- Showing top N classes
- Manual cropping
- Visualization of learned features (saliency maps, grad-CAMs, etc).
- Support for different types models and frameworks