了解深度LSTM网络中的辍学情况

时间:2019-10-18 11:07:31

标签: python tensorflow keras lstm

我正在使用keras训练2层(无状态)LSTM网络,并且我试图了解使用辍学时网络的哪些部分实际上设置为0。

体系结构如下

model = Sequential()
# first LSTM layer
model.add(LSTM(64, input_shape=(X.shape[1], X.shape[2]), return_sequences=True, dropout=0.4, recurrent_dropout=0.4))
model.add(Dropout(0.5))
# second LSTM layer
model.add(LSTM(64, dropout=0.4, recurrent_dropout=0.4))
model.add(Dropout(0.5))
model.add(Dense(1))

根据LSTM documentation

  
      
  • 辍学:在0到1之间浮动。为输入的线性变换而下降的单位的分数。
  •   
  • recurrent_dropout :在0到1之间浮动。为递归状态的线性转换,要下降的单位的分数。
  •   

我有几个问题需要澄清:

  1. 如上所述,同时使用dropoutrecurrent_dropout参数和Dropout()方法是否多余?
  2. “输入的线性变换”是LSTM的哪一部分?是学习的体重矩阵之一吗?
  3. “复发状态”是LSTM的哪一部分?是单元格状态C还是“忘记/更新”门之一?

0 个答案:

没有答案