시퀀스 언어 모델에 시퀀스를 구현하려고했습니다. 학습 과정에서 모델은 GloVe에 의해 생성 된 일련의 50d 단어 벡터를 취하고 다음 단어를 의미하는 1-to-V (V는 단어의 크기) 벡터를 출력하므로 다음 단어의 분포로 간주 할 수있다 테스트 과정에서 현재 시간 단계의 입력 단어 벡터에 연결하고 112 단어의 어휘로 시도했습니다.Keras + Theano를 사용하여 LSTM을 순차화할 시퀀스를 피팅 할 때 MemoryError 발생.
다음, 나는 다음과 같은 두 가지 모델을 구축 :
model1 = Sequential()
model1.add(LSTM(112, return_sequences=True, input_shape=(31, 50)))
model2 = Sequential()
model2.add(LSTM(112, return_sequences=True, input_shape=(31, 50)))
model2.add(TimeDistributed(Dense(112, activation="linear")))
내가
model.fit(X, Y, batch_size=128, nb_epoch=256, validation_rate=0.1)
model1
추락 첫 번째 모델을 맞게했을 때와 MemoryError의를 제기하지만, 두 번째 모델 model2
정상적으로 완료 . X는 (number_of_sentences, max_words_in_one_sentence, 50)
의 모양을 가지며, Y는 (number_of_sentences, max_words_in_one_sentence, 112)
의 모양을 갖는다. 이 예에서는 number_of_sentences=10000, max_words_in_one_sentence=13
입니다.
LSTM 레이어에 새로운 시간 분산 밀도를 추가하고 언어 모델을 구현하려는 모델이 어떤 것인지 궁금합니다.