张量流:理解LSTM模型的层结构

2024-04-23 09:22:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我是tensorflow和LSTM的新手,在理解网络的形状和结构(权重、偏差、输入和日志的形状)时遇到了一些困难

在这段取自here的特定代码中

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. 为什么权重被定义为[n\u大小,n\u类]而偏差被定义为[n\u类]

  3. 正在形成的网络的确切结构是什么,权重是如何连接的,我不完全理解

  4. 有什么网站或参考,我可以阅读,这将有助于

谢谢


Tags: 网络layersizetfcellrandom结构variable
1条回答
网友
1楼 · 发布于 2024-04-23 09:22:29

对于一般的网络结构,LSTMs是RNN网络的一个扩展。有关RNN网络结构的解释,请参阅this classic blog post

对于实际的LSTMs,try this post (which also has an RNN explanation)

这些不是很正式,但它们应该比学术论文更容易阅读和理解

一旦你读了这些,剩下的就不难了。转换X的原因是因为这是静态的rnn所期望的格式。rnnèu size是LSTM单元的大小,这就是为什么权重是这样的

相关问题 更多 >