У меня есть предварительно сохраненные узкие места (файлы .npy), полученные из VGG16 для около 10k изображений. Обучение классификатору SVM (классификация по 3 классам) по этим функциям дало мне точность 90% на тестовом наборе. Эти изображения получены из видео. Я хочу тренировать LSTM в керасе на вершине этих функций. Мой фрагмент кода можно найти ниже. Проблема в том, что точность обучения не превышает 43%, что является неожиданным. Пожалуйста, помогите мне в устранении проблемы. Я пробовал с разными темпами обучения.
#Asume all necessary imports done
classes = 3
frames = 5
channels = 3
img_height = 224
img_width = 224
epochs = 20
#Model definition
model = Sequential()
model.add(TimeDistributed(Flatten(),input_shape=(frames,7,7,512)))
model.add(LSTM(256,return_sequences=False))
model.add(Dense(1024,activation="relu"))
model.add(Dense(3,activation="softmax"))
optimizer = Adam(lr=0.1,beta_1=0.9,beta_2=0.999,epsilon=None,decay=0.0)
model.compile (loss="categorical_crossentropy",optimizer=optimizer,metrics=["accuracy"])
model.summary()
train_data = np.load(open('bottleneck_features_train.npy','rb'))
#final_img_data shape --> 2342,5,7,7,512
#one_hot_labels shape --> 2342,3
model.fit(final_img_data,one_hot_labels,epochs=epochs,batch_size=2)