Skip to content

msellamiTN/ML-flask_docker_sklean

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

sklearn-flask-docker
Un exemple de déploiement d'un modèle sklearn à l'aide de Flask à l'aide d'un conteneur Docker.

Ce didacticiel nécessite des connaissances de base sur Docker.

Pas:
1. Former le modèle
Pour cet exemple, nous entraînons un modèle de jouet à l'aide du jeu de données Telco Customer Churn. Pour entraîner un nouveau modèle, exécutez ceci:

python train.py

Cela génère un modèle pickle dans un fichier nommé chrunlog_r.pkl.

2. Créez une image Docker contenant Flask et le modèle
Construisez une image ( docker build) appelée msellami/sklearn-flask-docker ( --tag msellami/sklearn-flask-docker) à partir du Dockerfile ( .).

La construction de cette image est définie par Dockerfile.

docker build --tag msellami/sklearn-flask-docker .

3. Créer un conteneur à partir de l'image Docker
Créez et démarrez ( docker run) un -d conteneur Docker détaché ( ) appelé sklearn-flask-docker ( --name sklearn-flask-docker) à partir de l'image msellami/sklearn-flask-docker:latestoù le port de la machine hôte est connecté au port 3333 du conteneur Docker ( -p 3000:3333).

docker run -p 3000:3333 -d --name sklearn-flask-docker msellami/sklearn-flask-docker:latest

4. Interrogez l'API Prediction avec un exemple d'observation
Puisque notre modèle est entraîné sur l'ensemble de données du jouet Iris, nous pouvons tester l'API en l'interrogeant pour la classe prédite pour cet exemple d'observation:
['tenure', 'age', 'address', 'income', 'ed', 'employ', 'equip']
11.,  33.,   7., 136.,   5.,   5.,   0.
tenure = 11.0
age=33.0
address=7.0
income=136.0
ed=5.0
employ=5.0
equip=0.0
Dans votre navigateur
Collez cette URL dans la barre de votre navigateur:

http://0.0.0.0:3000/api/v1.0/predict?tenure=11.0&age=33.0&address=7.0&income=136.0&ed=5.0&employ=5.0&equip=0.0

Dans votre navigateur, vous devriez voir quelque chose comme ceci:

{"features":[4.5,2.3,1.3,0.3],"predicted_class":0}
"predicted_class":0 signifie que la classe prédite est "Iris setosa"

Utiliser Curl
Collez cette URL dans votre terminal:

curl -i "0.0.0.0:3000/api/v1.0/predict?sl=4.5&sw=2.3&pl=1.3&pw=0.3"

Vous devriez voir quelque chose comme ceci:

HTTP/1.0 200 OK
Content-Type: application/json
Content-Length: 51
Server: Werkzeug/1.0.1 Python/3.6.12
Date: Tue, 25 Aug 2020 20:29:41 GMT

{"features":[4.5,2.3,1.3,0.3],"predicted_class":0}
Opérations de base de Docker
Vous devrez utiliser sudopour ces commandes, mais la meilleure pratique consiste à ajouter votre utilisateur au dockergroupe lors de la production.

Démarrer le conteneur
docker start sklearn-flask-docker

Arrêtez le conteneur
docker stop sklearn-flask-docker

Supprimer le conteneur
docker rm sklearn-flask-docker

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published