как кормить модель LSTM в Keras python? - PullRequest
2 голосов
/ 14 июля 2020

Я читал о LSTM и знаю, что алгоритм принимает значение предыдущих слов и учитывает его в параметрах следующего слова

Теперь я пытаюсь применить свой первый алгоритм LSTM

У меня есть этот код.

model = Sequential()
model.add(LSTM(units=6, input_shape = (X_train_count.shape[0], X_train_count.shape[1]), return_sequences = True))
model.add(LSTM(units=6, return_sequences=True))
model.add(LSTM(units=6, return_sequences=True))
model.add(LSTM(units=ytrain.shape[1], return_sequences=True, name='output'))
model.compile(loss='cosine_proximity', optimizer='sgd', metrics = ['accuracy'])



model.compile(loss='categorical_crossentropy',
              optimizer='rmsprop',
              metrics=['acc'])
model.summary()

cp=ModelCheckpoint('model_cnn.hdf5',monitor='val_acc',verbose=1,save_best_only=True)

model.compile(loss='categorical_crossentropy',
              optimizer='rmsprop',
              metrics=['acc'])
model.summary()

cp=ModelCheckpoint('model_cnn.hdf5',monitor='val_acc',verbose=1,save_best_only=True)


history = model.fit(X_train_count, ytrain,
                    epochs=20,
                    verbose=False,
                    validation_data=(X_test_count, yval),
                    batch_size=10,
                    callbacks=[cp])

1- Я не вижу, как LSTM узнает последовательность слов, когда мой набор данных построен на основе TFIDF?

2- Я получаю сообщение об ошибке

ValueError: Input 0 of layer sequential_8 is incompatible with the layer: expected ndim=3, found ndim=2. Full shape received: [None, 18644]
...