我总是尝试找到与函数名称相关的语义,因为这真的有助于理解和连接事物。
我只是想了解为什么Google使用reduce_*命名约定来命名方法,例如:
- reduce_all
- reduce_any
- reduce_join
- reduce_logsumexp
- reduce_max
- reduce_mean
- reduce_min
- reduce_prod
- reduce_sum
这是因为所有这些操作都会降低输入张量的维数吗?
我总是尝试找到与函数名称相关的语义,因为这真的有助于理解和连接事物。
我只是想了解为什么Google使用reduce_*命名约定来命名方法,例如:
这是因为所有这些操作都会降低输入张量的维数吗?
Reduce
是一组操作的名称,这些操作用于从一系列对象中创建一个单一的对象,反复应用相同的二元操作。+
操作,然后将结果与第三个元素的总和相加,以此类推。 这给出了整个数组的和。因此,sum(1,2,3,4)
可以计算为 (((1 + 2) + 3) + 4)
。 这种使用 reduce 的实现在计算上效率低下,因为所有内容都是按顺序计算的,所以 TensorFlow 和其他软件使用并行 reduce(其中 sum(1,2,3,4) 就像 (1+2) + (3+4))代替,但这只是细节。