You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何打印Keras LSTM设置return_state=True后的隐藏与细胞状态?

如何打印LSTM的隐藏状态和细胞状态

其实很简单,你已经通过return_state=True拿到了state_h和state_c这两个张量,接下来只需要把它们整合到模型的输出里,或者单独构建能输出这两个状态的模型,喂入数据后就能直接打印啦。

我给你一个完整的可运行示例:

from tensorflow.keras.models import Model
from tensorflow.keras.layers import Input, LSTM
import numpy as np

# 你的原始代码部分
inputs1 = Input(shape=(3, 1))
lstm1, state_h, state_c = LSTM(1, return_state=True)(inputs1)

# 构建包含所有输出的模型:LSTM输出、隐藏状态、细胞状态
model = Model(inputs=inputs1, outputs=[lstm1, state_h, state_c])

# 生成一组测试输入数据(1个样本,时间步长3,特征数1)
test_input = np.array([[[0.1], [0.2], [0.3]]])

# 运行模型,获取三个输出结果
lstm_output, h_state, c_state = model.predict(test_input)

# 打印状态值
print("LSTM输出结果:", lstm_output)
print("隐藏状态(state_h):", h_state)
print("细胞状态(state_c):", c_state)

关键点说明:

  • state_h和state_c是模型的中间输出张量,必须通过Model类把它们指定为模型输出,才能在预测时拿到具体数值。
  • 如果只关心状态,也可以简化模型输出:model = Model(inputs=inputs1, outputs=[state_h, state_c]),这样预测后直接得到两个状态值。
  • 测试数据的形状必须和Input定义的(3,1)匹配,也就是(样本数, 时间步长, 特征数),这里用1个样本做测试示例。

要是你想在训练过程中查看状态,可以自定义回调函数来获取,但如果只是快速验证,上面的预测方式最直接。

内容的提问来源于stack exchange,提问作者youngtackpark

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 03:25:22