我想训练一个Keras深度神经网络来进行视频帧预测:
- 输入:视频的4个连续帧
- 输出:网络预测的下一帧
因此,基本的维度是:输入:(样本数量, 4, 60, 60),输出:(样本数量, 1, 60, 60)。我需要一些帮助来将输入的4帧减少到输出的1帧。
我在这里找到了一个例子,我想基于这个例子进行工作。
问题是,在那个网络中,输出不是一帧,而是与输入相同数量的帧。(所以我的任务实际上更简单,因为我只想生成下一帧,而不是4帧)。现在我不知道在网络末尾应该添加哪些层,或者如何修改网络,以便输出维度达到期望的效果。(一帧而不是4帧)。
在末尾添加一个Conv2D层不起作用,因为它与Conv3D的维度不匹配。
关于如何解决这个问题以及我的网络架构可能是什么样的,有什么想法吗?任何关于我的任务的一般建议以及如何构建一个好的网络都是非常受欢迎的。
回答:
代码示例中的这个循环(您提供了URL)可以调整以实现您想要的效果。
for j in range(16): new_pos = seq.predict(track[np.newaxis, ::, ::, ::, ::]) new = new_pos[::, -1, ::, ::, ::]track = np.concatenate((track, new), axis=0)