reduce_sum()函式和reduce_mean()函式
在計算損失時,通常會用到reduce_sum()函式來進行求和,但是在使用過程中常常會搞不清楚具體是怎樣進行計算的,通過查閱資料,逐漸搞清楚了這個函式的用法,下面就來詳細解釋一下。
在TensorFlow官方文件中有這樣的解釋:
其實在reduce_sum()中,是從維度上去考慮的。其中的引數reduction_indices很容易搞蒙圈,上個圖加深理解吧。
呼叫reduce_sum(arg1, arg2)時,引數arg1即為要求和的資料,arg2有兩個取值分別為0和1,通常用reduction_indices=[0]或reduction_indices=[1]來給arg2傳遞引數。從上圖可以看出,當arg2 = 0時,是縱向對矩陣求和,原來矩陣有幾列最後就得到幾個值;相似地,當arg2 = 1時,是橫向對矩陣求和,原來矩陣有幾行最後就得到幾個值;當省略arg2引數時,預設對矩陣所有元素進行求和,最後得到一個值。
看到這裡,函式名的字首為什麼是reduce_其實也就很容易理解了,reduce就是“對矩陣降維”的含義,下劃線後面的部分就是降維的方式,在reduce_sum()中就是按照求和的方式對矩陣降維。那麼其他reduce字首的函式也舉一反三了,比如reduce_mean()就是按照某個維度求平均值,等等。
--------------------- 本文來自 閃電小飛豬 的CSDN 部落格 ,全文地址請點選:https://blog.csdn.net/chengshuhao1991/article/details/78545723?utm_source=copy