我总是试图找到与函数名称相关的语义,因为这真的有助于理解和连接事物。
我只是想了解为什么Google为这些方法提出了reduce_ *命名约定:
是因为所有这些操作都会减小输入张量的维数吗?
答案 0 :(得分:3)
Reduce
只是一系列操作的名称,用于从对象序列创建单个对象,重复应用相同的二进制操作。
例如,数组的总和可以被视为对序列的前两个元素的+
操作的应用,然后是结果和第三个元素的总和,依此类推。这给出了整个数组的总和。因此,sum(1, 2, 3, 4)
可以计算为(((1 + 2) + 3) + 4)
。 reduce的这种实现在计算上是低效的,因为所有都是顺序计算的,所以tensorflow(和其他软件)使用并行减少(其中sum(1,2,3,4)计算得更像(1 + 2)+(3 + 4)),但这只是细节。