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

如何在TFLite Model Maker中拼接不同目录的数据集?

合并两个DataLoader数据集的方法

由于TFLite Model Maker的object_detector.DataLoader没有内置的拼接方法,你可以通过以下步骤手动合并两个数据集:

  1. 合并内部的TensorFlow Dataset对象
  2. 基于合并后的数据集重新构建DataLoader实例,并同步必要的属性

具体代码如下:

from tflite_model_maker import object_detector

DIR_IMAGES_TRAIN1="/data_dir1"
DIR_IMAGES_TRAIN2="/data_dir2"
DIR_ANNOT_TRAIN1="/annot_dir1"
DIR_ANNOT_TRAIN2="/annot_dir2"
LABEL_MAP = ["custom_object"]

train_data = object_detector.DataLoader.from_pascal_voc(DIR_IMAGES_TRAIN1, DIR_ANNOT_TRAIN1, LABEL_MAP)
train_data2 = object_detector.DataLoader.from_pascal_voc(DIR_IMAGES_TRAIN2, DIR_ANNOT_TRAIN2, LABEL_MAP)

# 合并两个内部的TensorFlow Dataset
combined_dataset = train_data.dataset.concatenate(train_data2.dataset)

# 构建新的DataLoader实例
combined_train_data = object_detector.DataLoader(
    dataset=combined_dataset,
    label_map=train_data.label_map,
    size=train_data.size + train_data2.size,
    _groundtruth_boxes_key=train_data._groundtruth_boxes_key,
    _groundtruth_classes_key=train_data._groundtruth_classes_key
)

关键说明:

  • dataset:直接调用TensorFlow Dataset的concatenate方法合并两个数据集的核心数据
  • label_map:两个原数据集使用相同的标签映射,直接复用其中一个即可
  • size:合并后的数据集总大小为两个原数据集大小之和
  • _groundtruth_boxes_key和_groundtruth_classes_key:这两个是DataLoader内部用于标识检测框和类别属性的键,必须与原数据集保持一致,直接复制即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 22:20:27