使用TensorFlow Lite Model Maker创建目标检测模型报label_map属性错误
报错解决方案:AttributeError: 'NoneType' object has no attribute 'label_map'
错误根因
代码执行时train_data变量为None,无法调用label_map属性,本质是目标检测数据集加载失败。
修复步骤
- 第一步:修复代码换行导致的语法错误
你当前给三个数据集变量赋值的代码被拆为了两行,没有续行符导致赋值逻辑失效,变量未被正确初始化,改为以下写法:
# 合并为一行,或在第一行末尾加反斜杠续行 train_data, validation_data, test_data = object_detector.DataLoader.from_csv('/content/test_labels.csv')
- 第二步:调整CSV加载逻辑适配你的文件结构
如果你的CSV文件没有标注split字段(区分训练/验证/测试集的字段),from_csv方法不会自动返回三个数据集对象,需要手动拆分数据集:
# 先加载全量数据,再按8:1:1拆分 all_data = object_detector.DataLoader.from_csv('/content/test_labels.csv') train_data, rest_data = all_data.split(0.8) validation_data, test_data = rest_data.split(0.5)
同时确认你的CSV包含必填字段:filename、width、height、class、xmin、ymin、xmax、ymax,且filename对应的图片路径真实存在。
- 第三步:验证数据集加载结果
在创建模型前加一行代码确认数据集正常加载:
print(train_data, validation_data, test_data)
确认三个变量都不为None后,再执行模型创建逻辑即可。
内容的提问来源于stack exchange,提问作者Matthew De La Rosa
相关产品推荐
相关产品推荐

