如何拆分TensorFlow Lite Model Maker的DataLoader为训练集与测试集用于目标检测
数据集拆分及训练方案
首先将你加载得到的全量DataLoader对象赋值给变量后,直接调用内置的split方法即可完成训练集、测试集拆分,完整操作流程如下:
1. 数据集拆分代码
# 赋值全量数据集 all_data = object_detector.DataLoader.from_pascal_voc( image_loc, annotations_loc, label_map={1: "person", 2: "notperson"} ) # 按9:1比例拆分训练集和测试集,可自行调整拆分比例 train_data, test_data = all_data.split(0.9)
2. 拆分后训练模型
拆分完成后直接传入对应参数即可启动efficientdet-lite0的训练,示例代码如下:
# 加载efficientdet-lite0模型配置 spec = object_detector.EfficientDetLite0Spec() # 初始化模型并训练 model = object_detector.create( train_data, model_spec=spec, validation_data=test_data, epochs=50, # 可根据训练效果调整轮次 batch_size=8 ) # 训练完成后在测试集上评估效果 model.evaluate(test_data)
如果要切换其他efficientdet-lite系列模型,只需把EfficientDetLite0Spec替换为对应版本即可,比如EfficientDetLite1Spec、EfficientDetLite2Spec。
注意事项
- 拆分比例可根据数据集规模调整,数据量较大时可选择8:2的训练测试拆分比例,数据量较小时可适当提高训练集占比保证训练效果
split方法默认会先随机打乱数据集再拆分,无需手动做打乱处理- 需要固定拆分结果复现实验时,可传入随机种子参数,例如
all_data.split(0.9, random_seed=42),固定种子后每次运行拆分结果完全一致
内容的提问来源于stack exchange,提问作者Ananda Roy
相关产品推荐
相关产品推荐

