前提・実現したいこと
Kerasで自然言語処理を行っています。入力文(input1)をEmbeddingとLSTMで処理したあと、もう一つの入力(input2)とLSTMの出力をconcatenateして次のAttention処理を行いたいです。input1のshapeとinput2のshapeが違ったためrepeatを行うことでshapeを整えたのですが、うまく行かず解決方法が見つかりません。教えていただけると助かります。
発生している問題・エラーメッセージ
ValueError: A `Concatenate` layer requires inputs with matching shapes except for the concat axis. Got inputs shapes: [(None, None, 100), (None, 1, 100)]
該当のソースコード
Keras
1from keras import layers, Input 2import keras.backend as K 3 4#model 5input1 = Input(shape=(None,)) 6x = layers.Embedding(vocab_size, 50, mask_zero=True, trainable=True)(input1) 7x = layers.LSTM(100, return_sequences=True, dropout=0.5, recurrent_dropout=0.1)(x) 8input2 = Input(shape=(100,)) 9y = K.repeat(input2,1) 10concatenated = layers.concatenate([x, y]) 11attn_output = AttentionWithContext()(concatenated)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/02/03 10:34
2020/02/03 12:18
2020/02/06 02:07