tensorflow求分位点、中位数、第k大数

本文介绍了如何在TensorFlow中使用tf.nn.top_k函数来求解分位数、中位数及找到张量中的第k大数值。该函数接受一个tensor作为输入,返回最大k个数值及其对应的下标,适用于深度学习和人工智能中的数据处理。
摘要由CSDN通过智能技术生成

解决方案


示例

def get_median(v):

    # 把v拉伸成1维tensor
    v = tf.reshape(v, [-1])

    # 计算分位点(中位数)是第几(m)大元素
    m = v.shape[0]//2

    # 先获取前m个元素,再选取最小元素,(分位点为前m大元素中的最小值)。
    return tf.reduce_min(tf.nn.top_k(v, m, sorted=False).values)

附:tf.nn.top_k函数详解


tf.nn.top_k(
    input,
    k=1,
    sorted=True,
    name=None
)

参数:

  • input:输入的tensor,不能是array这些啊!要么输入1-D,要是更高维度必须保证最后的一个维度长度必须大于等于K
  • k:0-D的int32的数字张量。
  • sorted:如果sorted=True,那么选出来的k个数字就需要按照降序的顺序排序
  • name:可选项,也就是这个操作的名字

返回:

  • values:也就是每一行的最大的k个数字
  • indices:这里的下标是在输入的张量的最后一个维度的下标 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值