-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathReadMe
71 lines (50 loc) · 2.72 KB
/
ReadMe
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
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