【发布时间】: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