我将3层LSTM传递给tf.nn.dynamic_rnn
函数。我想以特定的方式处理dynamic_rnn
函数的输出:也就是说,我想让dynamic_rnn
输出流到一个完全连接的层。 dynamic_rnn
的输出是等级-3张量,形状为[batch_size, sequence_length, hidden_dim]
。
我曾经把output[:, -1]
(其形状为[batch_size, hidden_dim]
)传递给FC层,因为我以前只想使用dynamic_rnn
的最后一个输出。
然而,这次我想使用整个序列的输出,即output[:]
,这是一个3-d张量,但是到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]
,将类似地正确广播。