在计算目标上执行训练脚本期间,我们正尝试从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)
重要注意事项:数据集已注册到数据湖中的路径,该路径包含许多子文件夹(以及子子文件夹,..),这些子文件夹包含大约170Kb的小文件。
注意:我可以在几分钟内使用az copy
或Storage Explorer将完整的数据集下载到本地计算机。同样,在文件夹阶段使用通配符**定义数据集以扫描子文件夹:datalake/relative/path/to/folder/**
这是一个已知问题吗?如何提高传输速度?
谢谢!
[DataTransferStep创建一个在其间传输数据的Azure ML管道步骤。
请遵循下面的DataTransferStep类。https://docs.microsoft.com/en-us/python/api/azureml-pipeline-steps/azureml.pipeline.steps.data_transfer_step.datatransferstep?view=azure-ml-py
编辑为更具答案的样式:
包括以下内容将很有帮助:您正在使用哪个版本的azureml-core和azureml-dataprep SDK,您正在作为计算实例运行哪种类型的VM,以及哪种类型的文件(例如jpg?txt?)数据集正在使用。另外,您想通过将完整的数据集下载到计算中来实现什么?
[当前,计算实例映像随附预装了1-2个月的azureml-core 1.0.83和azureml-dataprep 1.1.35。您可能甚至使用了较旧的版本。您可以通过在笔记本中运行来尝试升级:
%pip install -U azureml-sdk
您甚至可以尝试安装experimental version.
%pip install -U --pre azureml-sdk
如果您看不到方案的任何改进,则可以在官方文档页面上提交问题,以找人帮助调试您的问题,例如FileDataset的参考页。