当前位置: 首页 > 知识库问答 >
问题:

卷积网络中滤波器的最优数目

王航
2023-03-14

我正在构建一个卷积网络图像分类的目的,我的网络受到VGG conv网络的启发,但我更改了每层的层数和过滤器,因为我的图像数据集非常简单。

然而,我想知道为什么VGG中的Fitler数总是2:64的幂-

我猜这是因为每个池将输出大小除以2 x 2,因此需要将过滤器的数量乘以2。

但我仍然想知道,这一选择背后的真正原因是什么;这是为了优化吗?分配计算是否更容易?我应该在我的人际网络中保持这种逻辑吗。

共有1个答案

谭梓
2023-03-14

是的,它主要是为了优化。如果网络要在GPU上运行,GPU中的线程是成组和块的,通常一组由32个线程组成。

粗略地说,如果您有一个包含40个过滤器的层,您将需要2组=64个线程。那么为什么不利用其余线程并制作可以并行计算的64个过滤器的层呢?

 类似资料:
  • 我问了一个关于我上周建立的一个网络的问题,我重复了一些建议,这些建议导致我发现了一些问题。我回到这个项目,解决了所有问题,并在这个过程中了解了更多关于CNN的信息。现在我陷入了一个问题:我所有的权重都变成了巨大的负值,再加上输出图像中的RELU端总是完全是黑色的(这使得分类器无法完成它的工作)。 在两个标记的图像上: 这些数据被传递到一个两层网络、一个分类器(它自己获得100%)和一个单过滤器3×

  • 创建卷积神经网络(CNN)时(如中所述https://cs231n.github.io/convolutional-networks/)输入层与一个或多个过滤器连接,每个过滤器表示一个要素地图。这里,过滤层中的每个神经元只与输入层的几个神经元相连。在最简单的情况下,我的n个过滤器中的每一个都具有相同的维度并使用相同的步幅。 我的问题是: 如何确保过滤器学习不同的特征,尽管它们使用相同的补丁进行训练

  • 我读过这篇文章“UFLDF”,它发展了autoencoder中隐藏层的可视化,但我很困惑如何可视化卷积神经网络的滤波器。在我看来,对于第一个卷积层,要使滤波器可视化,它需要这个等式: 对于第二个卷积层,它应该将滤波器投射到原始输入空间,但我不知道如何做。

  • 此问题似乎与在帮助中心定义的范围内编程无关。 我不明白为什么在使用卷积神经网络时需要翻转滤波器。 根据千层面文件, flip_filters:bool(默认值:True) 是在将过滤器滑动到输入上之前翻转过滤器,执行卷积(这是默认设置),还是不翻转过滤器并执行相关。请注意,对于千层面中的其他一些卷积层,翻转会产生开销,默认情况下是禁用的–使用从其他层学习的权重时,请查看文档。 这是什么意思?我从未

  • 我从几篇文章中了解到,要计算滤波器的梯度,只需以输入体积为输入,以误差矩阵为核进行卷积。之后,只需将过滤器权重减去梯度(乘以学习率)。我实现了这个过程,但它不起作用。 我甚至试着自己用笔和纸做反向传播过程,但我计算的梯度并没有使过滤器的性能更好。那么,我对整个过程的理解是否有误? 编辑:我将提供一个例子,说明我对CNN中反向传播及其问题的理解。 考虑卷积层的随机输入矩阵: 1,0,1 0、0、1

  • 该脚本可以在几分钟内在 CPU 上运行完。 结果示例: from __future__ import print_function import time import numpy as np from PIL import Image as pil_image from keras.preprocessing.image import save_img from keras import la