【问题标题】:Unexpected LSTM layer output in PyBrainPyBrain 中意外的 LSTM 层输出
【发布时间】:2013-04-26 01:46:48
【问题描述】:

我正在使用 LSTM 层在多个存储单元之间进行多路复用。也就是说,有几个输入选项,我只想将其中一个输入隐藏层。我以这种方式安排了 LSTM 的输入,因此它会根据我传递给它的 input_gate、forget_gate 和 output_gate 以及 cell_input 来选择一个合适的单元。

但是,LSTM 层似乎转换了记忆单元的值,而我希望它按原样将它们传递给输出。

例如,我传递以下输入,为方便起见,我将其按组打印,分别对应于 input_gate、forget_gate、cell_input 和 output_gate:

ig: [ 0.  1.  0.  0.  0.  0.] 
fg: [ 0.  0.  0.  0.  0.  0.]
ci: [ 0.5  0.5  0.5  0.5  0.5  0. ]
og: [ 1.  1.  0.  0.  0.  1.]

我希望 LSTM 层仅将 ci[0]ci[1]ci[5] 传递到输出,如 og 组所示。 但是,我在输出缓冲区中看到的是不同的:

LSTM out: [ 0.16597414  0.23799096  0.1135163   0.1135163   0.1135163   0.]

虽然对我来说不是绝对没有意义(第 0 和第 1 条目略大于其余条目)但此输出不是我预期的 [.5 .5 0. 0. 0.]

根据我对 LSTM 的了解,似乎没有任何从记忆单元到实际输出的转换函数。

【问题讨论】:

    标签: neural-network pybrain lstm


    【解决方案1】:

    当然是个愚蠢的问题:输出被 sigmoid 钳制。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-31
      • 2022-01-15
      • 2021-04-23
      • 2019-03-26
      相关资源
      最近更新 更多