tf.trace()只评估对角线元素吗?

时间:2018-03-04 22:39:33

标签: tensorflow

我有一个形状为t的TensorFlow张量(d,d),一个方阵。我定义了跟踪张量tr = tf.trace(t)。现在使用tr评估session.run(tr):TensorFlow是否足够智能,只评估t的对角元素,或者首先评估t的所有元素,然后才跟踪计算?

1 个答案:

答案 0 :(得分:1)

TensorFlow将首先计算矩阵,然后运行trace op来提取/求和对角线。如果没有其他操作消耗完整矩阵(不确定它当前是否存在),XLA可能会优化掉,但TensorFlow本身会将这些操作视为或多或少的黑盒子。

如果没有完整矩阵的消费者,可能只是对代表该对角线的矢量进行计算?您还可以使用sparse tensors来避免不必要的计算,同时跟踪索引。