如何从Azure blob数据存储中获取Python pathlib路径?

2024-04-24 14:28:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在AzureML中对torch.utils.data.DataLoader进行一些自定义操作,但无法直接从我的azureml.core.Datastore实例化:

ws = Workspace( # ... etc ... )
ds = Datastore.get(ws, datastore_name='my_ds')
am = ds.as_mount()

# HOW DO I GET base_path, data_file from am?

dataloader = DataLoader(
        ListDataset(base_path, data_file), #... etc...
    )

am.path()的值是“$AZUREML\u DATAREFERENCE\u my\u ds”,但我不知道如何按照构造函数对ListDataset的预期从该值转到pathlib.Path。我尝试过的东西包括Path(am.path())Path(os.environ[am.path()]),但它们似乎不起作用。你知道吗

很明显,有一些答案,因为:

script_params = {
    '--base_path': ds.as_mount(), 
    '--epochs': 30,  
    '--batch_size' : 16,  
    '--use_cuda': 'true'
}
torch = PyTorch(source_directory='./',
                        script_params=script_params,
                        compute_target=compute_target,
                        entry_script='train.py',
                        pip_packages=packages,
                        use_gpu=True) 

似乎创造了一个合法的对象。你知道吗


Tags: pathdatabasewsmyasdsetc
1条回答
网友
1楼 · 发布于 2024-04-24 14:28:30

您可以尝试使用DataPath class。它公开了path_on_datastore等属性,这可能就是您要查找的路径。你知道吗

要从DataReference对象(即变量am)构造此类,可以使用create_from_data_reference()方法。你知道吗

示例:

ds = Datastore.get(ws, datastore_name='my_ds')
am = ds.as_mount()

dp = DataPath().create_from_data_reference(am)

base_path = dp.path_on_datastore

相关问题 更多 >