Последовательность классификации данных массива 4D с RNN-LSTM - PullRequest
0 голосов
/ 07 мая 2019

В настоящее время я работаю над проектом, в котором я пытаюсь создать модель машинного обучения, способную классифицировать действия в видео.Я уже создал сценарий, который может обнаружить человека в видео и генерировать данные, основанные на движениях частей тела.Это создает массив 4D со следующей формой ввода:

(nframes, nperson, nbodyparts, 3 координаты на часть тела)

Форма ввода только 1 видео (2 человека) с продолжительностьюиз 3 секунд и снятый в 60fps / s будет выглядеть следующим образом: (180, 2, 25, 3)

4D массив для каждого видео сохраняется в виде файла с фрагментами, так что если я обработаю 400 видео.Я получу 400 файлов numpy.

Следующим шагом будет создание модели RNN-LSTM keras или tenorflow, способной обучаться 400 файлам numpy и работать с массивом 4D каждого видео, ноЯ действительно не знаю, как заставить это работать.Я уже искал некоторые решения, но единственное, что я мог уловить, это то, что Keras может работать только с трехмерным массивом.

Я был бы очень признателен за вашу помощь и посмотрим, как я могу решить эту проблему, с надеждой на пример.код.

С уважением,

1 Ответ

0 голосов
/ 07 мая 2019

Я предполагаю, что вы используете numpy.array.Преобразование массива 4d в 3d может быть сделано с помощью np.resahpe().Документация может быть найдена здесь .

Пример:

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))

Затем вы можете следовать учебным пособиям онлайн для построения вашей модели.Примером учебника может быть this .

Примечание. Вы упомянули, что «Keras может работать только с трехмерным массивом».Я думаю, что одно из измерений зарезервировано для batch_size.Итак, я предлагаю вам преобразовать ваш 4d массив в 2d.

...