【发布时间】:2018-03-10 21:06:13
【问题描述】:
在典型的 CNN 中,conv 层将有 Y 个大小为 NxM 的过滤器,因此它具有 N x M x Y 可训练参数(不包括偏差)。
因此,在以下简单的 keras 模型中,我希望第二个卷积层有 16 个大小为 (7x7) 的内核,因此内核权重大小为 (7x7x16)。 那么为什么它的权重实际上是 (7x7x8x16)?
我了解正在发生的事情的机制:Conv2D 层实际上是在进行 3D 卷积,将前一层的输出图视为通道。它有 16 个大小为(7x7x8)的 3D 内核。我不明白的是:
- 为什么这是 Keras 的默认行为?
- 我如何获得“传统”卷积层,而不会陷入低级 API(避免这是我首先使用 Keras 的原因)?
_
from keras.models import Sequential
from keras.layers import InputLayer, Conv2D
model = Sequential([
InputLayer((101, 101, 1)),
Conv2D(8, (11, 11)),
Conv2D(16, (7, 7))
])
model.weights
【问题讨论】:
标签: deep-learning keras conv-neural-network