如何在Keras使用Conv2D一个5D张量的最后三个尺寸适用卷积?(How to apply co

2019-10-29 13:39发布

通常的输入张量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)

Answer 1:

您可以使用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?