在张量流中切换操作顺序时失去性能

时间:2016-09-08 20:29:49

标签: tensorflow

我想在RNN的最终输出上放置一个softmax图层。但是,并非所有序列的长度都相同,所以我使用tf.gather()来收集RNN的最终输出。出于某种原因,我必须在之后我为softmax应用矩阵乘法,如下所示:

rnn_output = make_rnn_output()
outputs = tf.reshape(rnn_output, (-1, self._num_units))

indices = (tf.range(self._batch_size) *
               self._max_steps + self._sequence_length - 1)
softmax_w = tf.get_variable('softmax_w', (self._num_units, self._output_size))
softmax_b = tf.get_variable('softmax_b', self._output_size)
logits = tf.matmul(outputs, softmax_w) + softmax_b
final_logits = tf.gather(indices)
# blah blah

如果我将聚会电话移到matmul电话之前,我的准确度会明显降低。我不明白为什么会这样,因为它应该没有区别。我想在matmul调用之前移动聚集调用,以减少在matmul中进行的不必要的操作。

0 个答案:

没有答案