LSTM
類別keras.layers.LSTM(
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,
activity_regularizer=None,
kernel_constraint=None,
recurrent_constraint=None,
bias_constraint=None,
dropout=0.0,
recurrent_dropout=0.0,
seed=None,
return_sequences=False,
return_state=False,
go_backwards=False,
stateful=False,
unroll=False,
use_cudnn="auto",
**kwargs
)
長短期記憶層 - Hochreiter 1997。
根據可用的執行時硬體和限制,此層將選擇不同的實作方式(基於 cuDNN 或後端原生)來最大化效能。如果 GPU 可用,且該層的所有參數都符合 cuDNN 核心的要求(詳見下方),則在使用 TensorFlow 後端時,該層將使用快速的 cuDNN 實作。使用 cuDNN 實作的要求如下:
activation
== tanh
recurrent_activation
== sigmoid
dropout
== 0 且 recurrent_dropout
== 0unroll
為 False
use_bias
為 True
例如:
>>> inputs = np.random.random((32, 10, 8))
>>> lstm = keras.layers.LSTM(4)
>>> output = lstm(inputs)
>>> output.shape
(32, 4)
>>> lstm = keras.layers.LSTM(
... 4, return_sequences=True, return_state=True)
>>> whole_seq_output, final_memory_state, final_carry_state = lstm(inputs)
>>> whole_seq_output.shape
(32, 10, 4)
>>> final_memory_state.shape
(32, 4)
>>> final_carry_state.shape
(32, 4)
參數
tanh
)。如果傳遞 None
,則不套用活化函數(即「線性」活化:a(x) = x
)。sigmoid
)。如果傳遞 None
,則不套用活化函數(即「線性」活化:a(x) = x
)。True
),表示該層是否應使用偏差向量。kernel
權重矩陣的初始化器,用於輸入的線性轉換。預設值:"glorot_uniform"
。recurrent_kernel
權重矩陣的初始化器,用於循環狀態的線性轉換。預設值:"orthogonal"
。"zeros"
。True
)。如果為 True
,則在初始化時將 1 加到遺忘閘的偏差。將其設定為 True
也會強制 bias_initializer="zeros"
。建議在 Jozefowicz 等人的論文中使用此方法。kernel
權重矩陣的正規化器函數。預設值:None
。recurrent_kernel
權重矩陣的正規化器函數。預設值:None
。None
。None
。kernel
權重矩陣的約束函數。預設值:None
。recurrent_kernel
權重矩陣的約束函數。預設值:None
。None
。False
。False
。False
)。如果為 True
,則反向處理輸入序列並返回反轉的序列。False
)。如果為 True
,則批次中索引 i 的每個樣本的最後狀態將用作後續批次中索引 i 的樣本的初始狀態。True
,則網路將會展開,否則將使用符號迴圈。展開可以加速 RNN,但它往往更耗費記憶體。展開僅適用於短序列。"auto"
將嘗試在可行時使用 cuDNN,如果不可行,則會回退到預設實作。呼叫參數
(批次, 時間步長, 特徵)
。(樣本, 時間步長)
的二元張量,指示是否應遮罩給定的時間步長(可選)。單個 True
條目表示應使用對應的時間步長,而 False
條目表示應忽略對應的時間步長。預設值為 None
。dropout
或 recurrent_dropout
時才相關(可選)。預設值為 None
。None
會導致建立填滿零的初始狀態張量)。預設值為 None
。