簡體   English   中英

Tensorflow:了解LSTM模型的層結構

[英]Tensorflow: Understanding the layer structure of LSTM model

我是tensorflow和LSTM的新手,在理解網絡的形狀和結構(權重,偏差,輸入和日志的形狀)時遇到一些麻煩。

在這段從這里獲取的特定代碼中

def recurrent_neural_network(x):
    layer = {'weights':tf.Variable(tf.random_normal([rnn_size,n_classes])),
         'biases':tf.Variable(tf.random_normal([n_classes]))}

    x = tf.transpose(x, [1,0,2])
    x = tf.reshape(x, [-1, chunk_size])
    x = tf.split(x, n_chunks, 0)

    lstm_cell = rnn_cell.BasicLSTMCell(rnn_size,state_is_tuple=True)
    outputs, states = rnn.static_rnn(lstm_cell, x, dtype=tf.float32)

    output = tf.matmul(outputs[-1],layer['weights']) + layer['biases'])

    return output
  1. 有人可以解釋為什么我們需要將x轉換為這種特定格式(轉置->重塑->拆分)

  2. 為什么將權重定義為[rnn_size,n_classes],將偏差定義為[n_classes]。

  3. 正在形成的網絡的確切結構是什么,以及權重是如何連接的,我不太了解。

  4. 有沒有我可以閱讀的網站或參考資料對您有幫助?

謝謝。

對於一般的網絡結構,LSTM是RNN網絡的擴展。 有關RNN網絡結構的說明,請參閱此經典博客文章

對於實際的LSTM,請嘗試這篇文章(也有RNN的說明)

這些不是很正式,但是它們應該比學術論文更容易閱讀和理解。

閱讀這些內容后,其余的內容就不會很難了。 X轉換的原因是因為這是static_rnn期望的格式。 rnn_size是LSTM單元的大小,因此這就是為什么權重采用這種方式成形的原因。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM