在密集层

时间:2017-10-11 20:54:36

标签: tensorflow

给定shape=[batch_size, max_time, 128](RNN的输出)的张量,max_time可能会有所不同,我想应用完全连接的层将数据投影到[batch_size, max_time, 10]形状

问题是:我是否需要首先重塑输入Tensor,合并前两个维度,然后应用tf.layers.dense,然后重塑为3D?或者我可以简单地在3D张量上使用tf.layers.dense来获得等效效果吗?

我希望为128个RNN单元和10个输出类之间的所有连接共享一个权重矩阵,允许每个批次具有可变长度max_time

1 个答案:

答案 0 :(得分:3)

经过进一步调查,看来这两个选项是等价的。

Dense.call()方法检查维数。如果它大于2,则它计算输入和权重之间的tensordot(对应于numpy.tensordot的操作),选择输入中的最后一个维度和权重中的第一个维度作为轴。否则它应用标准矩阵乘法(matmul)。

Source