當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python tf.keras.layers.LSTMCell用法及代碼示例


LSTM 層的單元類。

繼承自:LSTMCellLayerModule

用法

tf.keras.layers.LSTMCell(
    units, activation='tanh', recurrent_activation='sigmoid',
    use_bias=True, kernel_initializer='glorot_uniform',
    recurrent_initializer='orthogonal',
    bias_initializer='zeros', unit_forget_bias=True,
    kernel_regularizer=None, recurrent_regularizer=None, bias_regularizer=None,
    kernel_constraint=None, recurrent_constraint=None, bias_constraint=None,
    dropout=0.0, recurrent_dropout=0.0, **kwargs
)

參數

  • units 正整數,輸出空間的維度。
  • activation 要使用的激活函數。默認值:雙曲正切(tanh)。如果您通過 None ,則不會應用激活(即 "linear" 激活:a(x) = x )。
  • recurrent_activation 用於循環步驟的激活函數。默認值:sigmoid (sigmoid)。如果您通過 None ,則不會應用激活(即 "linear" 激活:a(x) = x )。
  • use_bias 布爾值,(默認 True ),圖層是否使用偏置向量。
  • kernel_initializer kernel 權重矩陣的初始化器,用於輸入的線性變換。默認值:glorot_uniform
  • recurrent_initializer recurrent_kernel 權重矩陣的初始化器,用於循環狀態的線性變換。默認值:orthogonal
  • bias_initializer 偏置向量的初始化器。默認值:zeros
  • unit_forget_bias 布爾值(默認True)。如果為真,則在初始化時將遺忘門的偏差加 1。將其設置為 true 也會強製bias_initializer="zeros".建議在Jozefowicz 等人。
  • kernel_regularizer 應用於kernel 權重矩陣的正則化函數。默認值:None
  • recurrent_regularizer 應用於recurrent_kernel 權重矩陣的正則化函數。默認值:None
  • bias_regularizer 應用於偏置向量的正則化函數。默認值:None
  • kernel_constraint 應用於kernel 權重矩陣的約束函數。默認值:None
  • recurrent_constraint 應用於recurrent_kernel 權重矩陣的約束函數。默認值:None
  • bias_constraint 應用於偏置向量的約束函數。默認值:None
  • dropout 在 0 和 1 之間浮點數。為輸入的線性變換而下降的單位分數。默認值:0。
  • recurrent_dropout 在 0 和 1 之間浮點數。用於循環狀態的線性變換的單位的分數。默認值:0。

有關 RNN API 使用的詳細信息,請參閱 Keras RNN API 指南。

此類處理整個時間序列輸入中的一個步驟,而tf.keras.layer.LSTM 處理整個序列。

例如:

inputs = tf.random.normal([32, 10, 8])
rnn = tf.keras.layers.RNN(tf.keras.layers.LSTMCell(4))
output = rnn(inputs)
print(output.shape)
(32, 4)
rnn = tf.keras.layers.RNN(
   tf.keras.layers.LSTMCell(4),
   return_sequences=True,
   return_state=True)
whole_seq_output, final_memory_state, final_carry_state = rnn(inputs)
print(whole_seq_output.shape)
(32, 10, 4)
print(final_memory_state.shape)
(32, 4)
print(final_carry_state.shape)
(32, 4)

調用參數:

  • inputs:一個二維張量,形狀為[batch, feature].
  • states:與單元格的單位相對應的 2 個張量的列表。兩個都有形狀[batch, units],第一個張量是前一個時間步的 memory 狀態,第二個張量是前一個時間步的進位狀態。對於時間步 0,用戶提供的初始狀態將被饋送到單元格。
  • training:Python 布爾值,指示層應該在訓練模式還是推理模式下運行。僅在以下情況下相關dropout或者recurrent_dropout被使用。

相關用法


注:本文由純淨天空篩選整理自tensorflow.org大神的英文原創作品 tf.keras.layers.LSTMCell。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。