【发布时间】:2020-04-30 07:09:39
【问题描述】:
我想将自定义初始状态传递给 lstm 输出,但我只有一个隐藏状态,所以如何传递零初始状态。
from tensorflow.keras import layers
x = layers.Input((None,))
x = layers.Embedding(....)(x)
x = layers.Flatten()(x)
imp_vec = Dense()(x)
现在我想使用 imp_vec 作为隐藏的初始状态并将其传递给解码器 lstm
out, states = layers.LSTM(...., return_state=True)(inputs, initial_state=[imp_vec])
以上代码返回值错误:,
ValueError: An `initial_state` was passed that is not compatible with `cell.state_size`. Received `state_spec`=ListWrapper([InputSpec(shape=(None, 200), ndim=2)]); however `cell.state_size` is [10, 10]
我发现 lstm 需要两个状态作为初始状态(即 hidden_state、cell_state)对吗?但是我只有一个隐藏状态向量可以将其传递给模型,所以我怎样才能只初始化 hidden_state 并让 lstm 自动用零初始化另一个?
【问题讨论】:
标签: python python-3.x tensorflow lstm tensorflow2.0