0
0 комментариев

Как подать на вход RNN фичи, представленные списком векторов(эквивалентно предложению), а не одним вектором(эквивалентно слову)?

Сейчас я для каждого слова в предложении вычисляю векторное представление(word2vec), домножаю на TF-IDF и
усредняю, получается один вектор фиксированной размерности. А хочется подавать на вход не среднее, а последовательность.

# Сейчас модель такая - 2 фичи - 2 вектора размерности 300 на входе
r_model = Sequential()
r_model.add(LSTM(200, input_shape=(2, 300), return_sequences=True))
r_model.add(LSTM(300, return_sequences=True))
...

Я хочу дополнять списки векторов слов нулевыми векторами до длины максимального — 105. А потом подать такую последовательность на вход:

# Хочется подавать на вход последовательность
# max_len - максимальная длина списка векторов
max_len = 105
r_model = Sequential()
r_model.add(LSTM(200, input_shape(2, max_len, 300), return_sequences=True))
r_model.add(LSTM(300, return_sequences=True))
...

Но keras говорит, что требуется шэйп размерностью 3, а не 4, как во втором случае:

Input 0 is incompatible with layer lstm_5: expected ndim=3, found ndim=4

Изменен статус публикации
Добавить комментарий