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

Jos*_*eph 5 naming-conventions tensorflow

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

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

  • 全部减少
  • 减少任何
  • 减少连接
  • 减少对数总和表达式
  • 减少最大
  • 减少平均数
  • 减少最小
  • 减少产品
  • 减少总和

是因为所有这些操作都减少了输入张量的维度吗?

Dmi*_*kiy 3

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

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