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

Azure ML中MLTable YAML的read_from_directory未识别错误解决

解决Azure ML中MLTable YAML读取图像文件夹标签的问题

错误原因

你使用的read_from_directory不属于MLTable YAML的标准转换指令,导致架构验证失败。正确的做法是先读取所有图像文件,再从文件路径中提取父文件夹名称作为标签。

修正后的MLTable配置及代码

以下是可以正确识别文件夹作为标签的配置:

type: mltable
paths:
  - pattern: ./**/*.jpg  # 匹配所有子文件夹下的jpg图片,根据实际格式调整(如png、bmp)
transformations:
  - read_files:
      format: image
      column_name: image
  - parse_path:
      column: image
      include:
        - folder_name
      rename_columns:
        folder_name: label

对应的Python代码:

mltable_yaml = """
type: mltable
paths:
  - pattern: ./**/*.jpg  # 替换为你的图片格式,支持多格式如 *.{jpg,png}
transformations:
  - read_files:
      format: image
      column_name: image
  - parse_path:
      column: image
      include:
        - folder_name
      rename_columns:
        folder_name: label
"""

# 创建目录并保存MLTable文件
import os
mltable_dir = "image_data"
os.makedirs(mltable_dir, exist_ok=True)
with open(os.path.join(mltable_dir, "MLTable"), "w") as f:
    f.write(mltable_yaml)

from azure.ai.ml.entities import Input
training_data = Input(
    type="mltable",
    path=mltable_dir
)

关键配置说明

  1. 路径匹配:使用pattern: ./**/*.jpg递归匹配OK和NOK文件夹下的所有图片,无需单独指定每个文件夹,适配更灵活的目录结构。
  2. 读取图像:read_files指定format: image,将图像数据加载到image列中。
  3. 提取标签:parse_path从图像文件的路径中提取父文件夹名称(即OK/NOK),并将该列重命名为label,实现文件夹到标签的映射。

额外验证步骤

你可以在本地加载MLTable验证数据是否正确:

import mltable
tbl = mltable.load(mltable_dir)
df = tbl.to_pandas_dataframe()
print(df.head())  # 检查是否包含image和label列,label值为OK或NOK

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 01:30:14