2016-12-27 20 views
0

私はcourseraニューラルネットワーククラスに従っています。私は、オクターブの代わりにpython + kerasを使って割り当てを渡そうとしています。4グラムモデルのKeras単語埋め込み

私は前の3つを与えられた4番目の単語を予測したいと思います。私の入力文書は合計250のユニークワードです。

モデルには、各単語を50-dベクトル空間にマップする埋め込みレイヤー、シグモイド活性化関数を持つ200個のニューロンを持つ隠れレイヤー、および4番目の単語の確率が等しい250単位の出力レイヤーが必要です私の語彙の中の人には、ソフトマックスの活性化を通して。

寸法に問題があります。ここに私のコードです:任意のヒントがあまり理解されるであろう

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つのディケールベクトルを出力します。

リンクのチュートリアルに沿って、あなたの問題に合ったモッズもいくつかあります。

関連する問題