、https://blog.keras.io/building-autoencoders-in-keras.htmlKeras:LSTM Seq2Seqオートエンコーダ入力incompabilityエラー私はここにSeq2Seqの例を実行しようとしている
from keras.layers import Input, LSTM, RepeatVector
from keras.models import Model
inputs = Input(shape=(timesteps, input_dim))
encoded = LSTM(latent_dim)(inputs)
decoded = RepeatVector(timesteps)(encoded)
decoded = LSTM(input_dim, return_sequences=True)(decoded)
sequence_autoencoder = Model(inputs, decoded)
encoder = Model(inputs, encoded)
マイ入力されているカテゴリエンコーディング、例えば
MInput = Input(shape=(MAX_LEN, CATEGORY_NUMS))
encode_seq = LSTM(32)(MInput)
decode_seq = RepeatVector(MAX_LEN)(encode_seq)
decode_seq = LSTM(CATEGORY_NUMS, return_sequences=True)(decode_seq)
autoencoder = Model(MInput, decode_seq)
encoder = Model(MInput, encode_seq)
:だから25のカテゴリおよび1000
の固定長さを有する、[1、23、6、12、4、0、0、0]、コードの更新バージョンは、のように見えますしかし、私は "入力0は層lstm_2と互換性がありません:予期したndim = 3、ndim = 2を見つけました"というエラーが出ます。
return_sequences =を最初のLSTMレイヤーに追加するか、RepeatVectorを削除すると、すべて互換性エラーが発生します。
私は自分の入力をどのように準備する必要があるのか分かりません。
ありがとうございます!
入力の形状は(batch_size、timesteps、input_dim)にする必要があります。形状は正しいですか? MAX_LENタイムステップを意味しましたか? – Ajjo
私の入力シェイプは、最大シーケンス長(MAX_LEN)とディクショナリ(CATEGORY_NUMS)のユニーク文字の数です。私はタイムステップとしてMAX_LENを使うことができると思ったが、バッチサイズへの参照はなかった? –