从 Azure ML 检索生成的数据

问题描述 投票:0回答:1

我在尝试从成功的 Azure ML 管道作业下载 JSON 文件时遇到了非常困难的情况。在下图中,您可以看到保存的文件的内容。然而,使用 Python SDK,无论是在工作中还是在运行中 - 它向我显示的唯一文件是日志。

enter image description here

一些尝试看起来像:

run = Run.get(ws, job_name)
run.download_file(name=f"{output_file_name}", output_file_path=os.path.join(output_dir, output_file_name))

ml_client.jobs.download(
    name=job.name,
    download_path='./',
    output_name="portfolio_weights.json"
)

这些不会返回任何内容或出错。 我会注意到,数据输出中有该文件,但如果我在 blobstore 中打开它,它不会显示任何结果。

保存文件的管道作业代码如下所示:

    output_dir = os.environ.get("AZUREML_OUTPUT_DIRECTORY",'outputs')
output_file_path = os.path.join(output_dir,'portfolio_weights.json')

# Convert portfolio weights to a list and save as JSON
portfolio_weights_list = portfolio_weights.tolist()
with open(output_file_path, 'w') as f:
    json.dump(portfolio_weights_list, f)

run.log("portfolio_weights_path", output_file_path)

run.upload_file(name="portfolio_weights.json", path_or_stream=output_file_path)

关于我在这里可能做错了什么有什么想法吗?

azure-machine-learning-service azureml-python-sdk
1个回答
0
投票

下载工件的方法有很多,但最重要的是您需要正确给出作业名称。

由于单个作业由许多子作业组成,因此您正在查找的输出将来自该子作业。

这是我正在做的示例工作。 enter image description here

子作业

train_pytorch_model
有输出,因此获取该作业名称或运行 ID。

enter image description here

和输出

enter image description here

要下载完整的输出文件夹,请使用以下代码。

ml_client.jobs.download(name="ce359cbb-1d68-4fc6-bde5-43ff35620897",download_path="./")

输出和日志将下载到

artifacts
文件夹。

enter image description here

或者使用您下载的

mlflow

import  mlflow
mlflow.artifacts.download_artifacts(run_id="ce359cbb-1d68-4fc6-bde5-43ff35620897", artifact_path="trained_model_outputs/_samples.json",dst_path="./outputs")

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.