为什么TensorFlow在reduce_max、reduce_min、reduce_sum等函数中使用了reduce_*?

5

我总是尝试找到与函数名称相关的语义,因为这真的有助于理解和连接事物。

我只是想了解为什么Google使用reduce_*命名约定来命名方法,例如:

  • reduce_all
  • reduce_any
  • reduce_join
  • reduce_logsumexp
  • reduce_max
  • reduce_mean
  • reduce_min
  • reduce_prod
  • reduce_sum

这是因为所有这些操作都会降低输入张量的维数吗?


1
我认为他们后悔使用这些名称,因此在Tensorflow的最新版本中更改了它们。 - Aaron
1个回答

3
Reduce 是一组操作的名称,这些操作用于从一系列对象中创建一个单一的对象,反复应用相同的二元操作。
例如,数组的总和可以视为对序列的前两个元素应用 + 操作,然后将结果与第三个元素的总和相加,以此类推。 这给出了整个数组的和。因此,sum(1,2,3,4) 可以计算为 (((1 + 2) + 3) + 4)。 这种使用 reduce 的实现在计算上效率低下,因为所有内容都是按顺序计算的,所以 TensorFlow 和其他软件使用并行 reduce(其中 sum(1,2,3,4) 就像 (1+2) + (3+4))代替,但这只是细节。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接