Я новичок в Keras, и пытается реализовать эту сеть, Использование Stateful LSTM с мини-дозированием и ввода с переменными шагами времени, в Keras?
эта сеть занимает видеокадры, как х = {x1, ........, хт}, где T это число кадры в видео и х являются визуальными особенностями кадров размера 2048
я попытался использовать динамическую LSTM как каждый образец имеет некоторое количество кадров в реферируемом here
и это моя модель
x = Input(batch_shape=(1, None, 2048), name='x')
lstmR = LSTM(256, return_sequences=True, name='lstmR', stateful=True)(x)
lstmL = LSTM(256, return_sequences=True, go_backwards=True,name='lstmL', stateful=True)(x)
merge = merge([x, lstmR, lstmL], mode='concat', name='merge')
dense = Dense(256, activation='sigmoid', name='dense')(merge)
y = Dense(1, activation='sigmoid', name='y')(dense)
model = Model(input=x, output=y)
model.compile(loss='mean_squared_error',
optimizer=SGD(lr=0.01),
metrics=['accuracy'])
и попытался обучить модель с помощью мини-пакетирование
for epoch in range(15):
mean_tr_acc = []
mean_tr_loss = []
for i in range(nb_samples):
x, y = get_train_sample(i)
for j in range(len(x)):
sample_x = x[j]
tr_loss, tr_acc = model.train_on_batch(np.expand_dims(np.expand_dims(sample_x, axis=0), axis=0),np.expand_dims(y, axis=0))
mean_tr_acc.append(tr_acc)
mean_tr_loss.append(tr_loss)
model.reset_states()
, но кажется, что модель не может сходиться, поскольку это дает 0,3 точность
Я также попытался это сделать с лицом без LSTM с входной формы (None, 1024), но он тоже не сместился