2016-12-27 4 views
0

나는 coursera 신경망 클래스를 따르고 있으며 옥타브 대신 파이썬 + 케라를 사용하여 과제를 전달하려고합니다.4 개 그램 모델에 Keras 단어 임베딩

이전 세 개를 주어진 네 번째 단어를 예측하고 싶습니다. 내 입력 문서는 총 250 개의 고유 단어입니다.

모델에는 각 단어를 50-d 벡터 공간, Sigmoid 활성화 기능이있는 200 개의 뉴런이있는 숨겨진 레이어 및 네 번째 단어의 확률이 동일한 250 단위의 출력 레이어로 매핑하는 포함 레이어가 있어야합니다 softmax 활성화를 통해 내 어휘에있는 사람들에게.

치수에 문제가 있습니다. 여기 내 코드입니다 : 어떤 힌트가 많이 이해할 수있을 것이다

Exception: Input 0 is incompatible with layer dense_1: expected ndim=2, found ndim=3 

:

from keras.models import Sequential 

    from keras.layers import Dense, Activation, Embedding 


    model = Sequential([Embedding(250,50), 
       Dense(200, activation='sigmoid'), 
       Dense(250, activation='softmax') 

    ]) 



    model.compile(optimizer='rmsprop', 
      loss='categorical_crossentropy', 
      metrics=['accuracy']) 

아직 나는 다음과 같은 오류가 발생하고 있기 때문에 모델을 컴파일 할 수 없습니다. 미리 감사 https://blog.keras.io/using-pre-trained-word-embeddings-in-a-keras-model.html

가입일

답변

0

"매립층이하는 모든 시퀀스 즉, 매립 행렬의 해당 인덱스 발견 벡터의 정수 입력을 매핑하는 것이다 [1,2]로 변환 될 [embeddings [1], embeddings [2]]. 이것은 임베디드 레이어의 출력이 3D 텐서 모양 (samples, sequence_length, embedding_dim)이됨을 의미합니다.

임베디드 레이어는 3 차원 벡터를 출력하지만 고밀도 레이어는 2 개의 희미한 vecs를 기대합니다.

링크 튜토리얼과 문제 해결에 도움이되는 몇 가지 수정을 따를 수 있습니다.