3

在计算目标上执行的训练脚本期间,我们尝试从 ADLS2 数据存储下载已注册的数据集。问题是使用以下方法将〜1.5Gb(分成〜8500个文件)下载到计算目标需要几个小时:

from azureml.core import Datastore, Dataset, Run, Workspace

# Retrieve the run context to get Workspace
RUN = Run.get_context(allow_offline=True)

# Retrieve the workspace
ws = RUN.experiment.workspace

# Creating the Dataset object based on a registered Dataset
dataset = Dataset.get_by_name(ws, name='my_dataset_registered')

# Download the Dataset locally
dataset.download(target_path='/tmp/data', overwrite=False)

重要说明:数据集注册到 Datalake 中的路径,该路径包含许多子文件夹(以及子子文件夹,..),其中包含大约 170Kb 的小文件。

注意:我可以在几分钟内使用az copyStorage Explorer 将完整的数据集下载到本地计算机。此外,数据集是在文件夹阶段定义的,带有用于扫描子文件夹的 ** 通配符:datalake/relative/path/to/folder/**

这是一个已知问题吗?如何提高传输速度?

谢谢 !

4

2 回答 2

3

编辑为更像答案:

包括以下内容会很有帮助:您正在使用什么版本的 azureml-core 和 azureml-dataprep SDK,您正在作为计算实例运行什么类型的 VM,以及您的数据集是什么类型的文件(例如 jpg?txt?)使用。另外,您想通过将完整的数据集下载到您的计算机来实现什么?

目前,计算实例映像预装了 azureml-core 1.0.83 和 azureml-dataprep 1.1.35,它们已使用 1-2 个月。您可能正在使用更旧的版本。您可以通过在笔记本中运行来尝试升级:

%pip install -U azureml-sdk

如果您没有看到对您的方案的任何改进,您可以在官方文档页面上提交问题,让某人帮助调试您的问题,例如FileDataset的参考页面。

(于 2020 年 6 月 9 日编辑,删除了对实验版本的提及,因为这不再发生)

于 2020-03-11T02:52:07.880 回答
-1

DataTransferStep 创建一个在其间传输数据的 Azure ML Pipeline 步骤。

请按照以下 DataTransferStep 类。 https://docs.microsoft.com/en-us/python/api/azureml-pipeline-steps/azureml.pipeline.steps.data_transfer_step.datatransferstep?view=azure-ml-py

于 2020-03-11T06:30:37.163 回答