Keras 当return_state和return_序列为false时,lstm返回什么

Keras 当return_state和return_序列为false时,lstm返回什么,keras,lstm,Keras,Lstm,这是我的密码 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

这是我的密码

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\u状态
return\u序列
都是
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]]

返回序列:布尔值。是否返回中的最后一个输出 输出序列,或完整序列

设置
return\u sequences=False
将返回最后一次LSTM序列展开的状态,在您的情况下,其大小为
1

更改
units=10
,您将看到它将返回一个大小为10的数组

图形表示法

  • 如果
    return\u sequences=True
    则返回向量
    y1、y2、…yn
  • 如果
    return\u sequences=False
    则只返回向量
    yn

您所说的上次LSTM序列展开的状态是什么意思?请举个例子。@chandresh添加了图我看到了。现在我明白了。顺便说一句,你的输入形状应该是[批量大小x时间步数x输入大小]