我正在将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[:]
。
答案 0 :(得分:2)
查看tf.layers.dense
的代码,了解如何在层中处理任何等级张量(具有最深度维度)的示例。即:tf.matmul
知道如何通过适当的广播将矩阵乘法应用于3-tensor
:
tf.matmul(A,W)
其中A
的形状为[b,t,d]
而W
的形状为[d,e]
,其内部尺寸为内积:输出的形状是[b,t,e]
。添加形状为[e]
的偏向量将同样正确地进行广播。