如何在Papermill中使用Python词典参数



我想传递一个变量中的所有参数。为了实现这一目标,我在Python客户端通过一本词典,用于Papermill:

params = {"aviral":"srivastava"}
pm.execute_notebook( 'path/to/input.ipynb', 'path/to/output.ipynb', parameters = params )

现在,我想从bash中运行对应命令。它在文档中指出:

papermill local/input.ipynb s3://bkt/output.ipynb -p alpha 0.6 -p l1_ratio 0.1

,但没有任何地方可以通过词典传递。

我尝试了许多排列和组合,例如:

papermill test_params.ipynb params_output.ipynb -p params {"aviral":"srivastava"}

papermill test_params.ipynb params_output.ipynb -p params '{"aviral":"srivastava"}'

我还阅读以通过格式传递dict'{"aviral":"srivastava"}',然后JSON.LOADS可以完成工作。但是我没有自由来转换投入。它必须立即在脚本中使用。

只是一个最小脚本,可以实际检查传递的变量的类型:

params = {} # I tag this with `parameter`
print(type(params))
print(params)

是的,我看到使用PaperMill运行时的参数变量已更改,但是传递的值是一个完整的字符串。

,因为在您的情况下,您无法直接修改模板笔记本以解析字符串输入,如何使用python脚本,然后执行papermill?这使您可以将字符串解析到Python词典中,然后将其传递给纸卷执行。您也可以以相同的方式通过笔记本名称。

您是否尝试过使用yaml字符串或文件?

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

来自文档:

"当使用yaml通过-y,-b或-f传递参数时,参数值可以为arrays或 dictionaries "

https://papermill.readthedocs.io/en/latest/usage-execute.html

相关内容

  • 没有找到相关文章

最新更新