Ошибка в двунаправленной оболочке в Keras - PullRequest
0 голосов
/ 29 июня 2018

Я экспериментирую с двунаправленной оболочкой в ​​Keras, и пример кода выглядит следующим образом.

T = 8
D = 2
M = 3
input_ = Input(shape=(T, D))
rnn = Bidirectional(LSTM(M, return_state=True, return_sequences=True))
#rnn = LSTM(M, return_state=True, return_sequences=True)
x = rnn(input_)

model = Model(inputs=input_, outputs=x)
X = np.random.randn(1,T,D)
o, h1, c1, h2, c2 = model.predict(X)

Однако выдает ошибку

ValueError                                Traceback (most recent call last)
<ipython-input-82-53f1c7a28b54> in <module>()
19   print("c:", c1)
20 
---> 21 lstm1()

<ipython-input-82-53f1c7a28b54> in lstm1()
8   rnn = Bidirectional(LSTM(M, return_state=True, return_sequences=True))
9   #rnn = LSTM(M, return_state=True, return_sequences=True)
---> 10   x = rnn(input_)

...

ValueError: Tried to convert 'tensor' to a tensor and failed. Error: 
Shapes must be equal rank, but are 3 and 2
From merging shape 0 with other shapes. for 'bidirectional_26/ReverseV2_1
/packed' (op: 'Pack') with input shapes: [?,?,3], [?,3], [?,3].

Если я удалю Двунаправленную оболочку, то есть

rnn = LSTM(M, return_state=True, return_sequences=True)

тогда у него нет проблем. Любой совет будет принята с благодарностью!

...