Conv1D在Keras中的行为(张量尺寸)

时间:2019-04-15 11:29:04

标签: python tensorflow keras

我的问题涉及Keras中Conv1D层中涉及的张量的尺寸。输入形状应该是(批,步,通道)。例如,我有加速度计数据,其中每个轴都有一个时间信号。我想对长度为50的时间窗口进行推断,因此一个推断样本的形状为(50,3)。

现在,如果我使用Conv1D层作为该数据的第一层,且kernel_size = 10且filter = 64,则一个数据窗口上的第一层的结果具有形状(41,64)。我完全理解会弹出41,这是由于长度为50的信号与长度为10的内核进行卷积而产生的样本数量。但是,我不确定这些数据中加速度计的三个轴在哪里。我会更期待以下行为:

input_shape =(批次,步骤,通道), output_shape =(批处理,steps_after_conv,渠道,过滤器)

有人可以解释Keras的行为吗?我对文档不太了解。

1 个答案:

答案 0 :(得分:1)

Convolution operation

如上图所示(图片提供:http://followtheart.info/kareff-Mon_15_14.html),在convolution中的CNN操作中,每个过滤器会在所有通道上进行卷积(如果是RGB图像)用于计算输出值。因此,在使用64个过滤器的情况下,每个过滤器将从其接收字段中的所有输入通道获取值。因此,无论您输入的通道数是多少,您的输出都会有来自64个过滤器的输出。

对于一批图像(batch_size, num_channels, height, width),输出的形状为(batch_size, num_filters, height_after_conv, width_after_conv)