Как получить путь к путевому файлу Python из хранилища BLOB-объектов Azure?

Я пытаюсь сделать некоторые пользовательские манипуляции с torch.utils.data.DataLoader в AzureML, но не могу заставить его создать экземпляр непосредственно из моего 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_DATAREFERENCE_my_ds", но я не могу понять, как перейти от этого к pathlib.Path как ожидается, конструктор ListDataset, Вещи, которые я пытался включить 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) 

кажется, создать законный объект.

0 ответов

Возможно, вы можете попробовать использовать класс DataPath. Он предоставляет такие атрибуты, как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

Приведенный выше код сгенерировал для меня ошибку, удалив круглые скобки после того, как экземпляр DataPath, как показано ниже, запустил код.

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

Спасибо за фрагмент кода, очень полезно!

Другие вопросы по тегам