Training a model is the first third of the work. The rest is: expose it, freeze the environment, put it somewhere other people can hit it.
ML-in-production is a complete path:
- Model — Keras / TensorFlow, including pretrained backbones
- API — Flask, so the model is a HTTP interface rather than a notebook
- Container — Docker, so the next machine does not become a dependency puzzle
- Deploy — Heroku as the public endpoint
The accompanying article is Machine Learning in production: Keras, Flask, Docker and Heroku. A follow-up covers running multiple Flask apps behind Nginx and Gunicorn.
This is still the shape I use when someone asks “how do we ship this?” — swap the cloud, keep the seams.