溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎么使用Tensorflow中的降維函數(shù)tf.reduce_*

發(fā)布時間:2020-08-01 13:53:11 來源:億速云 閱讀:237 作者:小豬 欄目:開發(fā)技術(shù)

這篇文章主要講解了怎么使用Tensorflow中的降維函數(shù)tf.reduce_*,內(nèi)容清晰明了,對此有興趣的小伙伴可以學(xué)習(xí)一下,相信大家閱讀完之后會有幫助。

在使用tensorflow時常常會使用到tf.reduce_*這類的函數(shù),在此對一些常見的函數(shù)進(jìn)行匯總

1.tf.reduce_sum

tf.reduce_sum(input_tensor , axis = None , keep_dims = False , name = None , reduction_indices = None)

參數(shù):

  • input_tensor:要減少的張量。應(yīng)該有數(shù)字類型。
  • axis:要減小的尺寸。如果為None(默認(rèn)),則縮小所有尺寸。必須在范圍[-rank(input_tensor), rank(input_tensor))內(nèi)。
  • keep_dims:如果為true,則保留長度為1的縮小尺寸。
  • name:操作的名稱(可選)。
  • reduction_indices:axis的廢棄的名稱。

返回:

該函數(shù)返回減少的張量,相當(dāng)于np.sum

功能:

此函數(shù)計算一個張量的各個維度上元素的總和。

說明:

函數(shù)中的input_tensor是按照axis中已經(jīng)給定的維度來減少的;除非 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)

參數(shù):

  • input_tensor:減少的張量。應(yīng)該有數(shù)字類型。
  • axis:要減小的尺寸。如果為None(默認(rèn)),則縮小所有維度。必須在[-rank(input_tensor), rank(input_tensor))范圍內(nèi)。
  • keep_dims:如果為true,則保留長度為1的縮小維度。
  • name:操作的名稱(可選)。
  • reduction_indices:axis的廢棄的名稱。

返回:

該函數(shù)返回減少的張量,相當(dāng)于np.min

功能:

tf.reduce_min函數(shù)用來計算一個張量的各個維度上元素的最小值。 

說明:

同樣按照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)

參數(shù):

  • input_tensor:要減少的張量。應(yīng)該有數(shù)字類型。
  • axis:要減小的尺寸。如果為 None(默認(rèn)),則減少所有維度。必須在[-rank(input_tensor), rank(input_tensor))范圍內(nèi)。
  • keep_dims:如果為true,則保留長度為1的減少維度。
  • name:操作的名稱(可選)。
  • reduction_indices:axis的廢棄的名稱。

返回:

該函數(shù)返回減少的張量,相當(dāng)于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)

參數(shù):

  • input_tensor:要減少的張量。應(yīng)該有數(shù)字類型。
  • axis:要減小的尺寸。如果為None(默認(rèn)),則減少所有維度。必須在[-rank(input_tensor), rank(input_tensor))范圍內(nèi)。
  • keep_dims:如果為true,則保留長度為1的縮小尺寸。
  • name:操作的名稱(可選)。
  • reduction_indices:axis的不支持使用的名稱。

返回:

該函數(shù)返回減少的張量,相當(dāng)于np.mean

功能:

計算張量的各個維度上的元素的平均值。

說明:

axis是tf.reduce_mean函數(shù)中的參數(shù),按照函數(shù)中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)

參數(shù):

  • input_tensor:要減少的布爾張量。
  • axis:要減小的尺寸。如果為None(默認(rèn)),則減少所有維度。必須在范圍[-rank(input_tensor), rank(input_tensor))內(nèi)。
  • keep_dims:如果為true,則保留長度為1的縮小維度。
  • name:操作的名稱(可選)。
  • reduction_indices:axis的已經(jīng)棄用的名稱。

返回:

減少張量,相當(dāng)于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)

參數(shù):

  • input_tensor:張量減少。應(yīng)該有數(shù)字類型。
  • axis:要減小的維度。如果為None(默認(rèn)),則減少所有維度。必須在[-rank(input_tensor), rank(input_tensor))范圍內(nèi)。
  • keep_dims:如果為true,則保留長度為1的減少尺寸。
  • name:操作的名稱(可選)。
  • reduction_indices:axis的棄用名稱。

返回:

減少的張量。

功能:

計算log(sum(exp(張量的各維數(shù)的元素)))。 

說明:

按照給定的axis上的維度減少input_tensor。除非keep_dims是true,否則張量的秩在axis上的每一項(xiàng)都減少1。如果keep_dims為 true,則減少的尺寸將保留為1。如果axis沒有條目,則縮小所有維度,并返回具有單個元素的張量。這個函數(shù)在數(shù)值上比 log(sum(exp(input)))更穩(wěn)定。它避免了大量輸入的 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)

參數(shù):

  • input_tensor:要減少的張量。應(yīng)該有數(shù)字類型。
  • axis:要減小的尺寸。如果為None(默認(rèn)),則將縮小所有尺寸。必須在[-rank(input_tensor), rank(input_tensor))范圍內(nèi)。
  • keep_dims:如果為true,則保留長度為1的縮小維度。
  • name:操作的名稱(可選)。
  • reduction_indices:axis的廢棄的名稱。

返回:

結(jié)果返回減少的張量,相當(dāng)于np.prod

功能:

此函數(shù)計算一個張量的各個維度上元素的乘積。 

說明:

函數(shù)中的input_tensor是按照axis中已經(jīng)給定的維度來減少的;除非 keep_dims 是true,否則張量的秩將在axis的每個條目中減少1;如果keep_dims為true,則減小的維度將保留為長度1。 如果axis沒有條目,則縮小所有維度,并返回具有單個元素的張量。

看完上述內(nèi)容,是不是對怎么使用Tensorflow中的降維函數(shù)tf.reduce_*有進(jìn)一步的了解,如果還想學(xué)習(xí)更多內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI