keras 在ConvLSTM3D之后使用MaxPooling3D且return_sequences=True

50few1ms  于 2023-01-13  发布在  其他
关注(0)|答案(1)|浏览(233)

我正在研究3D空间数据的下一帧预测问题。这里讨论的是一些类似的,但针对2D数据的问题。基本上,我有一组随时间变化的3D图像,我试图建立一个模型来预测这些变化。
对于我的问题,我使用几个ConvLSTM3D层。输入数据是一个6DTensor:[批处理,时间帧,x_dimension,y_dimension,z_dimension,channels]。如果选项return_sequences设置为True,则ConvLSTM3D的输出形状为6D。这使得以后无法使用MaxPooling3D层,因为它将5D形状作为输入。

model.add(layers.ConvLSTM3D(filters=64, 
                            kernel_size=(3, 3, 3),
                            padding='same', 
                            return_sequences=True,
                            activation="tanh",
                            ))
model.add(layers.MaxPooling3D(pool_size=(2,2,2)))

有什么办法来处理这个问题吗?是否只有当return_sequences=False时才能使用池层?
谢谢

unftdfkk

unftdfkk1#

抱歉,回答得太晚了。我想这也许能解决你的问题:

model.add(layers.TimeDistributed(layers.MaxPooling3D(pool_size=(2,2,2))))

TimeDistributed跨所有时间步长并行执行所需操作。有关详细信息,请参见此处:https://www.tensorflow.org/api_docs/python/tf/keras/layers/TimeDistributed

相关问题