簡體   English   中英

使用 papermill 和 output 執行一個 Jupyter notebook 一個唯一的文件名

[英]Execute a Jupyter notebook with papermill and output a unique filename

我想使用papermill作為數據科學工作流程的一部分來記錄實驗。 關鍵思想是 output 筆記本應該存儲為唯一的工件——實驗的不可變記錄。 因此,我希望 output 文件名是唯一的文件名,例如experiment_<hash>.ipynb 如何在 linux CLI 中自動執行此操作? 從papermill docs看來,我必須指定確切的 output 文件名,例如

papermill local/input.ipynb s3://bkt/output.ipynb -f parameters.yaml

而我真正想要的是

papermill local/input.ipynb s3://bkt/output_[UNIQUE HASH HERE].ipynb -f parameters.yaml

我想在papermill調用中自動執行此操作。 手動方式是

$ echo cat input.ipynb | md5sum
22f69c25ee3a855b17fead21e702668a
$ papermill local/input.ipynb s3://bkt/output_22f69c25ee3a855b17fead21e702668a.ipynb -f parameters.yaml

但我不想通過剪切和粘貼手動完成。

您可以使用命令替換,例如像這樣:

papermill local/input.ipynb s3://bkt/output_`date +%s | sha256sum | base64 | head -c 32`.ipynb -f parameters.yaml

或更新的方式

papermill local/input.ipynb s3://bkt/output_$(date +%s | sha256sum | base64 | head -c 32).ipynb -f parameters.yaml

您還可以編寫 Python 腳本並生成唯一 ID:

# run_experiment.py
import uuid
import papermill as pm

experiment_id = str(uuid.uuid4())

pm.execute_notebook('input.ipynb', f'{experiment_id}.ipynb')

然后運行它:

python run_experiment.py

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM