CNN中如何选择卷积层数和滤波器数

How to choose the number of convolution layers and filters in CNN

我正在尝试提高我的 CNN 模型的速度,我使用的方法是删除架构中的一些卷积层,并且模型的准确性与我的数据集几乎保持一致。

我想知道在训练模型之前是否有一些方法可以分析数据集有多少卷积层就足够了?还有其他方法可以分析模型有多少过滤器就足够了吗?

让我们先从更直接的部分开始。知道输入层和输出层的数量以及它们的神经元数量是最简单的部分。每个网络都有一个输入层和一个输出层。输入层中的神经元数量等于正在处理的数据中输入变量的数量。输出层中的神经元数量等于与每个输入相关联的输出数量。 但挑战在于了解隐藏层及其神经元的数量。

答案是您无法通过分析计算人工神经网络中每层使用的层数或节点数来解决特定的现实世界预测建模问题。 层数和每层中的节点数是您必须指定和学习的模型超参数。 您必须使用强大的测试工具和受控实验来找到答案。无论您可能遇到何种启发式方法,所有答案都将返回到需要进行仔细实验以查看最适合您的特定数据集的方法。

例如,过滤器大小是您应该在训练网络之前指定的超参数之一。
对于图像识别问题,如果您认为网络识别对象需要大量像素,您将使用大过滤器(如 11x11 或 9x9)。如果您认为区分对象的是一些小的局部特征,您应该使用小过滤器(3x3 或 5x5)。 这些是一些提示,但不存在任何规则。

有很多技巧可以提高深度学习模型的准确性。请参考这个 link Improve deep learning model performance.

希望对您有所帮助。