https://blog.csdn.net/chengshuhao1991/article/details/78545723
在計算損失時,通常會用到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
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!