为什么验证错误率保持不变?

时间:2016-12-17 05:54:45

标签: tensorflow deep-learning convolution conv-neural-network

我正在研究面部图像的深度学习(CNN + AEs)方法。

我有

  • 面部图像112*112*3的输入层

  • 3卷积+最大合并+ ReLU

  • 2层与512个神经元完全连接,50%的丢失 避免过度拟合和最后输出层有10个神经元,因为我有 10个班级。

  • 也用于降低softmax交叉熵的平均值以及L2。

对于培训,我将数据集分为3组:

  1. 60%用于培训
  2. 20%用于验证
  3. 评估为20%
  4. 问题是在几个时期之后,验证错误率保持固定值并且永远不会改变。我使用tensorflow来实现我的项目。

    我之前没有CNN这样的问题所以我认为这是第一次。我已经检查了它基于tensorflow文档的代码,所以我不认为问题是否与代码有关。也许我需要更改一些参数,但我不确定。

    对于此类问题的常见解决方案有何看法?

    更新 我将优化器从动量更改为亚当和默认学习率。目前验证错误发生了变化,但大多数情况下它都低于迷你批处理错误,而两者的批次大小相同。

    我测试了有和没有偏差的模型,初始值为0.1,但还不合适。

    更新 我已经修复了这个问题,我将尽快更新。

1 个答案:

答案 0 :(得分:1)

我发现有一个常见的解决方案是使用TensorBoard。您可以添加详细信息,在计算图中的不同点的每个时期之后可视化训练性能信息。添加关键指标是值得的,因为您可以看到在应用自适应学习速率,批量大小,神经网络架构,退出/正则化,GPU数量等方面的变化后培训的进展情况。

以下是我发现有助于添加这些详细信息的链接: https://www.tensorflow.org/how_tos/graph_viz/#runtime_statistics