【发布时间】:2017-05-02 22:08:47
【问题描述】:
我正在研究面部图像的深度学习 (CNN + AE) 方法。
我有
人脸图像
112*112*3的输入层3卷积+最大池化+ReLU
2 层全连接,512 个神经元,50% dropout 避免过度拟合和最后一个输出层有 10 个神经元,因为我有 10 节课。
还使用了 softmax 交叉熵和 L2 的降低均值。
为了训练,我将数据集分为 3 组:
- 60% 用于培训
- 20% 用于验证
- 20% 用于评估
问题是在几个 epoch 之后,验证错误率保持固定值并且永远不会改变。我使用tensorflow 来实现我的项目。
我以前在使用 CNN 时没有遇到过这样的问题,所以我认为这是第一次。我已经检查了它基于 tensorflow 文档的代码,所以我不认为问题出在代码上。也许我需要更改一些参数,但我不确定。
对此类问题的常见解决方案有任何想法吗?
更新: 我将优化器从动量更改为默认学习率的 Adam。现在验证错误发生了变化,但大多数时候它低于小批量错误,而两者的批量大小相同。
我已经以 0.1 作为初始值测试了模型有无偏差,但还没有很好的拟合。
更新 我修复了这个问题,我会尽快更新更多细节。
【问题讨论】:
-
每次都预测同一个类吗?你的学习率是多少?
-
@chris_anderson 我刚刚检查过,每次都是同一个班级,学习率为 0.01,并且逐渐降低。
-
你的验证率是从一开始就降低,然后在某个时期停止,还是从第一次迭代开始就一样?
-
只是几个时期的变化然后保持不变直到最大时期结束
标签: tensorflow deep-learning convolution conv-neural-network