Я использую LSTM для классификации видео. Я использую библиотеку Python Keras для создания сети LSTM Long Term Short Memory. Я понимаю, что LSTM принимает форму ввода данных (выборка, отметка времени, характеристики). У меня есть три класса видео, и каждый из этих классов имеет 10 видеофайлов. Это значит, что у меня 10 * 3 = 30 образцов.
Я создал последовательность кадров для каждого из этих видеофайлов. Каждая из этих последовательностей состоит из 32 кадров видеофайлов. Я использую обученную модель для извлечения элементов, поэтому я подаю каждый из этих кадров в предварительно обученную модель VGG16, которая генерирует 512 элементов для одного кадра. поэтому один видеофайл должен иметь массив (32 512) измерений. Затем я добавляю каждый из этих массивов в один массив для всех 30 сэмплов и сохраняю его в виде массива. окончательный размер массива равен (960 512).
Теперь моя проблема заключается в том, как мне изменить форму этого массива в (sample, timestamp, features) = (20,32,512). Вот фрагмент кода, который я использовал: Обратите внимание, что x_generator имеет 640,512, и я хочу преобразовать его в (30,32,512).
Буду признателен за решение моей проблемы.
x_generator=None
if x_generator is None:
imgx = image.img_to_array(img)
imgx = np.expand_dims(imgx, axis=0)
imgx = preprocess_input(imgx)
x_generator = base_model.predict(imgx)
else
imgx = image.img_to_array(img)
imgx = np.expand_dims(imgx, axis=0)
imgx = preprocess_input(imgx)
x_generator = np.append(x_generator,base_model.predict(imgx),axis=0)