这是我的代码。
from keras.layers import LSTM, Input
from keras.models import Model
x = Input(shape=(3,2))
lstm1 = LSTM(units=1, return_sequences=True, return_state=True)
lstm2 = LSTM(units=1, return_sequences=False, return_state=False)
out,h,c = lstm1(x)
out = lstm2(out, initial_state=[h,c])
model = Model(inputs=x, outputs=out)
由于return_state
和return_sequences
均为False
。但是,以下代码仍返回某些内容。我想知道那是什么?
import numpy as np
y=np.array([[3,1],[2,1],
[1,2]]).reshape((1,3,2))
z=model.predict(y)
print(z)
输出:
[[-0.01467976]]
答案 0 :(得分:2)
return_sequences:布尔值。是否返回最后一个输出 输出序列或完整序列。
设置return_sequences=False
将返回上一次LSTM序列解包的状态,在您的情况下,大小为1
。
更改您的units=10
,然后您会看到它将返回大小为10的数组。
return_sequences=True
,则返回向量y1,y2,...yn
return_sequences=False
,则仅返回向量yn