mtobeiyf/keras-flask-deploy-webapp
:smiley_cat: Pretty & simple image classifier app template. Deploy your own trained model or pre-trained model (VGG, ResNet, Densenet) to a web app using Flask in 10 minutes.
repo name | mtobeiyf/keras-flask-deploy-webapp |
repo link | https://github.com/mtobeiyf/keras-flask-deploy-webapp |
homepage | |
language | JavaScript |
size (curr.) | 41 kB |
stars (curr.) | 653 |
created | 2018-02-04 |
license | GNU General Public License v3.0 |
Deploy Keras Model with Flask as Web App in 10 Minutes
A pretty and customizable web app to deploy your DL model with ease
Getting started in 10 minutes
- Clone this repo
- Install requirements
- Run the script
- Go to http://localhost:5000
- Done! :tada:
:point_down: Screenshot:
New Features :fire:
- Enhanced, mobile-friendly UI
- Support image drag-and-drop
- Use vanilla JavaScript, HTML and CSS. Remove jQuery and Bootstrap
- Switch to TensorFlow 2.0 and tf.keras by default
- Upgrade Docker base image to Python 3 (it’s 2020)
If you need to use Python 2.x or TensorFlow 1.x, check out the legacy snapshot
Run with Docker
With Docker, you can quickly build and run the entire application in minutes :whale:
# 1. First, clone the repo
$ git clone https://github.com/mtobeiyf/keras-flask-deploy-webapp.git
$ cd keras-flask-deploy-webapp
# 2. Build Docker image
$ docker build -t keras_flask_app .
# 3. Run!
$ docker run -it --rm -p 5000:5000 keras_flask_app
Open http://localhost:5000 and wait till the webpage is loaded.
Local Installation
It’s easy to install and run it on your computer.
# 1. First, clone the repo
$ git clone https://github.com/mtobeiyf/keras-flask-deploy-webapp.git
$ cd keras-flask-deploy-webapp
# 2. Install Python packages
$ pip install -r requirements.txt
# 3. Run!
$ python app.py
Open http://localhost:5000 and have fun. :smiley:
Customization
It’s also easy to customize and include your models in this app.
Use your own model
Place your trained .h5
file saved by model.save()
under models directory.
Check the commented code in app.py.
Use other pre-trained model
See Keras applications for more available models such as DenseNet, MobilNet, NASNet, etc.
Check this section in app.py.
UI Modification
Modify files in templates
and static
directory.
index.html
for the UI and main.js
for all the behaviors.
Deployment
To deploy it for public use, you need to have a public linux server.
Run the app
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
Set up Nginx
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;
}
}
Future
- Support detection and segmentation models