处理Tensorflow中tf.nn.dynamic_rnn的输出

时间:2017-09-11 07:52:17

标签: tensorflow lstm rnn

我正在将3层LSTM传递给tf.nn.dynamic_rnn函数。我想以特定的方式处理dynamic_rnn函数的输出:也就是说,我想让dynamic_rnn输出流到完全连接的层。 dynamic_rnn的输出为rank-3张量,形状为[batch_size, sequence_length, hidden_dim]

我曾经将形状为output[:, -1]的{​​{1}}传递给FC层,因为我以前只想使用[batch_size, hidden_dim]的最后一个输出。

但是,这次我想使用整个序列的输出,即dynamic_rnn,这是一个3-d张量,但是到FC层的连接的权重用2-d表示张量output[:]

1 个答案:

答案 0 :(得分:2)

查看tf.layers.dense的代码,了解如何在层中处理任何等级张量(具有最深度维度)的示例。即:tf.matmul知道如何通过适当的广播将矩阵乘法应用于3-tensor

tf.matmul(A,W)其中A的形状为[b,t,d]W的形状为[d,e],其内部尺寸为内积:输出的形状是[b,t,e]。添加形状为[e]的偏向量将同样正确地进行广播。