當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python tf.math.bincount用法及代碼示例


計算整數數組中每個值的出現次數。

用法

tf.math.bincount(
    arr, weights=None, minlength=None, maxlength=None, dtype=tf.dtypes.int32,
    name=None, axis=None, binary_output=False
)

參數

  • arr 應計算其值的張量、RaggedTensor 或 SparseTensor。如果 axis=-1 ,這些張量的秩必須為 2。
  • weights 如果非無,則必須與 arr 具有相同的形狀。對於 arr 中的每個值,bin 將按相應的權重而不是 1 遞增。
  • minlength 如果給定,確保輸出的長度至少為 minlength ,必要時在末尾填充零。
  • maxlength 如果給定,則跳過 arr 中等於或大於 maxlength 的值,確保輸出的長度最多為 maxlength
  • dtype 如果weights 為無,則確定輸出箱的類型。
  • name 關聯操作的名稱範圍(可選)。
  • axis 要切片的軸。 axis 及以下的軸將在 bin 計數之前展平。目前,僅支持 0-1。如果沒有,所有軸都將被展平(與傳遞 0 相同)。
  • binary_output 如果為 True,此操作將輸出 1 而不是令牌出現的次數(相當於 one_hot + reduce_any 而不是 one_hot + reduce_add)。默認為假。

返回

  • weights 或給定的 dtype 具有相同 dtype 的向量。 bin 值。

拋出

  • InvalidArgumentError 如果提供負值作為輸入。

如果沒有給出minlengthmaxlength,如果arr不為空,則返回長度為tf.reduce_max(arr) + 1的向量,否則返回長度為0的向量。如果 weights 為非無,則輸出的索引 i 在每個索引處存儲 weights 中的值的總和,其中 arr 中的對應值為 i

values = tf.constant([1,1,2,3,2,4,4,5])
tf.math.bincount(values) #[0 2 2 1 2 1]

向量長度 = 向量values 中的最大元素為 5。加上 1,即 6 將是向量長度。

輸出中的每個 bin 值表示特定索引的出現次數。這裏,輸出中的索引 1 的值為 2。這表示值 1 在 values 中出現了兩次。

values = tf.constant([1,1,2,3,2,4,4,5])
weights = tf.constant([1,5,0,1,0,5,4,5])
tf.math.bincount(values, weights=weights) #[0 6 0 1 9 5]

Bin 將增加相應的權重而不是 1。這裏,輸出中的索引 1 的值為 6。這是與 values 中的值對應的權重的總和。

Bin-counting 在某個軸上

此示例采用二維輸入並返回 Tensor,並對每個樣本進行 bincounting。

data = np.array([[1, 2, 3, 0], [0, 0, 1, 2]], dtype=np.int32)
tf.math.bincount(data, axis=-1)
<tf.Tensor:shape=(2, 4), dtype=int32, numpy=
  array([[1, 1, 1, 1],
         [2, 1, 1, 0]], dtype=int32)>

Bin-counting 與 binary_output

這個例子給出了二進製輸出而不是計算出現次數。

data = np.array([[1, 2, 3, 0], [0, 0, 1, 2]], dtype=np.int32)
tf.math.bincount(data, axis=-1, binary_output=True)
<tf.Tensor:shape=(2, 4), dtype=int32, numpy=
  array([[1, 1, 1, 1],
         [1, 1, 1, 0]], dtype=int32)>

相關用法


注:本文由純淨天空篩選整理自tensorflow.org大神的英文原創作品 tf.math.bincount。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。