在 Tensorflow 中处理来自 tf.nn.dynamic_rnn 的输出

Handling outputs from tf.nn.dynamic_rnn in Tensorflow

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

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

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

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

tf.matmul(A,W) 其中 A 的形状为 [b,t,d] 并且 W 的形状为 [d,e] 沿内部维度取内积:输出的形状为 [b,t,e]。添加偏置向量,形状为 [e],将同样正确广播。