在 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]
,将同样正确广播。
我正在将 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]
,将同样正确广播。