首页 文章

具有张量流的多维动态rnn

提问于
浏览
0

在tensorflow的dynamic_rnn函数中,我对输出形状感到惊讶,我希望有人可以帮助我提高对RNN细胞的理解 .

例如,如果输入定义为:

x = tf.placeholder(tf.float32, [110, seq_size, input_dim])

其中seq_size = 5和input_dim = 2(即两个时间序列),110是批量大小;并且单元格被定义为,

cell = rnn_cell.BasicLSTMCell(hidden_dim)

其中hidden_dim = 6

当我创建dynamic_rnn时

outputs, states = rnn.dynamic_rnn(cell, x, dtype=tf.float32)

并检查输出的大小[110 5 6] . 这些维度是seq_size by hidden_dim的批量大小 .

问题:

1:这些维度意味着在时间序列中每个时间步有6个隐藏节点,总共30个隐藏节点(5 x 6)而不是总共6个隐藏节点 . 这是正确的解释吗?

2:由于我的输入维数是5 x 2(每个序列中有5个步骤和2个序列),在每个时间步长的输入到隐藏节点的张量流如何?张量流是否假设一个完全连通的图形,在每个隐藏单元格之前有2个输入,12个权重和6个偏差?或者是其他东西?

1 回答

  • 1

    您可以将序列视为句子,将输入视为单词 . 序列长度是句子中的单词数,也是LSTM中隐藏节点的数量;每个输入/字对应于一个隐藏节点,该节点将输入映射到一个输出 . 这就是输出数量为seq_size(5)的原因 .

    单词是一个矢量,位于多维空间中,其维数为input_dim . 在LSTM中,单词从此输入空间映射到维度数为hidden_dim的更高维空间 . 这就是为什么每个输出的大小是hidden_dim(6) .

    我相信时代是这次讨论的一个无关紧要的概念 . 请参阅The meaning of batch_size in ptb_word_lm (LSTM model of tensorflow)

相关问题