我有一个 -我想使用卷积的通道时间序列 dCNN (时间步内核)。现在,假设我想拥有,作为我的第一层,过滤器。在我看来,这意味着输出的深度为,因为每个过滤器都将独立应用于每个通道。但是,当我在 keras 中实现此功能时,(使用 Sequential)摘要中的过滤器尺寸并未反映这一点。这是一个代码片段:
TIME_RANGE = 31
NUMBER_OF_CHANNELS = 15
model = Sequential()
model.add(Conv1D(input_shape = (TIME_RANGE, NUMBER_OF_CHANNELS),
filters=16,
kernel_size=7,
padding='valid',
data_format='channels_last'))
model.add(ReLU())
model.add(BatchNormalization())
model.add(Conv1D( filters=32,
kernel_size=5,
padding='valid'))
这是相应的摘要输出:
Layer (type) Output Shape Param #
==================================================== ================
conv1d_1 (Conv1D) (None, 25, 16) 1696
re_lu_1 (ReLU) (None, 25, 16) 0
batch_normalization_1 (Batch (None, 25, 16) 64
conv1d_2 (Conv1D) (None, 21, 32) 2592
如您所见,由于无填充参数,输出沿时间轴的形状按预期减小,从到到,但深度只反映了过滤器的数量——那么我所有的频道都去了哪里?在架构的这一点上,我期待深度. 似乎是隐含的卷积发生在某处,我认为我实际上并不想要——我想做我的稍后在网络中进行卷积。那么我在这里错过了什么?