【问题标题】:Execute a Jupyter notebook with papermill and output a unique filename用 papermill 执行一个 Jupyter notebook 并输出一个唯一的文件名
【发布时间】:2020-02-12 18:39:02
【问题描述】:

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

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 input.ipynb s3://bkt/output_$(date "+%Y%m%d%H%M%S").ipynb
  • 像你一样添加当前日期和时间是我通常做的。

标签: python bash jupyter-notebook papermill


【解决方案1】:

您可以使用命令替换,例如:

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

【讨论】:

    猜你喜欢
    • 2021-04-10
    • 2018-09-08
    • 1970-01-01
    • 2010-12-14
    • 1970-01-01
    • 1970-01-01
    • 2017-06-08
    • 1970-01-01
    • 2018-03-30
    相关资源
    最近更新 更多