基于PyTorch的EfficientNetB3汉字分类模型验证精度停滞问题
灰度汉字分类模型训练问题复盘与解决方案
模型与训练配置
- 模型:基于EfficientNet-B3构建的灰度汉字图像分类模型(适配单通道输入)
- 数据集:3036类汉字,共约62万张128×128灰度图,采用类平衡HDF5格式存储
- 训练配置:AMP混合精度训练、带标签平滑的CrossEntropyLoss结合ArcFace损失函数、AdamW优化器
训练过程中遇到的问题
- 引入ArcFace后,冻结骨干网络阶段初始损失极高、Top-1精度为0,调整scale值至16、margin值至0.30,或取消骨干网络冻结均无改善
- 验证集Top-1精度停滞在64-65%,训练精度持续提升,两者差距逐渐扩大,过拟合现象显著
- 验证集Top-5精度约为88%,说明模型能够识别相似字符,但无法精准完成目标字符的Top-1分类
已验证的解决方案
核心问题出在两个方面:
- 数据集预处理错误:预处理过程中存在灰度值归一化逻辑错误,同时部分样本的标签映射出现混乱,修正后模型初始训练的稳定性大幅提升
- 仅训练分类器的方案不合理:冻结预训练的EfficientNet-B3骨干网络时,其提取的特征并不适配汉字灰度图像的特征分布。改为解冻骨干网络进行联合微调,同时采用差异化学习率策略(骨干网络使用较小学习率,分类头使用较大学习率),最终解决了过拟合问题,Top-1精度瓶颈也得到突破
内容的提问来源于stack exchange,提问作者Marco
相关产品推荐
相关产品推荐

