pytorch中是否有类似于张量流的tf.contrib.distributions.percentile的功能?

时间:2019-07-09 03:23:01

标签: python tensorflow pytorch

PyTorch中是否存在与Tensorflow的tf.contrib.distributions.percentile相同的功能?

3 个答案:

答案 0 :(得分:1)

有趣的是,似乎PyTorch并没有为此单独提供任何运算符,至少根据its search function而言。
不过,幸运的是,PyTorch张量可以轻松地与NumPy函数一起使用,因此您可以简单地调用<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <a href="https://www.google.com" id='link_one'>This is Google333!</a>,请参见以下示例:

numpy.percentile

答案 1 :(得分:0)

实际上,icdf函数给出的是逆累积密度函数值,即百分位数的值。

import torch
from torch.distributions import Normal
dist = Normal(torch.tensor([0.0]), torch.tensor([1.0]))
dist.icdf(torch.tensor([0.95])).data.numpy()

产生

array([1.6449], dtype=float32)

答案 2 :(得分:0)

我不了解优缺点, 但是有一种方法可以将cupy与pytorch dlpack一起使用:

(cupy不直接支持pytorch张量,CuPy函数不接受火炬张量。)

import torch
from torch.utils.dlpack import to_dlpack
from torch.utils.dlpack import from_dlpack
import cupy

x = torch.Tensor([1, 2, 3]).cuda()
dx = to_dlpack(x)
cx = cupy.fromDlpack(dx)
print(cupy.percentile(cx, 30)) # 30-th percentile of x
# 1.5999999642372131