TensorFlow函数:tf.unsorted_segment_sum
2020-07-27 17:07 更新
tf.unsorted_segment_sum函数
tf.unsorted_segment_sum(
data,
segment_ids,
num_segments,
name=None
)
请参阅指南:数学函数>分段
计算张量片段的和.
计算一个张量,使得 (output[i] = sum_{j...} data[j...] 总和超过元组 j...,例如,segment_ids[j...] == i.与 SegmentSum 不同,segment_ids 不需要排序,不需要覆盖整个有效值范围内的所有值.
如果给定段 ID i 的和为空,则 output[i] = 0.如果给定的分段 ID i 为负值,则该值将被删除并且不会被添加到该段的总和中.
num_segments 应等于不同的段 ID 的数量.
函数参数:
- data:一个 Tensor,必须是下列类型之一:float32,float64,int32,uint8,int16,int8,complex64,int64,qint8,quint8,qint32,bfloat16,uint16,complex128,half,uint32,uint64.
- segment_ids:一个 Tensor,必须是以下类型之一:int32,int64,张量的形状是一个 data.shape 的前缀.
- num_segments:一个 Tensor,必须是以下类型之一:int32,int64.
- name:操作的名称(可选).
函数返回值:
tf.unsorted_segment_sum函数返回一个 Tensor,它与 data 的类型相同.
例子:
a = np.arange(1,10).reshape(3,3)
print(a)
print('----------')
print((sess.run(tf.unsorted_segment_sum(data=a,segment_ids=[0,1,0],num_segments=2))))
输出:
[[1 2 3]
[4 5 6]
[7 8 9]]
----------
[[ 8 10 12]
[ 4 5 6]