卷积网络中的最佳过滤器数量
Optimal number of filters in a Convolutional network
我正在构建一个卷积网络图像分类目的,我的网络受到 VGG conv 网络的启发,但我改变了层数和每层的过滤器,因为我的图像数据集非常简单。
尽管如此,我想知道为什么 VGG 中的拟合器数量总是 2 的幂:64 -> 128 -> 256 -> 512 -> 4096
我猜这是因为每个池将输出大小除以 2 x 2,因此需要将过滤器的数量乘以 2。
但我仍然想知道这个选择背后的真正原因是什么;这是为了优化吗?分配计算更容易吗?我应该在我的网络中保留这个逻辑吗?
是的,主要是为了优化。如果网络要在 GPU 上 运行,GPU 中的线程会以组和块的形式出现,通常一个组有 32 个线程。
粗略地说,如果您有一个包含 40 个过滤器的图层,您将需要 2 个组 = 64 个线程。那么为什么不利用其余线程并制作可以并行计算的 64 个过滤器层。
我正在构建一个卷积网络图像分类目的,我的网络受到 VGG conv 网络的启发,但我改变了层数和每层的过滤器,因为我的图像数据集非常简单。
尽管如此,我想知道为什么 VGG 中的拟合器数量总是 2 的幂:64 -> 128 -> 256 -> 512 -> 4096
我猜这是因为每个池将输出大小除以 2 x 2,因此需要将过滤器的数量乘以 2。
但我仍然想知道这个选择背后的真正原因是什么;这是为了优化吗?分配计算更容易吗?我应该在我的网络中保留这个逻辑吗?
是的,主要是为了优化。如果网络要在 GPU 上 运行,GPU 中的线程会以组和块的形式出现,通常一个组有 32 个线程。
粗略地说,如果您有一个包含 40 个过滤器的图层,您将需要 2 个组 = 64 个线程。那么为什么不利用其余线程并制作可以并行计算的 64 个过滤器层。