1

5K 行 (検証用に -1K) と 17 列 (最後の整数バイナリ ラベル) を含むデータセットがあります。

私のモデルは、単純にこの 2 層 LSTM です。

model = Sequential()
model.add(Embedding(output_dim=64, input_dim=17))
model.add(LSTM(32, return_sequences=True))
model.add(Dropout(0.5))
model.add(LSTM(32, return_sequences=False))
model.add(Dense(1))

model.compile(loss='binary_crossentropy', optimizer='rmsprop',
              class_mode='binary')

私のデータセットをパンダでロードした後

df_train = pd.read_csv(train_file)
train_X, train_y = df_train.values[:, :-1], df_train['target'].values

モデルを実行しようとすると、次のエラーが発生します。

例外: TensorFlow を使用する場合、シーケンスのタイムステップ数を明示的に定義する必要があります。- 最初のレイヤーが Embedding の場合は、必ず「input_length」引数を渡してください。それ以外の場合は、最初のレイヤーに、時間軸を含む「input_shape」または「batch_input_shape」引数があることを確認してください。

何を入れればいいinput_lengthですか?総行数?

私のデータフレームは train_X=(4000, 17) train_y=(4000,) のような形をしているので、この種のモデルを供給するためにどのように準備できますか? 入力データの形状を変更する必要がありますか?

助けてくれてありがとう!! (=

4

1 に答える 1

4

Keras は、TensorFlow で再帰型ネットワーク (LSTM など) を構築するために静的展開アプローチを使用しているようです。はinput_length、トレーニングする最長シーケンスの長さである必要があります。したがって、CSV ファイルの各行train_fileがコンマで区切られたシンボルのシーケンスである場合、最長行のシンボルの数である必要があります。

于 2016-03-18T15:58:19.157 に答える