当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。