【问题标题】:Fine-tuning CNN configuration微调 CNN 配置
【发布时间】:2018-03-30 02:29:38
【问题描述】:

我目前正在尝试创建一个 CNN,但在确定要使用哪些参数时遇到问题。选择过滤器大小、过滤器数量和卷积层数量并不是我的想法。我找到或获得的所有资源都只是说“查看您的数据集”并确定它们,这并没有帮助。

我有一个包含大约 40000 个实例和 500 个类的数据集。我在 Tensorflow-gpu 上使用 keras。目前我正在使用 6 个 1D 卷积层和 tanh 激活,并为我的 2 个密集层使用 relu 和 softmax。我在每 2 个卷积层后进行最大池化。我有两个辍学(在我的密集层之间和之后),每个都设置为 0.4。根据我目前的过滤器尺寸和数量,我的准确率约为 35%,但根据目前的研究,我预计会接近 80%。

我不一定要找人来告诉我应该将哪些数字或配置插入我的模型,而只是关于如何开始确定这些值的一些指导。到目前为止,我真的只是猜测和检查。此外,我不确定这些值应该如何相互关联:我应该将每层的过滤器数量加倍吗?我应该多久重复一次过滤器尺寸?等等

我查看了有关堆栈溢出的其他问题,所有有答案的问题似乎都在告诉人们尝试更简单的模型或将他们的工作基于 keras 示例,这不适合我的情况。

【问题讨论】:

  • 你的模型是过拟合还是火车 acc 也很低?作为一般策略,我喜欢找到一种能够过拟合的架构,然后减少一些层并添加 dropout/bach norm。我还在卷积层中使用 relu 作为激活函数,而不是 tanh。使用优化器和学习率也会有所帮助。顺便说一句,是否可以更具体地了解您的问题的性质?祝你好运!
  • 我没有看到过拟合,训练精度很低。感谢您的建议。

标签: tensorflow neural-network keras conv-neural-network convolution


【解决方案1】:

更多数据。

我在这里的第一个倾向是您没有足够的训练示例。您有 500 个类和 40000 个示例,平均每个类有 80 个示例。那当然是假设你有平衡的课程,我敢打赌不是这样。 只是不想做

【讨论】:

  • 它是平衡的,平均每个班级大约有 80 个示例。不幸的是,我不能上课。如果我要在 RDF 中测试我的数据,我将如何将输出应用到 CNN 模型?
  • 我将删除对随机森林的引用,因为它超出了您提出的问题。我只是建议查看一个可能不需要作为起点那么多数据的模型。当然在这种情况下你没有足够的数据。
猜你喜欢
  • 2016-05-07
  • 2015-12-08
  • 1970-01-01
  • 2017-02-27
  • 2020-09-19
  • 2016-01-22
  • 2022-09-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多