Я пытаюсь выполнить простую классификацию документов, используя вложения предложений в 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
, но оба выдавали ошибки.
input_shape=(nr_sentences,embedding_dim)
? Взгляните на самый первый пример документации Keras Recurrent Layers. - person Alex   schedule 11.07.2017model = 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(no_documents, max_nr_sentences_per_doc, sentence_embedding_dim)
В противном случае, пожалуйста, предоставьте больше информации о задаче, которую вы хотите выполнить, и ваших входных/выходных данных. - person Alex   schedule 24.07.2017