卷积神经网络过滤器

时间:2018-11-22 04:17:21

标签: neural-network conv-neural-network

在编码卷积神经网络时,我不确定从哪里开始卷积层。当使用不同的卷积滤镜生成不同的特征图时,这是否意味着滤镜具有不同的大小(例如3x3、2x2等)?

3 个答案:

答案 0 :(得分:0)

在大多数示例中,这很好地说明了如何对卷积神经网络进行编码,您会发现从1个卷积层和传递层大小,3x3窗口,输入数据特征开始。

 model.add(Conv2D(layer_size, (3,3), input_shape = x.shape[1:]))

过滤器的大小通常仅在最大池化层中有所不同,例如2x2。

model.add(MaxPooling2D(pool_size=(2,2)))

图层大小通常是从范围layer_size = [32, 64,128]中选择的,您可以执行相同的操作来尝试使用不同的convolution_layers = [1,2,3]

答案 1 :(得分:-1)

不只是一个答案,请将此视为评论。所应用的过滤器可以(通常在prod env中)具有不同大小。我建议阅读更多关于invariance的内容,并结合优化算法(例如Stochastic Gradient Descent)阻止两个过滤器学习相同的功能(尽管有些过滤器也学习相同的功能)。

答案 2 :(得分:-1)

我从未见过同一层中的过滤器具有不同的内核大小,尽管可以这样做,但这并不是我使用的框架的默认选项。权重使过滤器产生不同的特征图的原因。

在不同的层上使用了不同的内核大小,因为卷积网络的想法是通过下采样层(例如最大池化)来逐渐降低维数,因此在较深的层次上,您具有较小的特征图,较小的过滤器使其保持卷积和连接不充分(与图像大小相同的内核相当于具有密集层)。

如果您从卷积开始,我建议您使用this CNN的交互式可视化功能,它对我有很多帮助。