![](/img/trans.png)
[英]Is it possible to halt execution of a Jupyter notebook using papermill?
[英]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.