You need to enable JavaScript to run this app. CNN模型适配5类花卉识别训练准确率仅16% 问题求助
优惠活动
大模型
产品
解决方案
定价
更多

CNN模型适配5类花卉识别训练准确率仅16% 问题求助

你训出来只有16%准确率的核心原因,是从二分类猫狗项目迁移时,没改掉全套二分类专属配置,整个流程根本没适配5类花卉的多分类任务

逐行排查修改点

  • 输出层维度完全错配
    原代码最后一层写的是model.add(Dense(1,activation='sigmoid')),这是纯纯的二分类结构,1个神经元+sigmoid激活只能输出0/1的两类判断结果。要做5类分类,直接把这层替换成:
    model.add(Dense(5, activation='softmax'))
    softmax会把输出转换成5个类别的概率分布,和多分类的输出需求完全对齐。
  • 损失函数选错了
    原代码编译模型时用的是loss='binary_crossentropy',也就是二分类交叉熵,这个损失函数只针对单标签二分类场景设计,多分类场景下根本算不对梯度。要换成loss='categorical_crossentropy',才能匹配后面数据生成器输出的one-hot标签格式。
  • 数据加载的标签模式不对
    原代码两处flow_from_directory都设了class_mode='binary',这个参数会让生成器只输出0/1的二分类标签,根本没法承载5类的标注信息。把两处的class_mode都改成'categorical',生成器才会给每张图打上对应5类的one-hot编码,和模型的输出维度匹配。
  • 可以顺带优化的结构问题:你现在的模型太浅了,只有1个卷积块,特征提取能力根本撑不起花卉这类细粒度的视觉分类任务。可以参照你之前做猫狗分类的项目结构,多叠几层卷积+最大池化组合,再接入全连接层,准确率还能再上一个台阶。

说直白点,你现在16%的准确率和随机瞎猜的水平差不了多少(5类随机猜的理论准确率就是20%),本质就是上面三个配置错位导致的:模型的输出维度、损失计算逻辑、接收的标签格式全不匹配,根本没法从数据里学到有效的识别规律。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.09 01:15:07