如何通过 python API 下载历史 Azure ML 实验运行的输出
Posted
技术标签:
【中文标题】如何通过 python API 下载历史 Azure ML 实验运行的输出【英文标题】:How can one download the outputs of historical Azure ML experiment Runs via the python API 【发布时间】:2021-05-07 05:59:02 【问题描述】:我正在尝试编写一个脚本,该脚本可以下载 Azure ML 实验的输出。事后运行。
基本上,我想知道如何通过其runId
属性(或其他标识符)获得 Run。
我知道,当我出于培训目的创建 Run 对象时,我可以访问它。我想要的是一种稍后在一个单独的脚本中重新创建这个 Run 对象的方法,可能来自一个完全不同的环境。
到目前为止,我发现了一种通过 get_runs()
函数从实验中获取 ScriptRun 对象列表的方法。但我看不到使用这些 ScriptRun 对象之一创建代表原始 Run 并允许我下载输出的 Run 对象的方法。
任何帮助表示赞赏。
【问题讨论】:
清晰简洁地提出问题和您的第一个问题! 【参考方案1】:我同意这可能会得到更好的记录,但幸运的是,这是一个简单的实现。
这是您为 azureml-sdk>=1.16.0
(对于旧方法 see my answer here)获取已提交运行的运行对象的方式
from azureml.core import Workspace
ws = Workspace.from_config()
run = ws.get_run('YOUR_RUN_ID')
一旦你有了run
对象,你就可以调用类似的方法
.get_file_names()
查看有哪些文件可用(azureml-logs/
和 logs/azureml/
中的日志也会列出)
.download_file()
下载单个文件
.download_files()
下载与给定前缀匹配的所有文件(或所有文件)
有关详细信息,请参阅Run object docs。
【讨论】:
谢谢安德斯,这很奏效。我很欣赏迅速的反应。我想我太专注于 ws -> Experiment -> run 的明显嵌套而没有考虑直接查看工作区。我认为跳过该嵌套层将帮助我找到更多我一直在寻找的东西。再次感谢 是的,新的get_run
工作区方法肯定很时髦。当您在管道的步骤之间传递数据时,请注意这是一场全新的球赛。
谢谢两位,刚刚接到任务将训练结果加载到其他地方,以前从未使用过 SDK(或一般的 Azure ML),这就是我需要的 :)以上是关于如何通过 python API 下载历史 Azure ML 实验运行的输出的主要内容,如果未能解决你的问题,请参考以下文章
使用python通过zabbix api获取监控项历史数据示例