Neural-Networks
了解 LSTM 單元與單元格
我研究 LSTM 已經有一段時間了。我高度理解一切是如何運作的。但是,要使用 Tensorflow 來實現它們,我注意到BasicLSTMCell需要許多單位(即
num_units
)參數。從對 LSTM 的這個非常徹底的解釋中,我收集到單個LSTM 單元是以下之一
這實際上是一個 GRU 單元。
我假設 的參數
num_units
是BasicLSTMCell
指我們想要在一個層中相互連接的數量。這就留下了一個問題——在這種情況下,什麼是“細胞”?“細胞”是否等同於正常前饋神經網絡中的一層?
不幸的是,術語不一致。
num_units
在 TensorFlow 中是隱藏狀態的數量,即維度在你給出的方程中。此包中的細胞定義與文獻中使用的定義不同。在文獻中,單元是指具有單個標量輸出的對象。此包中的定義是指此類單元的水平陣列。
“LSTM 層”可能更明確,例如:
def lstm_layer(tparams, state_below, options, prefix='lstm', mask=None): nsteps = state_below.shape[0] if state_below.ndim == 3: n_samples = state_below.shape[1] else: n_samples = 1 assert mask is not None […]