python - 为什么在最终的 softmax 层之前移除全连接层后,我的卷积神经网络的准确率会提高?
问题描述
我设计了卷积神经网络(tf. Keras),它几乎没有具有不同内核大小的并行卷积单元。然后,该卷积层的每个输出结果都被馈送到另一个并行的卷积单元中。然后连接所有输出。下一个展平完成。之后,我添加了全连接层并连接到最终的 softmax 层以进行多类分类。我对其进行了训练,并在验证测试中取得了不错的成绩。
但是我去掉了全连接层,准确率比之前的要高。请有人可以解释一下,它是如何发生的,这将非常有帮助。感谢您的宝贵时间。参数如下。
解决方案
当您删除一个层时,您的模型将不太可能过度拟合训练集。因此,通过使网络更浅,您可以使您的模型对未知示例更加健壮,并且验证准确性会提高。
由于您的训练准确性也在提高,这可能表明 -
- 爆炸或消失的渐变。您可以尝试使用小心
weight initialization
、正确regularization
、添加shortcuts
或gradient clipping
. - 您没有训练足够的时期来学习更深的网络。你可以多尝试几个 epoch。
- 您没有足够的数据来训练更深的网络。
推荐阅读
- java - 休眠会话挂起?
- php - echo 包含 JSON 对象的 HTML 语句
- html - 在Vue js(Element-ui)中上传后如何显示头像/缩略图?
- python - Python - 覆盖父类属性而不实例化
- java - 为什么在尝试打印单独的星形行时,索引 0 超出长度 0 的范围出现错误?
- sql - 如何获取同一列中两行之间的差异
- api - GET,然后操作该信息(while 循环和 if 语句),然后 PUT
- python-3.x - 在 Mac 中安装软件包时创建轮子时出错
- c# - ArcSegment C# 公式在 Arc WPF 上获取特定点
- java - 在 JFreeChart 中如何使工具提示适用于 XYBarRenderer?