如何在ML Studio中通过路径访问Azure Blob Storage中的图像数据
问题解答
1. 路径方式访问Azure Blob Storage是否可行?
完全可行,你可以通过两种核心方式实现路径式访问,替代SAS链接:
方式一:通过Azure ML数据集配置路径访问
- 在ML Studio的数据页面创建新数据集,选择
Azure Blob Storage作为数据源 - 选定目标存储账户和文件夹,优先用托管标识或服务主体完成身份验证(比SAS更稳定持久)
- 创建完成后,在Notebook或脚本中通过挂载获取本地路径:
from azureml.core import Dataset, Workspace ws = Workspace.from_config() dataset = Dataset.get_by_name(ws, name="你的图像数据集名称") mount_context = dataset.mount() mount_context.start() # 直接用路径访问文件夹内图像 image_folder_path = f"{mount_context.mount_point}/目标子文件夹"
方式二:用SDK直接挂载Blob容器
无需创建数据集,可通过azureml.fsspec将Blob容器挂载为类本地文件系统:
from azureml.fsspec import AzureMachineLearningFileSystem # 替换为你的容器名和存储账户名 fs = AzureMachineLearningFileSystem( "abfss://<容器名>@<存储账户名>.dfs.core.windows.net/" ) # 用路径遍历或读取文件 for image_file in fs.glob("/图像文件夹/*"): print(image_file)
2. 图像可视化与像素数据获取
拿到文件路径后,用常规Python库即可完成需求:
图像可视化
import matplotlib.pyplot as plt from PIL import Image # 读取单张图像 img = Image.open(f"{image_folder_path}/示例图像.jpg") # 可视化 plt.imshow(img) plt.axis("off") plt.show()
获取像素数据
import numpy as np # 转换为numpy数组,形状为(高度, 宽度, 通道数) pixel_data = np.array(img) # 查看像素信息 print(f"像素数组形状:{pixel_data.shape}") print(f"像素值范围:{np.min(pixel_data)} - {np.max(pixel_data)}")
注意事项
- 确保ML Studio的计算实例/集群拥有Blob Storage的访问权限(比如给托管标识分配
存储Blob数据读取者角色) - 挂载路径在计算实例重启后会失效,需重新执行挂载代码
内容的提问来源于stack exchange,提问作者Qdadedalus
相关产品推荐
相关产品推荐

