Neural-Networks

了解 LSTM 單元與單元格

  • October 23, 2016

我研究 LSTM 已經有一段時間了。我高度理解一切是如何運作的。但是,要使用 Tensorflow 來實現它們,我注意到BasicLSTMCell需要許多單位(即num_units)參數。

從對 LSTM 的這個非常徹底的解釋中,我收集到單個LSTM 單元是以下之一

LSTM 單元

這實際上是一個 GRU 單元。

我假設 的參數num_unitsBasicLSTMCell指我們想要在一個層中相互連接的數量。

這就留下了一個問題——在這種情況下,什麼是“細胞”?“細胞”是否等同於正常前饋神經網絡中的一層?

不幸的是,術語不一致。num_units在 TensorFlow 中是隱藏狀態的數量,即維度在你給出的方程中。

此外,來自https://github.com/tensorflow/tensorflow/blob/master/tensorflow/g3doc/api_docs/python/functions_and_classes/shard9/tf.nn.rnn_cell.RNNCell.md

此包中的細胞定義與文獻中使用的定義不同。在文獻中,單元是指具有單個標量輸出的對象。此包中的定義是指此類單元的水平陣列。

“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
   []

引用自:https://stats.stackexchange.com/questions/241985

comments powered by Disqus