gpt4 book ai didi

python - 访问 lstm 节点中的内部遗忘门值

转载 作者:太空狗 更新时间:2023-10-30 01:36:30 25 4
gpt4 key购买 nike

我目前已经使用 Keras 创建了一个 LSTM 网络,并且必须为网络的每个节点获取内部遗忘门值。每次调用 predict() 函数时,我都必须获取遗忘门/值。有可能吗?

如果没有,那么是否有任何其他库可以在每一步以方便的方式访问这些内部门控值?

期待尽早获得这方面的帮助。谢谢。

最佳答案

如何获取内部权重和参数?

如果您将 KerasTensorflow 后端(这是推荐的后端)一起使用,您可以使用 tf.global_variables()。为方便起见,创建一个字典,将图层名称映射到相应的 tf.Variable:

variable_dict = dict([])
for variable in tf.global_variable():
variable_dict[variable.name] = variable

在这个简单的映射之后,你可以直接通过它的名字来引用一个变量。 Keras 的 LSTM 层(比方说,model.summary() 显示 LSTM 层被命名为 'lstm_1')具有以下内部变量:'lstm_1/kernel:0''lstm_1/recurrent_kernel:0''lstm_1/bias:0'。要获取它们的值,您需要对 Tensorflow 的 SessionTensor 对象有一定的了解。

现在是棘手的部分:Keras 如何将变量存储在这些张量中?该文档未指定有关它的任何信息,因此很遗憾,您将不得不引用 source code .查看LSTMCell类,特别是build(描述定义了哪些变量)和call(描述这些变量在计算中如何使用)方法.好像内部参数是保存在变量里的,命名为*_i, *_f, *_c, *_o(例如 self.kernel_o)。


计算时如何获取中间值?

不幸的是,您将不得不直接修改计算图。这比听起来容易:只需编辑 Tensorflow 的代码并将这些变量存储在全局范围内命名张量中的某个位置。


If not then is there any other library which gives access to these internal gate values in a convenient manner at every step?

如您所见,带有 Tensorflow 后端的 Keras 非常方便。我认为没有比这更方便的了。

关于python - 访问 lstm 节点中的内部遗忘门值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48222433/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com