Keras TLSTM ext Классификация, отличающаяся поездом и формой испытания - PullRequest
0 голосов
/ 14 февраля 2020

Я работаю над проблемой классификации текста, в которой я использую вложения GloVe в сеть LSTM. Я предварительно обработал текст и выполнил следующее:

max_features = 300 
tokenizer = Tokenizer(num_words=max_features, split=' ')
tokenizer.fit_on_texts(train['text'].values)
train_f = tokenizer.texts_to_sequences(train['text'].values)
word_index = tokenizer.word_index #used for word embeddings
train_f = pad_sequences(train_f)

Форма train_f: (25000, 1225). Затем я выполнил то же самое на тестовом наборе:

max_features = 300 
tokenizer = Tokenizer(num_words=max_features, split=' ')
tokenizer.fit_on_texts(test['text'].values)
test_f = tokenizer.texts_to_sequences(test['text'].values)
test_f = pad_sequences(test_f)

Это привело к форме теста: (25000, 1223). Идем дальше и загружаем вложения и вписываемся в сеть. Я не могу предсказать на тестовом наборе, как я получаю ошибку:

ValueError: Error when checking input: expected embedding_2_input to have shape (1225,) but got array with shape (1223,)

Я не могу определить свою ошибку. Любая помощь будет высоко ценится!

1 Ответ

0 голосов
/ 14 февраля 2020

Я думаю, что у вас есть ошибка в коде вашего набора тестов:

tokenizer.fit_on_texts(test['text'].values)
test_f = tokenizer.texts_to_sequences(train['text'].values)

должно быть:

tokenizer.fit_on_texts(test['text'].values)
test_f = tokenizer.texts_to_sequences(test['text'].values)

Редактировать

Это похоже на вас просто не проводите одинаковый тест и тренируйте форму перед тем, как ее токенизировать.

Проверьте форму ваших test['text'] и train['text']

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