1
私はタグ付きの文章のリストを持っています。私は、次の方法でそれらのそれぞれを形質転換:各ワードについてKeras:POSタグ付けタスクの埋め込みレイヤーとLSTMレイヤー
- 、相対ワンホットエンコード形式(寸法
input_dim
のベクトル)を取得します。 - 以下の例で説明するように、プレパッディングを挿入します。
- スプリットサイズ
time_steps
のウィンドウを使用してlen(sentence)
サブ文章中の各文、(次の単語を予測するためのコンテキストを取得します)。例えば
time_steps=2
を使用して、単一の文が["this", "is", "an", "example"]
に変換される:最後に
[
[one_hot_enc("empty_word"), one_hot_enc("empty_word")],
[one_hot_enc("empty_word"), one_hot_enc("this")],
[one_hot_enc("this"), one_hot_enc("is")],
[one_hot_enc("is"), one_hot_enc("an")],
]
、一意のリストとしてサブ文を考慮し、X_train
列データの形状が(num_samples, time_steps, input_dim)
ありますここで、
input_dim
:私の語彙のサイズ。time_steps
:LSTMに使用するシーケンスの長さ。num_samples
:サンプル(サブ文)の数。
は今、私は小さい連続次元空間に各単語をマッピングするために、Embedding
層を使用したい、と私はコンテキストは、上記のように構築し使用するLSTM
、。
私はこのような何か試してみました:
model = Sequential()
model.add(InputLayer(input_shape=(time_steps, input_dim)))
model.add(Embedding(input_dim, embedding_size, input_length=time_steps))
model.add(LSTM(32))
model.add(Dense(output_dim))
model.add(Activation('softmax'))
をしかし、私は次のエラー与える:私は行方不明何
ValueError: Input 0 is incompatible with layer lstm_1: expected ndim=3, found ndim=4
を?私がやろうとしていることには論理的な誤りがありますか?