通常的输入张量Conv2D
在Keras是与尺寸的4D张量batch_size * n * n * channel_size
。 现在,我与一维张量5D batch_size * N * n * n * channel_size
,我想在最后三个维度应用二维卷积层为每个I N
。 例如,如果内核大小为1,则我期望输出将具有尺寸batch_size * N * n * n * 1
。
任何人都知道一些简单的方法与Keras来实现它?
例如,对于全连接层Keras可以自动这样做。 如果输入有形状batch_size * N * n
,则在Keras致密层将每个在设定的FC i层N
。 因此,我们将获得与输出batch_size * N * m
,如果我们设置Dense(m)
您可以使用TimeDistributed
层包装上的5D张量的所有图像应用相同的卷积层。 例如:
model = Sequential()
model.add(TimeDistributed(Conv2D(5, (3,3), padding='same'), input_shape=(10, 100, 100, 3)))
model.summary()
模型汇总:
Layer (type) Output Shape Param #
=================================================================
time_distributed_2 (TimeDist (None, 10, 100, 100, 5) 140
=================================================================
Total params: 140
Trainable params: 140
Non-trainable params: 0
_________________________________________________________________
文章来源: How to apply convolution on the last three dimensions of a 5D tensor using the Conv2D in Keras?