如何访问 azureml FileDataSet 中的文件(图像)?
How can I access files (images) in an azureml FileDataSet?
我已将一个大 (10+gb) 数据集上传到 Azure Blob 存储中,其中包含数千张图像 (jpg) 格式。
我在 Azure 机器学习服务中将 blob 容器注册为数据存储,我还注册了一个文件数据集,指向包含图像的实际 blob 容器。 (显示有 44440 张图片)。
现在,我想要 运行 一个需要读取特定图像并将其加载到图像中的笔记本(在 AzureML 中)(使用 cv2.imread()
)。但是,我似乎没有为此找到合适的文档...我看到的唯一选择是将整个数据集下载到本地临时存储中,我不想这样做(多个千兆字节)。
有没有我可以用来访问实际文件引用并将其传递给我的第 3 方方法的选项?
您可以在下面找到一些相关的代码:
# get workspace and datastore
ws = Workspace.from_config()
dstore = ws.datastores[datastore_name]
image_dataset = ws.datasets[image_dataset_name]
mounted_images = image_dataset.mount()
img = cv2.imread(mounted_images['my_file_name.jpg']) # this will not work
知道如何让它发挥作用吗?
谢谢
dataset.mount() 实际上 returns 一个具有 mount_point 属性的 MountContext。
所以:
img = cv2.imread(mounted_images.mount_point +'/my_file_name.jpg')
应该可以正常工作。
关于 Daniel 回答的额外注释。装载数据集时,将数据集引用的文件附加到目录(装载点)并使其在计算目标上可用。安装操作本身几乎是即时的,它只会在处理时加载脚本使用的部分数据(在您的情况下为 'my_file_name.jpg')。
用这种方式试试mount_text
with dataset.mount() as mount_context:
print(os.listdir(mount_context.mount_point))
这里我挂载了10k的高分辨率图片。
%%time
with dataset.mount() as mount_context:
print(os.listdir(mount_context.mount_point))
我已将一个大 (10+gb) 数据集上传到 Azure Blob 存储中,其中包含数千张图像 (jpg) 格式。
我在 Azure 机器学习服务中将 blob 容器注册为数据存储,我还注册了一个文件数据集,指向包含图像的实际 blob 容器。 (显示有 44440 张图片)。
现在,我想要 运行 一个需要读取特定图像并将其加载到图像中的笔记本(在 AzureML 中)(使用 cv2.imread()
)。但是,我似乎没有为此找到合适的文档...我看到的唯一选择是将整个数据集下载到本地临时存储中,我不想这样做(多个千兆字节)。
有没有我可以用来访问实际文件引用并将其传递给我的第 3 方方法的选项?
您可以在下面找到一些相关的代码:
# get workspace and datastore
ws = Workspace.from_config()
dstore = ws.datastores[datastore_name]
image_dataset = ws.datasets[image_dataset_name]
mounted_images = image_dataset.mount()
img = cv2.imread(mounted_images['my_file_name.jpg']) # this will not work
知道如何让它发挥作用吗?
谢谢
dataset.mount() 实际上 returns 一个具有 mount_point 属性的 MountContext。
所以:
img = cv2.imread(mounted_images.mount_point +'/my_file_name.jpg')
应该可以正常工作。
关于 Daniel 回答的额外注释。装载数据集时,将数据集引用的文件附加到目录(装载点)并使其在计算目标上可用。安装操作本身几乎是即时的,它只会在处理时加载脚本使用的部分数据(在您的情况下为 'my_file_name.jpg')。
用这种方式试试mount_text
with dataset.mount() as mount_context:
print(os.listdir(mount_context.mount_point))
这里我挂载了10k的高分辨率图片。
%%time
with dataset.mount() as mount_context:
print(os.listdir(mount_context.mount_point))