我正在尝试在 Azure ML 中创建一个数据集,其中数据源是 Blob 存储中的多个文件(例如图像)。你如何正确地做到这一点?
这是我按照 UI 中记录的方法得到的错误
当我在 UI 中创建数据集并选择 blob 存储和目录时,dirname
在资源管理dirname/**
器选项卡中找不到文件时出现错误ScriptExecution.StreamAccess.NotFound: The provided path is not valid or the files could not be accessed.
当我尝试在使用选项卡中使用代码片段下载数据时,我得到错误:
from azureml.core import Workspace, Dataset
# set variables
workspace = Workspace(subscription_id, resource_group, workspace_name)
dataset = Dataset.get_by_name(workspace, name='teststar')
dataset.download(target_path='.', overwrite=False)
Error Message: ScriptExecutionException was caused by StreamAccessException.
StreamAccessException was caused by NotFoundException.
Found no resources for the input provided: 'https://mystoragename.blob.core.windows.net/data/testdata/**'
当我只选择一个文件而不是dirname
或者dirname/**
然后一切正常。AzureML 是否真的支持由多个文件组成的数据集?
这是我的设置:
我有一个带有一个容器的数据存储data
。testdata
里面有一个包含testfile1.txt
and的目录testfile2.txt
。
在 AzureML 中,我创建了一个数据存储testdatastore
,并在其中选择了data
我的数据存储中的容器。
然后在 Azure ML 中,我从数据存储区创建一个数据集,选择文件数据集和上面的数据存储区。然后我可以浏览文件,选择一个文件夹并选择应该包含子目录中的文件。testdata/**
然后,这会创建如上所述不起作用的路径。
在 python 中创建数据集和数据存储时,我遇到了同样的问题:
import azureml.core
from azureml.core import Workspace, Datastore, Dataset
ws = Workspace.from_config()
datastore = Datastore(ws, "mydatastore")
datastore_paths = [(datastore, 'testdata')]
test_ds = Dataset.File.from_files(path=datastore_paths)
test_ds.register(ws, "testpython")