Входная последовательность CNN + LSTM с несколькими выходами - PullRequest
0 голосов
/ 03 февраля 2020

Я новичок ie для CNN с LSTM. У меня есть набор последовательностей изображений (с различными размерами). Набор данных содержит изображения из 70 видеороликов с (50-70 кадров каждое). Кроме того, в качестве выходных данных к этим кадрам у меня есть массив местоположения объекта на нем и другой массив его скорости (так 2 выхода, 2 плотных слоя).

вот мой текущий код:

import keras
from keras.layers import *
from keras.models import load_model, Model, Sequential
from keras.preprocessing.image import ImageDataGenerator, array_to_img, img_to_array, load_img
import pandas as pd
import numpy as np

model = Sequential()

num_frames = ??
width = 256
height = 256
channels = 3

Input_1 = Input(shape=(num_frames, width, height, 3))

x = TimeDistributed(Conv2D(64, (3, 3), activation='relu'))(Input_1)
x = TimeDistributed(MaxPooling2D((2, 2), strides=(1, 1)))(x)

x = TimeDistributed(Conv2D(128, (4,4), activation='relu'))(x)
x = TimeDistributed(MaxPooling2D((2, 2), strides=(2, 2)))(x)

x = TimeDistributed(Conv2D(256, (4,4), activation='relu'))(x)
x = TimeDistributed(MaxPooling2D((2, 2), strides=(2, 2)))(x)
x = TimeDistributed(Flatten())(x)
x = Dropout(0.5)(x)
x = LSTM(256, return_sequences=False, dropout=0.5)(x)


out1 = Dense(3,  activation='linear')(x) #position
out2 = Dense(7,  activation='linear')(x) #speed


model = Model(inputs=Input_1, outputs=[out1,out2])
model.compile(optimizer = "adam", loss = 'mse')


model.summary()

Вот мои вопросы: 1. Мои данные хранятся в pandas кадр данных, в котором представлена ​​каждая строка (frame_time, frame_img_file_name, position, speed). Как я могу прочитать его таким образом, чтобы он вводил последовательность? Кроме того, как я могу загрузить его в модель Keras? 2. Просто чтобы проверить мое понимание, мы вводим здесь каждый видеокадр независимо. из других видео?

Буду очень признателен, если кто-нибудь поможет мне с этим!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...