如何通过 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 通过雅虎财经获取股票数据

使用python通过zabbix api获取监控项历史数据示例

使用python通过zabbix api获取监控项历史数据示例

如何通过 API 获取我的 PayPal 账户的交易历史

如何通过API从Hipchat获取房间的所有消息历史记录?

如何下载股票的历史收盘价 股票历史收盘价下载方法