具有CONVLSTM2D的vgg16模型

时间:2018-12-19 13:24:04

标签: keras conv-neural-network lstm

我正在使用以下代码使用LSTM对视频进行分类。使用VGG16模型从每个帧中提取特征。我也有兴趣提取空间域中的特征。我从keras文档中了解到CONVLSTM2D可以做到这一点。但是我不确定使用CONVLSTM2D时如何使用vgg16中的功能。

frames=19
channels=3
rows=224
columns=224
classes=2


video = Input(shape=(frames,
                     rows,
                     columns, channels))
cnn_base = VGG16(input_shape=(rows,columns,channels),weights="imagenet",include_top=False, pooling = 'avg' )





encoded_frames = TimeDistributed(cnn_base)(video)
encoded_sequence = LSTM(256)(encoded_frames)
hidden_layer = Dense(output_dim=1024, activation="relu")(encoded_sequence)
outputs = Dense(output_dim=classes, activation="softmax")(hidden_layer)
model = Model([video], outputs)

对此有何建议?

1 个答案:

答案 0 :(得分:0)

ConvLSTM2D需要类似输入的图像(高度,宽度,通道)。因此,您可以先使用VGG中的图层输出,再使用随后的Flatten和Dense图层,在这些图层中,输出仍然是形状(高度,宽度,通道),并将其输入ConvLSTM2D。