我正在尝试实现上图中所示的模型,该模型主要由时间分布的CNN和随后的一系列使用Keras和TF的LSTM组成。 我将类分为两种,并从捕获的每个视频中提取帧。帧提取是可变的,请不要解决。
但是,我在尝试找出如何为每个班级中的每个视频加载图像帧时遇到问题,从而变成了x_train
,x_test
,y_train
,{{1 }}。
y_test
如果每个视频包含提取的n个不同数量的帧,我不知道如何键入model = Sequential()
model.add(
TimeDistributed(
Conv2D(64, (3, 3), activation='relu'),
input_shape=(data.num_frames, data.width, data.height, 1)
)
)
。
输入的是3-8秒(即一帧帧)的小型视频。
答案 0 :(得分:0)
您可以使用None
,因为此尺寸不会影响模型的可训练权重数量。
但是,由于numpy不接受可变大小,因此使用numpy创建一批视频会遇到问题。
您可以单独训练每个视频,也可以创建虚拟帧(零填充)以使所有视频达到相同的最大长度。然后使用Masking
层忽略这些帧。 (某些Keras版本在使用TimeDistributed
+ Masking
时有问题)