[PYTHON] J'ai essayé le moulin à papier

introduction

"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.

référence

environnement

procédure

Installation

pip install papermill

Courir

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.

image.png

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.

image.png

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

prime

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.

en conclusion

Il semble intéressant de pouvoir créer un écran de gestion avec flask et gérer l'apprentissage.

Recommended Posts

J'ai essayé le moulin à papier
J'ai essayé de gratter
J'ai essayé PyQ
J'ai essayé AutoKeras
J'ai essayé django-slack
J'ai essayé Django
J'ai essayé spleeter
J'ai essayé cgo
J'ai essayé d'utiliser paramétré
J'ai essayé d'utiliser argparse
J'ai essayé d'utiliser la mimesis
J'ai essayé d'utiliser anytree
J'ai essayé d'exécuter pymc
J'ai essayé le spoofing ARP
J'ai essayé d'utiliser aiomysql
J'ai essayé d'utiliser Summpy
J'ai essayé Python> autopep8
J'ai essayé d'utiliser coturn
J'ai essayé d'utiliser Pipenv
J'ai essayé d'utiliser matplotlib
J'ai essayé d'utiliser "Anvil".
J'ai essayé d'utiliser Hubot
J'ai essayé d'utiliser ESPCN
J'ai essayé PyCaret2.0 (pycaret-nightly)
J'ai essayé d'utiliser openpyxl
J'ai essayé le deep learning
J'ai essayé AWS CDK!
J'ai essayé d'utiliser Ipython
J'ai essayé d'utiliser PyCaret
J'ai essayé d'utiliser cron
J'ai essayé la mapview de Kivy
J'ai essayé d'utiliser ngrok
J'ai essayé d'utiliser face_recognition
J'ai essayé d'utiliser Jupyter
J'ai essayé de déplacer EfficientDet
J'ai essayé la programmation shell
J'ai essayé d'utiliser doctest
J'ai essayé Python> décorateur
J'ai essayé d'exécuter TensorFlow
J'ai essayé Auto Gluon
J'ai essayé d'utiliser du folium
J'ai essayé d'utiliser jinja2
J'ai essayé AWS Iot
J'ai essayé l'optimisation bayésienne!
J'ai essayé d'utiliser du folium
J'ai essayé d'utiliser la fenêtre de temps
J'ai essayé fp-growth avec python
J'ai essayé la classification d'image d'AutoGluon
J'ai essayé d'apprendre PredNet
J'ai essayé Learning-to-Rank avec Elasticsearch!
[J'ai essayé d'utiliser Pythonista 3] Introduction
J'ai essayé d'utiliser easydict (mémo).
J'ai essayé d'organiser SVM.
J'ai essayé la reconnaissance faciale avec Face ++
J'ai essayé le clustering avec PyCaret
J'ai essayé d'utiliser BigQuery ML
J'ai essayé "K-Fold Target Encoding"