Встраивание предложения в keras

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

Я знаю, как передавать векторы слов в сеть, но у меня проблемы с встраиванием предложений. В моем случае у меня есть простое представление предложений (добавление векторов слов по оси, например np.sum(sequences, axis=0)).

Мой вопрос: чем мне заменить слой Embedding в приведенном ниже коде, чтобы вместо этого подавать вложения предложений?

model = Sequential()
model.add(Embedding(len(embedding_weights), len(embedding_weights[0]), weights=[embedding_weights], mask_zero=True, 
input_length=MAX_SEQUENCE_LENGTH, trainable=True))
model.add(LSTM(LSTM_SIZE, activation='relu'))

Я пробовал слой Embedding (без установки весов) и слой Input, но оба выдавали ошибки.


person daria    schedule 09.07.2017    source источник
comment
Вы пытались передать его напрямую в LSTM с параметром input_shape=(nr_sentences,embedding_dim)? Взгляните на самый первый пример документации Keras Recurrent Layers.   -  person Alex    schedule 11.07.2017
comment
model = Sequential() model.add(LSTM(32, input_shape=(len(labels), MAX_SENTENCE_SEQUENCE_LENGTH))) model.add(Dense(2, activation='softmax')) где MAX_SENTENCE_SEQUENCE_LENGTH = 65 дает Exception: Error when checking model input: expected lstm_input_1 to have 3 dimensions, but got array with shape (8, 65)   -  person daria    schedule 12.07.2017
comment
Ошибка означает, что вы вводите данные неправильно. Я предполагаю, что вам нужно следующее измерение для вашей задачи: (no_documents, max_nr_sentences_per_doc, sentence_embedding_dim) В противном случае, пожалуйста, предоставьте больше информации о задаче, которую вы хотите выполнить, и ваших входных/выходных данных.   -  person Alex    schedule 24.07.2017