Keras 如何将掩蔽应用于复杂的CNN+;LSTM网络体系结构?

Keras 如何将掩蔽应用于复杂的CNN+;LSTM网络体系结构?,keras,Keras,我有一个处理视频(图像序列)的顺序模型。 我的模型如下所示: Time = 0 Time = 1 .... Time = t im@0 im@1 .... im@t | | | CNN CNN .... CNN | | | RNN--------->R

我有一个处理视频(图像序列)的顺序模型。 我的模型如下所示:

Time = 0    Time = 1    ....    Time = t
  im@0         im@1     ....       im@t
    |            |                   |
   CNN          CNN     ....        CNN
    |            |                   |
   RNN--------->RNN---->....------->RNN
                                     |
                               some prediction     
它适用于长度不变的序列。但我希望它能接受可变长度的序列。正如我们所知,在keras中,掩蔽层可以帮助我们处理这种情况,但并非所有层都支持。我有一个相当复杂的CNN架构,所以在CNN之前似乎不可能使用掩蔽层

有没有办法解决这个问题

[编辑] 我发现TimeDistributed包装器可以使应用掩码成为可能。但我不知道我的实现是否正确:

cnn = make_basenet(...)            # make backbone network
cnn = TimeDistributed(cnn)         # wrap the cnn with TimeDistributed

seq = Sequential()                 # CNN + LSTM
seq.add(Masking(input_shape=(...)) # Masking for TimeDistributed CNN
seq.add(cnn)                       # add CNN
seq.add(Masking())                 # **This is necessary**
seq.add(LSTM(...))                 # add LSTM
如果在LSTM之前省略掩蔽层,则会产生错误。但是如果我加上这个遮罩层,它就可以工作了。我想知道我是否以正确的方式实现了我的模型