1. 程式人生 > >一文理解Tensorflow中reduce_mean reduce_sum reduce_max...系列

一文理解Tensorflow中reduce_mean reduce_sum reduce_max...系列

在Tensorflow(TF)中,常常會看到“reduce_"系列的東西,比如reduce_sum,reduce_mean…,剛剛開始我覺得,求和就sum就行,為什麼加一個reduce_字首?

後來我意識到,每一次求和或者求平均值,其實都是自動的對Tensor進行了降維,例如,對向量[1,2,3,4]求和,得到一個標量10。

隨便找一個TF的程式碼,我們來分析一下。

def _scale_l2(x, norm_length):
    alpha = **tf.reduce_max(tf.abs(x), (1, 2), keep_dims=True)** + 1e-12
    l2_norm = alpha * tf.sqrt(
        **tf.reduce_sum(tf.pow(x / alpha, 2), (1, 2), keep_dims=True)**               + 1e-6)
    x_unit = x / l2_norm
    return norm_length * x_unit