Machine learning Keras卷积层的输出维数

Machine learning Keras卷积层的输出维数,machine-learning,neural-network,keras,conv-neural-network,Machine Learning,Neural Network,Keras,Conv Neural Network,Keras教程给出了以下代码示例(带注释): 我对输出大小感到困惑。它不应该创建深度为64、宽度为32的10个时间步(步幅默认为1,没有填充)吗?因此,在k维卷积中,您将有一个过滤器,它将以某种方式保留前k维的结构,并通过使用过滤器权重卷积来压缩所有其他维的信息,而不是(无,10,64)。因此,网络中的每个过滤器基本上都有一个维度(3x32),最后一个维度(这个维度大小为32)中的所有信息都将压缩为一个实数,并保留第一个维度。这就是为什么你有这样的形状 当你有一张彩色图像时,你可以想象一个类似的

Keras教程给出了以下代码示例(带注释):


我对输出大小感到困惑。它不应该创建深度为64、宽度为32的10个时间步(步幅默认为1,没有填充)吗?因此,在k维卷积中,您将有一个过滤器,它将以某种方式保留前k维的结构,并通过使用过滤器权重卷积来压缩所有其他维的信息,而不是
(无,10,64)
。因此,网络中的每个过滤器基本上都有一个维度(3x32),最后一个维度(这个维度大小为32)中的所有信息都将压缩为一个实数,并保留第一个维度。这就是为什么你有这样的形状

当你有一张彩色图像时,你可以想象一个类似的情况。您的输入将具有三维结构(图片长度、图片宽度、颜色)。当你对你的前两个维度应用二维卷积时,所有关于颜色的信息都会被你的滤镜压扁,不会保留在你的输出结构中。和这里一样

# apply a convolution 1d of length 3 to a sequence with 10 timesteps,
# with 64 output filters
model = Sequential()
model.add(Convolution1D(64, 3, border_mode='same', input_shape=(10, 32)))
# now model.output_shape == (None, 10, 64)