You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Azure ML Notebook中正确引用Blob容器文件夹训练图像分类模型

解决Azure ML Notebook中用TensorFlow加载Blob容器图像数据的问题

核心问题原因

TensorFlow的tf.keras.preprocessing.image_dataset_from_directory仅支持本地文件系统路径或云存储的挂载路径,无法直接解析Azure ML专属的azureml://协议路径,这是你尝试三种方式均失败的核心原因。

正确操作步骤

  • 挂载Azure Blob存储到计算实例本地路径
    在Notebook中通过Azure ML SDK将Blob容器挂载到计算实例的本地目录,让TensorFlow能像访问本地文件一样读取数据。示例代码:

    from azureml.core import Workspace, Datastore
    
    # 加载当前工作区
    ws = Workspace.from_config()
    
    # 获取目标Blob对应的Datastore(替换为你的Datastore实际名称)
    datastore = Datastore.get(ws, datastore_name='workspaceblobstore')
    
    # 将Datastore挂载到计算实例的临时路径
    mount_context = datastore.mount('/tmp/azureml_blob_mount')
    mount_context.start()
    
    # 验证挂载结果
    import os
    print(os.listdir('/tmp/azureml_blob_mount'))
    
  • 使用挂载后的本地路径加载数据
    挂载完成后,直接传入挂载路径下的Train/Test文件夹路径即可:

    import tensorflow as tf
    
    # 定义训练集和测试集的本地挂载路径
    train_dir = '/tmp/azureml_blob_mount/Train'
    test_dir = '/tmp/azureml_blob_mount/Test'
    
    # 加载训练数据集
    train_dataset = tf.keras.preprocessing.image_dataset_from_directory(
        train_dir,
        image_size=(224, 224),
        batch_size=32,
        label_mode='categorical'  # 适配9类分类任务
    )
    
    # 加载测试数据集
    test_dataset = tf.keras.preprocessing.image_dataset_from_directory(
        test_dir,
        image_size=(224, 224),
        batch_size=32,
        label_mode='categorical'
    )
    
  • 训练结束后卸载挂载(可选)
    完成训练后可卸载挂载释放计算实例资源:

    mount_context.stop()
    

关键注意事项

  • 权限验证:确保计算实例拥有Blob存储的访问权限,自定义Datastore需确认存储账户密钥或SAS令牌配置正确。
  • 路径大小写:Azure Blob存储路径区分大小写,代码中路径需与容器内文件夹名称完全匹配。
  • 磁盘空间:若图像数据量较大,需确认计算实例临时磁盘空间足够容纳挂载的数据。

内容的提问来源于stack exchange,提问作者user3043636

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 22:17:06