この記事はなに?
JupyterNotebook を pythonスクリプトのように実行できる pythonライブラリ Pepermill について自分が調べたものをまとめたものです。
公式
Papermillとは
PepermillはPythonベースのオープンソースのパッケージで、JupyterNotebookを実行し、Notebookのパラメータを変更して、複数のバージョンを生成できるようにするツールです。
インストール
pip install papermill
Jupyter Notebookを実行する方法
パラメータの設定
まずは実行する Notebookを作成し、以下の手順で変数を定義します。
こうすることで、変数をPepermillのパラメータとすることができます。
papermillはnotebook内のparametersタグが付いたをセルを探しに行って、セル内の変数を書き換えることができます。
Notebookの実行
Pepermillを使用してNotebookを実行するには、以下のコマンドを使用します。
papermill input_notebook.ipynb output_notebook.ipynb -p parameter1 value1 -p parameter2 value2 ...
- input_notebook.ipynb 入力ノートブックのファイルパス
- output_notebook.ipynbは出力ノートブックのファイルパス
- -p でノートブック内のパラメータの値を指定できます。
コマンドを実行すると、入力ノートブックに設定したパラメータの値を -p で指定した値に書き換えて実行し、出力ノートブックに結果を保存することができます。
pythonスクリプトからNotebookを実行
以下のように, pythonスクリプトから実行することもできます。
import papermill as pm
# パラメータを辞書形式で定義
parameters = {"param1": 10, "param2": "hello"}
# notebookを実行
pm.execute_notebook(
input_path='input.ipynb',
output_path='output.ipynb',
parameters=parameters
)
まとめ
異なるパラメータセットを使用して同じノートブックを繰り返し実行する必要がある場合は、Pepermillを使うと便利そうです。
例えばグラフ作成に使用する変数をパラメータ化し、異なるグラフや表を簡単に生成するなどの利用法が考えられそうです。
また、POCで使用したNotebookをそのまま機械学習、データ分析のパイプラインに使用したりもできそうです。