Tensorflow2.0训练损失值降低,但测试正确率基本不变的情况

Tensorflow2.0训练损失值降低,但测试正确率基本不变的情况

  • 问题描述
  • 解决方法
    • 修改参数
    • 检查模型
    • loss计算方法
    • 数据标签
    • 权重初始值

问题描述

对于一个架构,在识别mnist手写数字集精度较高的情况下,更换其他数据集,却无法得到较高的识别结果。假设有n个类别,修改输入端、输出端及几个卷积核的大小,识别时虽然loss在减小,但正确率acc稳定在1/n左右不变化。

解决方法

修改参数

主要考虑的参数有batch、学习率和keep_prob:

  1. batch ,降低该值,使得网络充分学习数据;
  2. 学习率,降低该值,使得模型梯度下降;
  3. keep_prob ,降低该值,使得模型具有学习能力。

检查模型

检查模型是否有问题,修改网络的架构。

loss计算方法

选择loss计算的公式方法是否有问题。

数据标签

检查数据的标签是否转换正确。

权重初始值

修改权重的初始化方法。

你可能感兴趣的:(深度学习,深度学习,人工智能,神经网络)