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

TensorFlow实现EfficientNet时是否存在数据标签标注错误问题?

问题排查与解决方案

1 优先确认标签是否正确

  • 首先取消样本可视化代码的注释,运行后检查输出的9张图的标签是否和实际类别匹配,确认image_dataset_from_directory读取的标签逻辑没有问题
  • 检查代码中打印类信息的输出,确认num_classes的值为3,class_names对应你设置的三个类别。如果num_classes为1,说明你的训练集目录结构错误:image_dataset_from_directory是从train_dir下的直接子文件夹读取类别,如果你把三个类别的文件夹放在了train_dir下的另一个子文件夹中,会被识别为只有1个类别
  • 统计训练集全量标签分布,运行如下代码确认三类样本数符合你预期的12000、8000、12000:
import numpy as np
labels = []
for _, batch_label in train_ds:
    labels.extend(batch_label.numpy())
print(np.unique(labels, return_counts=True))

如果输出只有一类标签,说明你的数据集目录结构配置错误,所有样本都被识别为了同一个类别。

2 独热编码逻辑验证

你提供的独热编码代码本身没有逻辑问题,可运行如下代码确认转换后的标签格式正确:

for imgs, onehot_labels in train_ds.take(1):
    print(onehot_labels[:10])

正常输出应该包含[1,0,0]、[0,1,0]、[0,0,1]三种格式的标签,如果只有同一种格式的独热码,说明上游标签读取环节已经出错。

3 其他可能问题排查

  • 你在image_dataset_from_directory中已经指定了image_size参数,后续额外的resize操作是多余的,可删除避免不必要的性能损耗,但该操作不会导致标签错误
  • 检查你定义的img_augmentation逻辑是否存在问题,比如是否将所有输入图像处理为了完全相同的内容,导致模型只能学到单一输出
  • 如果标签确认完全正确,可先解冻部分EfficientNet的顶层参数参与训练,避免仅训练顶层时拟合能力不足或出现走捷径的情况

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 12:09:01