keras - CNN LSTM 视频分类
问题描述
我正在尝试创建 vgg+lstm 网络。在这段代码中 seq_len 是 1400。
video = Input(shape=(seq_len, 224, 224,3))
cnn_base = VGG16(input_shape=(224, 224, 3), weights = 'imagenet', include_top=False)
cnn_out = GlobalAveragePooling2D()(cnn_base.output)
cnn = Model(cnn_base.input, cnn_out)
cnn.trainable=False
encoded_frames = TimeDistributed(cnn)(video)
encoded_sequence = LSTM(256)(encoded_frames)
hidden_layer = Dense(1024, activation='relu')(encoded_sequence)
outputs = Dense(1)(hidden_layer)
model = Model(video, outputs)
print(model.summary())
history = model.fit(w_train, y_train, epochs=60, batch_size=50, shuffle=True, validation_split=0.2, verbose=10)
print(history.history.keys())
我的错误是这样的:
ValueError: Input 0 is incompatible with layer model_6: expected shape=(None, 1400, 224, 224, 3), found shape=(None, 224, 224, 3)
有人可以帮我解决吗?
解决方案
去掉输入形状中的 seq_len,因为它会生成一个 shape=(None, seq_len, 224, 224,3) 的 5 维数组。
推荐阅读
- python-3.x - 如何使用python将相同值包含在同一列中的00:00:00设置时间
- typescript - 如何使模块级函数不是只读的?
- ethereum - 交易状态失败'0x0'
- angular - 如何在角度库创建中将创建的库的依赖项安装到父应用程序中
- python-3.x - 匹配嵌套字典中的项目并返回外键
- python - Numpy:转置函数中的轴参数
- list - 我想从列表中随机选择一个项目,但出现错误
- html - 如何从网站中删除未使用的 css/javascript?
- c# - 将参数从 angular http.get 传递到 c# 控制器
- c++ - 如何删除多图 C++ 中的重复值?