如何让Vertex AI的ImageDatasetImportDataOp正确更新数据集标签?
Vertex AI图像数据集导入标签失效问题解决
问题背景
在Vertex AI流水线中执行图像数据集更新时,用以下代码导入新增图像:
ds_op = gcc_aip.ImageDatasetImportDataOp( project=project, dataset=get_dataset_id_op.outputs['dataset'], gcs_source=DATASET_PATH, import_schema_uri=aiplatform.schema.dataset.ioformat.image.single_label_classification )
已更新包含图像路径和标签的CSV并上传至GCS,图像成功导入,但所有标签被忽略,统一标记为Unlabeled。尝试用data_item_labels参数修复时,无论传文件还是JSON对象,要么报JSON解析错误,要么提示"Invalid data_item_labels."。
解决步骤
1. 修复CSV文件格式(核心解决分类标签失效)
使用single_label_classification schema时,CSV必须严格遵循规则:
- 首行表头必须是
GCS_FILE_PATH,LABEL - 每行格式为
gs://你的存储桶路径/图像文件名.jpg,你的标签名 - 标签必须是数据集已存在的类别,若要新增类别,需先在Vertex AI数据集中创建对应标签
2. 正确使用data_item_labels参数(仅用于批量添加元标签)
这个参数不是用来替代CSV中的分类标签,而是给所有导入的图像统一添加自定义元标签,必须传入Python字典对象,不能传文件路径或字符串:
ds_op = gcc_aip.ImageDatasetImportDataOp( project=project, dataset=get_dataset_id_op.outputs['dataset'], gcs_source=DATASET_PATH, import_schema_uri=aiplatform.schema.dataset.ioformat.image.single_label_classification, # 传入字典形式的自定义标签 data_item_labels={"import_batch": "202405", "source": "web_crawl"} )
3. 常见排查点
- 检查CSV编码:用UTF-8无BOM格式保存,避免乱码导致标签解析失败
- 验证GCS权限:确保流水线使用的服务账号有对应存储桶的读取权限
- 确认schema URI:不要写错成多标签分类的schema,必须和数据集类型匹配
内容的提问来源于stack exchange,提问作者schoon
相关产品推荐
相关产品推荐

