tf.reduce_sum()函數


1
2
3
4
5
6
7
reduce_sum 是 tensor 內部求和的工具。其參數中:

input_tensor 是要求和的 tensor

axis 是要求和的 rank,如果為 none,則表示所有 rank 都要仇和

keep_dims 求和后是否要降維

這個操作的名稱,可能在 graph 中 用

已被淘汰的,被參數 axis 替代

x = tf.constant([[1, 1, 1], [1, 1, 1]])
tf.reduce_sum(x, 0) # 對 tensor 的 0 級進行求和,[1,1,1] + [1,1,1] = [2, 2, 2]
tf.reduce_sum(x, 1) # 對 tensor 的 1 級進行仇和,[1+1+1, 1+1+1] = [3, 3]
tf.reduce_sum(x, 1, keep_dims=True) # 對第 1 級進行求和,但不降維, [[3], [3]]
tf.reduce_sum(x, [0, 1]) # 0 級和 1級都要求和,6
tf.reduce_sum(x) # 因為 x 只有 2 級,所以結果同上一個,6
1
2
3
4
5
6
上面是TensorFlow官方文檔中的函數解釋。

其實在reduce_sum()中,是從維度上去考慮的(感覺這個Matlab中數據的概念比較像)


調用reduce_sum(arg1, arg2)時,參數arg1即為要求和的數據,arg2有兩個取值分別為0和1,通常用reduction_indices=[0]或reduction_indices=[1]來傳遞參數。從上圖可以看出,當arg2 = 0時,是縱向對矩陣求和,原來矩陣有幾列就得到幾個值;相似地,當arg2 = 1時,是橫向對矩陣求和;當省略arg2參數時,默認對矩陣所有元素進行求和。

看到這里,函數名的前綴為什么是reduce_其實也就很容易理解了,reduce就是“對矩陣降維”的含義,下划線后面的部分就是降維的方式,在reduce_sum()中就是按照求和的方式對矩陣降維。那么其他reduce前綴的函數也舉一反三了,比如reduce_mean()就是按照某個維度求平均值,等等。
---------------------
作者:GeorgeAI
來源:CSDN
原文:https://blog.csdn.net/georgeai/article/details/81030811
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM