使用 papermill 执行 Jupyter notebook 并输出唯一的文件名

Execute a Jupyter notebook with papermill and output a unique filename

我想使用 papermill 作为 数据科学工作流程 的一部分来记录实验。关键思想是输出笔记本应该存储为一个独特的工件——一个不可变的实验记录。因此,我希望输出文件名是 唯一的文件名 ,例如 experiment_<hash>.ipynb。如何在 linux CLI 中自动执行此操作?从 papermill 文档看来,我必须指定确切的输出文件名,例如

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