在TensorFlow中,递归layer无论是LSTM还是GRU,最终都是调用的RNN的call方法,返回的RNN的call方法返回的值,其实现链接位于recurrent.py

对其进行简化,代码如下

if self.return_sequences:
  output = outputs
else:
  output = last_output

if self.return_state:
    states = list(states)
  return [output] + states
else:
  return output

也就是说,return_sequence参数决定的是返回第一个参数是最后一个输出(final_output)还是整个序列的输出(outputs),而return_state决定是在返回的输出后(无论是哪种输出),是否输出最后一个细胞状态。

使用LSTM时候如果return_state = True,那么会在output的基础上多返回两个值,如果是GRU,则只会返回一个值,因为后两个值相同。

解释return_sequence和return_state
更详细的说明可以看一下这篇博客,讲解的非常清楚
参考链接:https://www.dlology.com/blog/how-to-use-return_state-or-return_sequences-in-keras/

相关文章:

  • 2022-03-02
  • 2021-11-26
  • 2022-12-23
  • 2022-01-03
  • 2021-01-12
  • 2021-06-04
  • 2021-11-20
  • 2021-12-29
猜你喜欢
  • 2021-09-30
  • 2021-06-22
  • 2021-07-04
  • 2022-01-30
  • 2021-11-11
  • 2021-12-18
  • 2021-06-21
相关资源
相似解决方案