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

TensorFlow分类类别数量限制及6类图像分类显示异常咨询

解决TensorFlow图像分类中label_image仅显示5类的问题

这问题我之前碰到过好几次,大概率是这几个点没注意到,给你一步步排查解决:

1. 先检查label_image的默认显示限制(最常见的坑)

默认的label_image.py脚本只会输出置信度最高的前5个预测结果,不是模型只能识别5类!你只要在运行脚本时手动指定显示全部6个类别就行:

python label_image.py --num_top_predictions 6 --image=你的测试图片路径 --graph=retrain生成的模型路径 --labels=retrain生成的labels.txt路径

Windows环境下把路径换成你本地的实际路径即可,比如--image=tf_files/pressure_ulcers/Deep_Tissue/test.jpg这种。

2. 确认retrain生成的labels.txt包含全部6类

找到retrain脚本生成的labels.txt文件(如果没指定--output_labels参数,默认在训练输出的目录里,比如tf_files/training_summaries下的子目录),打开数一下行数是不是6行,对应你的6个类别:Deep_Tissue、Stage_1、Stage_2、Stage_3、Stage_4、Unstageable。

  • 如果这里只有5行,说明retrain时跳过了一个类别,大概率是这个类别的图片数量低于retrain的默认阈值(默认每个类别至少10张图)。你可以检查对应类别的图片数量,或者在retrain时加参数放宽限制:
    python retrain.py --minimum_images_per_class 1 --image_dir=tf_files/pressure_ulcers
    
    把1改成你需要的最小数量,确保6个类别都被纳入训练。

3. 验证retrain的训练日志

回头看retrain时的终端输出,找类似这样的日志行:

Found X images belonging to 6 classes.
如果这里显示的是5 classes,那说明retrain确实没识别到第6个类别,可能是:

  • 那个类别目录里没有有效图片(比如都是损坏的、TensorFlow不支持的格式,比如WebP);
  • 目录路径写错了,或者目录名有特殊字符(不过你换组合测试过,这个可能性低)。
    你可以手动打开对应目录,检查图片能不能正常打开,格式是不是JPG/PNG这类支持的格式。

4. 检查label_image的代码逻辑(兜底方案)

如果上面的方法都没用,打开label_image.py看看有没有限制输出数量的代码,比如:

num_top_predictions = args.num_top_predictions or 5

如果有,要么运行时加--num_top_predictions 6参数覆盖,要么直接把默认值5改成6,保存后再运行脚本。

按这个顺序排查,基本能解决问题,我之前帮同事处理过几乎一样的情况,就是label_image默认只显示前5个,改个参数就搞定了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:43:40