【问题标题】:automatically determine best filter size to use in keras CNN Conv2D layers自动确定在 keras CNN Conv2D 层中使用的最佳过滤器大小
【发布时间】:2018-03-06 18:12:47
【问题描述】:

model.add(Conv2D(32, (5, 5),
                  padding='same',
                  data_format='channels_last',
                  input_shape=input_shape))


model.add(BatchNormalization())
model.add(Activation('relu'))
model.add(Conv2D(32, (3, 3)))
model.add(BatchNormalization())
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.25))

model.add(Conv2D(64, (3, 3), padding='same'))
model.add(BatchNormalization())
model.add(Activation('relu'))
model.add(Conv2D(64, (3, 3)))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.25))

model.add(Flatten())
model.add(Dense(512))
model.add(Activation('relu'))
model.add(Dropout(0.25))

model.add(Dense(num_classes))
model.add(Activation('softmax'))

这是我现在的keras模型的样子,完全借鉴here

我的问题分为两部分,
1.如何自动判断是使用model.add(Conv2D(32, (3, 3)))还是model.add(Conv2D(32, (5,5)))还是model.add(Conv2D(32, (4,4)))
2. 除了模型的第一行,如果我将 conv2D(64, (3,3)) 模型的其余部分更改为 (5,5),我会得到 `从 3) 中减去 5 获得的负维度。这是为什么?

我看了这两个问题:Selecting number of strides and filters in CNN (Keras)Conv2D layer output shape in keras
根据他们的说法,实验是找出答案的唯一方法,但我想知道是否有一种自动的方法可以做到这一点。 因为有很多参数,例如value of dropoutkernel_size(),然后Dense()的值应该是512/356还是多少是最好的。

PS: 运行具有不同参数的不同模型在计算上变得昂贵,并且比较所有这些结果正在成为另一个痛苦的过程。 我的笔记本电脑有一个 2GB 的 nvidia 显卡,具有 5.0 的计算能力。

【问题讨论】:

  • 这可能会有所帮助。 pyimagesearch.com/2018/12/31/…
  • 您可能对Inception Network 架构感兴趣,因为它在同一层中结合了多个大小的过滤器。

标签: keras


【解决方案1】:
  1. 内核维度是超参数,您可以使用多种策略自动优化。 Here are a couple of tips for that

  2. 卷积层的输出高度/宽度遵循公式size = ((input_size - kernel_size) / stride) + 1。因此,对于太小的图像,您使用了太多的卷积层。在某些时候size 将是负数,你不能有负形输出

【讨论】:

  • 谢谢。那么我应该将其余的 conv2d 层保留为 (3,3) 吗?
  • 还有关于`model.add(Dense(512))`在这里选择最佳值的规则吗^.
  • 另外,如果我将 model.add(MaxPooling2D(pool_size=(2, 2))) 更改为 (3,3) 它再次抱怨。我该如何解决?谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-20
  • 1970-01-01
  • 2018-01-16
  • 2023-01-27
  • 2018-06-22
  • 2018-12-13
相关资源
最近更新 更多