我想使用papermill作为数据科学工作流的一部分来记录实验。关键的想法是,输出笔记本应该作为一个独特的工件存储--实验的一个不变的记录。因此,我希望输出文件名为--一个唯一的文件名,例如experiment_<hash>.ipynb。如何在linux上自动完成此操作?从纸厂文档来看,我必须指定确切的输出文件名,如下
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我想在automatically.的papermill调用中这样做。一种手动的方法是
$ echo cat input.ipynb | md5sum
22f69c25ee3a855b17fead21e702668a
$ papermill local/input.ipynb s3://bkt/output_22f69c25ee3a855b17fead21e702668a.ipynb -f parameters.yaml但我不想手工剪切和粘贴。
发布于 2020-02-12 10:39:02
您可以使用命令替换,例如:
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发布于 2022-08-06 23:32:35
您还可以编写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.pyhttps://stackoverflow.com/questions/59075175
复制相似问题