1. 程式人生 > 程式設計 >Tensorflow中的降維函式tf.reduce_*使用總結

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)

引數:

  • input_tensor:要減少的張量。應該有數字型別。
  • axis:要減小的尺寸。如果為None(預設),則縮小所有尺寸。必須在範圍[-rank(input_tensor),rank(input_tensor))內。
  • keep_dims:如果為true,則保留長度為1的縮小尺寸。
  • name:操作的名稱(可選)。
  • reduction_indices:axis的廢棄的名稱。

返回:

該函式返回減少的張量,相當於np.sum

功能:

此函式計算一個張量的各個維度上元素的總和。

說明:

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

舉例:

x = tf.constant([[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,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)

引數:

  • input_tensor:減少的張量。應該有數字型別。
  • axis:要減小的尺寸。如果為None(預設),則縮小所有維度。必須在[-rank(input_tensor),rank(input_tensor))範圍內。
  • keep_dims:如果為true,則保留長度為1的縮小維度。
  • name:操作的名稱(可選)。
  • reduction_indices:axis的廢棄的名稱。

返回:

該函式返回減少的張量,相當於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,reduction_indices=None)

引數:

  • input_tensor:要減少的張量。應該有數字型別。
  • axis:要減小的尺寸。如果為 None(預設),則減少所有維度。必須在[-rank(input_tensor),rank(input_tensor))範圍內。
  • keep_dims:如果為true,則保留長度為1的減少維度。
  • name:操作的名稱(可選)。
  • reduction_indices:axis的廢棄的名稱。

返回:

該函式返回減少的張量,相當於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,reduction_indices=None)

引數:

  • input_tensor:要減少的張量。應該有數字型別。
  • axis:要減小的尺寸。如果為None(預設),則減少所有維度。必須在[-rank(input_tensor),rank(input_tensor))範圍內。
  • keep_dims:如果為true,則保留長度為1的縮小尺寸。
  • name:操作的名稱(可選)。
  • reduction_indices:axis的不支援使用的名稱。

返回:

該函式返回減少的張量,相當於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,reduction_indices=None)

引數:

  • input_tensor:要減少的布林張量。
  • axis:要減小的尺寸。如果為None(預設),則減少所有維度。必須在範圍[-rank(input_tensor),rank(input_tensor))內。
  • keep_dims:如果為true,則保留長度為1的縮小維度。
  • name:操作的名稱(可選)。
  • reduction_indices:axis的已經棄用的名稱。

返回:

減少張量,相當於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,reduction_indices=None)

引數:

  • input_tensor:張量減少。應該有數字型別。
  • axis:要減小的維度。如果為None(預設),則減少所有維度。必須在[-rank(input_tensor),rank(input_tensor))範圍內。
  • keep_dims:如果為true,則保留長度為1的減少尺寸。
  • name:操作的名稱(可選)。
  • reduction_indices:axis的棄用名稱。

返回:

減少的張量。

功能:

計算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.]])
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,keep_dims=True) # [[log(3)],[log(3)]]
tf.reduce_logsumexp(x,1]) # log(6)

8.reduce_prod

reduce_prod(input_tensor,reduction_indices=None)

引數:

  • input_tensor:要減少的張量。應該有數字型別。
  • axis:要減小的尺寸。如果為None(預設),則將縮小所有尺寸。必須在[-rank(input_tensor),rank(input_tensor))範圍內。
  • keep_dims:如果為true,則保留長度為1的縮小維度。
  • name:操作的名稱(可選)。
  • reduction_indices:axis的廢棄的名稱。

返回:

結果返回減少的張量,相當於np.prod

功能:

此函式計算一個張量的各個維度上元素的乘積。

說明:

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

到此這篇關於Tensorflow中的降維函式tf.reduce_*使用總結的文章就介紹到這了,更多相關Tensorflow 降維函式tf.reduce_*內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!