TensorFlow Lite Model Maker目标检测验证数据加载异常报错求助
解决TensorFlow Lite Model Maker验证集加载错误的建议
问题核心分析
错误提示validation_data (0)说明你的验证集实际上没有被成功加载,和你实际的图片数量无关,优先排查数据加载环节,再处理batch_size问题。
具体解决步骤
先确认验证集是否真的被加载
在创建val_data后添加一行代码,打印实际加载的样本数量:print(f"验证集加载样本数: {len(val_data)}")如果输出是0,说明数据加载失败,往下看排查方向;如果输出大于0,直接看第3步。
排查验证集路径与标注文件
- 检查路径正确性:确认脚本运行的当前目录下,
./validate确实存在,且里面有图片和对应的XML标注文件。比如你在project/目录下运行脚本,那project/validate/必须存在。 - 确认标注文件匹配:Pascal VOC格式要求每张图片(如
img1.jpg)对应一个同名的XML文件(img1.xml),且XML中的<object>标签里的<name>必须是你指定的['person','laptop','cup','bottle']中的某一个,否则该样本会被忽略。 - 检查XML格式合法性:确保XML没有语法错误,比如标签未闭合、字段缺失等,可以用XML校验工具检查。
- 检查路径正确性:确认脚本运行的当前目录下,
手动指定evaluate的batch_size
即使验证集加载正常,model.evaluate()可能默认使用模型规格(efficientdet_lite0)的默认batch_size(64),而不是你训练时设置的4。直接在evaluate时指定batch_size:model.evaluate(val_data, batch_size=4)这样只要验证集样本数≥4就能正常运行。
验证数据加载细节
如果还是有问题,可以遍历验证集查看具体数据:for image, label in val_data: print(f"图片形状: {image.shape}, 标签: {label}") break如果没有输出,说明数据加载逻辑确实有问题,需要重新检查数据集的组织结构。
内容的提问来源于stack exchange,提问作者bbartling
相关产品推荐
相关产品推荐

