"Plate-forme qui peut déployer l'apprentissage automatique en tant que service réel uniquement avec Jupyter" J'ai été très impressionné par la possibilité d'incorporer directement le portable. Dans l'article, une bibliothèque appelée "papermill" qui peut exécuter le notebook jupyter de l'extérieur est apparue, donc j'aimerais l'utiliser.
pip install papermill
La structure des dossiers est la suivante. Dans le cahier que ʻinput.ipynb veut exécuter, écrivez le code d'exécution dans
main.py`.
work/
├ main.py
└ input.ipynb
Le contenu de ʻinput.ipynb` est très simple comme suit.
Ici, la première cellule est étiquetée avec «paramètres». Sélectionnez «View-Cell Toolbar --Tags» dans le menu pour afficher la zone de texte en haut à droite de la cellule. Entrez «paramètres» ici et cliquez sur «Ajouter une balise» pour ajouter la balise. papermill peut aller dans la cellule avec la balise parameters
dans le cahier et réécrire les variables dans la cellule.
Pour exécuter avec l'API python: Le bloc-notes après exécution est affiché sous la forme . / Output.ipynb
.
main.py
import papermill as pm
pm.execute_notebook(
'./input.ipynb',
'./output.ipynb',
parameters = dict(alpha=0.6, ratio=0.1)
)
Exécutez avec python main.py
.
$ python main.py
Executing: 100%|████████████████████████████████| 3/3 [00:01<00:00, 1.80cell/s]
Quand j'ouvre . / Output.ipynb
, cela ressemble à ceci: Une cellule étiquetée avec ʻInjected-parameters` a été ajoutée, écrasant les paramètres.
Pour exécuter à partir de la CLI: Papermill jugera la valeur booléenne et numérique sans autorisation.
$ papermill ./input.ipynb ./output.ipynb -p alpha 0.6 -p ratio 0.1
Input Notebook: ./input.ipynb
Output Notebook: ./output.ipynb
Executing: 100%|████████████████████████████████| 3/3 [00:01<00:00, 2.67cell/s]
Les paramètres peuvent également être spécifiés dans le fichier yaml.
work/
├ main.py
├ input.ipynb
└ parameters.yaml
Dans la CLI, procédez comme suit:
papermill ./input.ipynb ./output.ipynb -f ./parameters.yaml
Vous pouvez également l'enregistrer dans le stockage cloud. Dans ce cas, vous devez également installer l'option.
pip install papermill[all]
Remplacez la partie . / Output.ipynb
par la destination cloud. Voici un exemple d'AWS S3. Il peut être exécuté s'il est configuré par CLI.
papermill ./input.ipynb s3://xxxxxxxxxx/output.ipynb -f ./parameters.yaml
Si la destination de sortie est la même que l'entrée, elle sera écrasée.
papermill ./input.ipynb ./input.ipynb -f ./parameters.yaml
Répéter plusieurs fois ne fera qu'écraser les cellules dans ʻInjected-parameters`, donc les paramètres seront réécrits correctement.
Il semble intéressant de pouvoir créer un écran de gestion avec flask et gérer l'apprentissage.
Recommended Posts