使用RNN-LSTM的分类序列4D阵列数据

时间:2019-05-07 09:17:03

标签: python tensorflow keras lstm recurrent-neural-network

我目前正在一个项目中,尝试创建一个能够对视频中的动作进行分类的机器学习模型。我已经创建了一个脚本,该脚本能够检测视频中的人并根据身体部位的运动生成数据。这将生成具有以下输入形状的4D数组:

(nframe,nperson,nbodyparts,每个身体部位3个坐标)

只有1个视频(2人)的输入形状,持续3秒,以60fps / s的速度拍摄,如下所示: (180,2,25,3)

每个视频的4D数组都保存为numpy文件,因此如果我处理400个视频。我将得到400个numpy文件。

下一步是创建一个keras或tensorflow RNN-LSTM模型,该模型能够训练400个numpy文件并能够使用每个视频的4D数组,但是我真的不知道如何获得这个去工作。我已经在寻找一些解决方案,但是我唯一能做的就是Keras只能使用3D阵列。

非常感谢您的帮助,并希望通过示例代码介绍如何解决此问题。

国王的问候,

1 个答案:

答案 0 :(得分:0)

我假设您正在使用el.attachShadow({ mode: "open" })numpy.array可以将4d数组重塑为3d。可以找到文档here

示例:

np.resahpe()

然后,您可以在线遵循教程来构建模型。示例教程可以是this

注意:您提到“ Keras仅能与3D阵列一起使用。”我认为其中一个维度是为import numpy as np # create a sample 4d array data of shape (10, 2, 25, 3) data = np.arange(10*2*25*3).reshape((10, 2, 25, 3)) # condense the 4d array to 3d array by explicitly stating the shape. data_reshaped = data.reshape((10, 2, 75)) # or you can use -1 to ask numpy infer the dimension data_reshaped2 = data.reshape((10, 2, -1)) # you can also reshape your data into 2d of shape (10, 150) data_reshaped3 = data.reshape((10, -1)) 保留的。因此,我建议您将4d数组转换为2d。