为什么tensorflow在reduce_max,reduce_min,reduce_sum等中使用reduce_ *?

时间:2017-04-13 14:03:53

标签: tensorflow naming-conventions

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

我只是想了解为什么Google为这些方法提出了reduce_ *命名约定:

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

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

1 个答案:

答案 0 :(得分:3)

Reduce只是一系列操作的名称,用于从对象序列创建单个对象,重复应用相同的二进制操作。

例如,数组的总和可以被视为对序列的前两个元素的+操作的应用,然后是结果和第三个元素的总和,依此类推。这给出了整个数组的总和。因此,sum(1, 2, 3, 4)可以计算为(((1 + 2) + 3) + 4)。 reduce的这种实现在计算上是低效的,因为所有都是顺序计算的,所以tensorflow(和其他软件)使用并行减少(其中sum(1,2,3,4)计算得更像(1 + 2)+(3 + 4)),但这只是细节。