您好,登錄后才能下訂單哦!
這篇文章主要講解了怎么使用Tensorflow中的降維函數tf.reduce_*,內容清晰明了,對此有興趣的小伙伴可以學習一下,相信大家閱讀完之后會有幫助。
在使用tensorflow時常常會使用到tf.reduce_*這類的函數,在此對一些常見的函數進行匯總
1.tf.reduce_sum
tf.reduce_sum(input_tensor , axis = None , keep_dims = False , name = None , reduction_indices = None)
參數:
返回:
該函數返回減少的張量,相當于np.sum
功能:
此函數計算一個張量的各個維度上元素的總和。
說明:
函數中的input_tensor是按照axis中已經給定的維度來減少的;除非 keep_dims 是true,否則張量的秩將在axis的每個條目中減少1;如果keep_dims為true,則減小的維度將保留為長度1。 如果axis沒有條目,則縮小所有維度,并返回具有單個元素的張量。
舉例:
x = tf.constant([[1, 1, 1], [1, 1, 1]]) tf.reduce_sum(x) # 6 tf.reduce_sum(x, 0) # [2, 2, 2] tf.reduce_sum(x, 1) # [3, 3] tf.reduce_sum(x, 1, keep_dims=True) # [[3], [3]] tf.reduce_sum(x, [0, 1]) # 6
2.reduce_min
reduce_min(input_tensor, axis=None, keep_dims=False, name=None, reduction_indices=None)
參數:
返回:
該函數返回減少的張量,相當于np.min
功能:
tf.reduce_min函數用來計算一個張量的各個維度上元素的最小值。
說明:
同樣按照axis給定的維度減少input_tensor。除非 keep_dims 是true,否則張量的秩將在axis的每個條目中減少1。如果keep_dims為true,則減小的維度將保留為長度1。 如果axis沒有條目,則縮小所有維度,并返回具有單個元素的張量。
3.reduce_max
reduce_max(input_tensor, axis=None, keep_dims=False, name=None, reduction_indices=None)
參數:
返回:
該函數返回減少的張量,相當于np.max。
功能:
計算一個張量的各個維度上元素的最大值。
說明:
按照axis給定的維度減少input_tensor。除非 keep_dims 是true,否則張量的秩將在axis的每個條目中減少1。如果keep_dims為true,則減小的維度將保留為長度1。如果axis沒有條目,則減少所有維度,并返回具有單個元素的張量。
4.reduce_mean
reduce_mean
5.reduce_all
reduce_all(input_tensor, axis=None, keep_dims=False, name=None, reduction_indices=None)
參數:
返回:
該函數返回減少的張量,相當于np.mean
功能:
計算張量的各個維度上的元素的平均值。
說明:
axis是tf.reduce_mean函數中的參數,按照函數中axis給定的維度減少input_tensor。除非keep_dims是true,否則張量的秩將在axis的每個條目中減少1。如果keep_dims為true,則縮小的維度將保留為1。 如果axis沒有條目,則減少所有維度,并返回具有單個元素的張量。
舉例:
x = tf.constant([[1., 1.], [2., 2.]]) tf.reduce_mean(x) # 1.5 tf.reduce_mean(x, 0) # [1.5, 1.5] tf.reduce_mean(x, 1) # [1., 2.]
6.reduce_any
reduce_any(input_tensor, axis=None, keep_dims=False, name=None, reduction_indices=None)
參數:
返回:
減少張量,相當于np.any
功能:
在張量的維度上計算元素的 "邏輯或"。
說明:
按照axis給定的維度減少input_tensor。除非 keep_dims 是 true,否則張量的秩將在axis的每個條目中減少1。如果keep_dims為true,則縮小的維度將保留為1。如果axis沒有條目,則會減少所有維度,并返回具有單個元素的張量。
舉例:
x = tf.constant([[True, True], [False, False]]) tf.reduce_any(x) # True tf.reduce_any(x, 0) # [True, True] tf.reduce_any(x, 1) # [True, False]
7.reduce_logsumexp
reduce_logsumexp(input_tensor, axis=None, keep_dims=False, name=None, reduction_indices=None)
參數:
返回:
減少的張量。
功能:
計算log(sum(exp(張量的各維數的元素)))。
說明:
按照給定的axis上的維度減少input_tensor。除非keep_dims是true,否則張量的秩在axis上的每一項都減少1。如果keep_dims為 true,則減少的尺寸將保留為1。如果axis沒有條目,則縮小所有維度,并返回具有單個元素的張量。這個函數在數值上比 log(sum(exp(input)))更穩定。它避免了大量輸入的 exp 引起的溢出和小輸入日志帶來的下溢。
舉例:
x = tf.constant([[0., 0., 0.], [0., 0., 0.]]) tf.reduce_logsumexp(x) # log(6) tf.reduce_logsumexp(x, 0) # [log(2), log(2), log(2)] tf.reduce_logsumexp(x, 1) # [log(3), log(3)] tf.reduce_logsumexp(x, 1, keep_dims=True) # [[log(3)], [log(3)]] tf.reduce_logsumexp(x, [0, 1]) # log(6)
8.reduce_prod
reduce_prod(input_tensor, axis=None, keep_dims=False, name=None, reduction_indices=None)
參數:
返回:
結果返回減少的張量,相當于np.prod
功能:
此函數計算一個張量的各個維度上元素的乘積。
說明:
函數中的input_tensor是按照axis中已經給定的維度來減少的;除非 keep_dims 是true,否則張量的秩將在axis的每個條目中減少1;如果keep_dims為true,則減小的維度將保留為長度1。 如果axis沒有條目,則縮小所有維度,并返回具有單個元素的張量。
看完上述內容,是不是對怎么使用Tensorflow中的降維函數tf.reduce_*有進一步的了解,如果還想學習更多內容,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。