tf.segment_sum 分段计算函数

tf.segment_sum

定义

tf.segment_sum(
    data,
    segment_ids,
    name=None
)

Computes the sum along segments of a tensor.
对输入数据data进行分割,并按对应下标进行求和。

输入数据

data为待分割数据
segment_ids为分割下标。segment_ids的大小应与data的第一个维度长度(k)相同。且segment_ids的值应小于k。
name是该操作命名。

详解

Computes a tensor such that (output_i = \sum_j data_j) where sum is over j such that segment_ids[j] == i.
If the sum is empty for a given segment ID i, output[i] = 0.
segment_ids中的值相当于对data数据第一维度的索引。输出数据的第一个维度(output[0])为segment_ids==0的下标所对应的data的数据的求和。

示例

data = [5 1 7 2 3 4 1 3]
segment_ids = [0 2 4 1 5 2 4 1]
output = tf.segment_sum(
    data,
    segment_ids,
    name=None
)
  • segment_ids的大小与data第一维度相同。(=8)且segment_ids的每个值<8。
  • output[0] = data[segment_ids==0] = 5
  • output[2] = data[segment_ids==2] = 1+4 = 5
  • 对于segment_ids没有指定的下标(output[3])直接等于0,output[3]=0

 

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 的数量.

TensorFlow函数

函数参数:

  • 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 的类型相同.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值