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

如何在Jupyter Notebook中加载Vertex AI导出的JSONL图像标注数据集

修改Vertex AI训练代码加载导出的JSONL标注数据集实现训练

一、读取并解析JSONL标注文件

导出的JSONL文件存储在GCS上,可直接通过文件系统工具读取并解析每条样本的图像路径与标签:

import json
import gcsfs

# 初始化GCS文件系统客户端
fs = gcsfs.GCSFileSystem()

# 指定JSONL文件的GCS路径
jsonl_gcs_path = "gs://your-bucket/your-dataset-path/annotations.jsonl"

# 存储解析后的图像-标签对
dataset_samples = []

# 逐行解析JSONL内容
with fs.open(jsonl_gcs_path, 'r') as file:
    for line in file:
        sample_data = json.loads(line.strip())
        # 提取图像的GCS地址
        image_uri = sample_data['imageGcsUri']
        # 提取分类标注的类别名称
        category_label = sample_data['classificationAnnotation']['displayName']
        dataset_samples.append((image_uri, category_label))

二、适配训练代码的数据加载流程

将解析后的样本转换为模型训练可用的数据集格式,替换原样例中加载Vertex AI标准数据集的逻辑:

1. 图像预处理与数据集构建

以TensorFlow为例,实现图像加载、预处理并构建训练/验证数据集:

import tensorflow as tf

def preprocess_image(image_uri):
    # 从GCS读取图像文件
    image_bytes = tf.io.read_file(image_uri)
    # 根据图像格式解码(PNG/JPG)
    image = tf.image.decode_png(image_bytes, channels=3)
    # 调整图像尺寸至模型输入要求
    image = tf.image.resize(image, [224, 224])
    # 应用对应模型的预处理规则(如MobileNetV2的预处理)
    image = tf.keras.applications.mobilenet_v2.preprocess_input(image)
    return image

# 拆分图像路径与标签列表
image_uris = [sample[0] for sample in dataset_samples]
labels = [sample[1] for sample in dataset_samples]

# 将字符串标签转为数字编码
label_mapping = {label: idx for idx, label in enumerate(set(labels))}
encoded_labels = [label_mapping[label] for label in labels]

# 构建TensorFlow数据集
tf_dataset = tf.data.Dataset.from_tensor_slices((image_uris, encoded_labels))
# 并行映射图像预处理逻辑
tf_dataset = tf_dataset.map(lambda uri, lbl: (preprocess_image(uri), lbl), num_parallel_calls=tf.data.AUTOTUNE)

# 划分训练/验证集并做批处理
train_split = int(0.8 * len(dataset_samples))
train_dataset = tf_dataset.take(train_split).shuffle(1000).batch(32).prefetch(tf.data.AUTOTUNE)
val_dataset = tf_dataset.skip(train_split).batch(32).prefetch(tf.data.AUTOTUNE)

2. 替换原训练代码的数据源

找到原样例中使用aiplatform库加载标准数据集的代码段,直接替换为上述构建完成的train_dataset和val_dataset,模型定义、训练循环等逻辑可直接复用。

三、验证数据解析正确性

训练前抽取部分样本验证解析结果,确保图像路径与标签匹配无误:

# 验证前3条样本
for uri, lbl in dataset_samples[:3]:
    print(f"图像GCS路径: {uri}, 标注标签: {lbl}")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 02:36:31