在编码卷积神经网络时,我不确定从哪里开始卷积层。当使用不同的卷积滤镜生成不同的特征图时,这是否意味着滤镜具有不同的大小(例如3x3、2x2等)?
答案 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的交互式可视化功能,它对我有很多帮助。