gpt4 book ai didi

python - 无效的多项分布(遇到概率条目 < 0)at/pytorch/aten/src/TH/generic/THTensorRandom.cpp :325

转载 作者:行者123 更新时间:2023-12-01 00:37:36 28 4
gpt4 key购买 nike

我有一个PyTorch张量称为 out_probs其生成方式如下:

out_probs=F.softmax(out_dec[:,0],dim=0)

此外,out_probs 的形状是 [128,20004]

out_probs是 softmax 运算的结果,它不应该包含任何负值,因此自然是 out_probs[out_probs<0 的结果将是一个空张量(实际上我检查过它是空的)但当我运行时

torch.multinomial(out_probs, 1)

我得到:

RuntimeError: invalid argument 2: invalid multinomial distribution (encountering probability entry < 0) at /pytorch/aten/src/TH/generic/THTensorRandom.cpp:325

这意味着我的张量有一个负值,我不知道为什么会发生这种情况?

最佳答案

我相信您在 torch.multinomial 的错误报告中发现了一个错误。

例如

x = torch.ones(128, 1)
x[0] *= 1e100
out_probs = F.softmax(x, dim=0)
print('Negative values:', torch.sum(out_probs < 0).item())
y = torch.multinomial(out_probs, 1)

产生以下输出

Negative values: 0
RuntimeError: invalid argument 2: invalid multinomial distribution (encountering probability entry < 0) at /pytorch/aten/src/TH/generic/THTensorRandom.cpp:298

事实证明,这是因为 out_probs 包含 nan 条目而被触发。

print('nan values:', torch.sum(torch.isnan(out_probs)).item())

给出

nan values: 128

这是由 softmax 中的数学不稳定性引起的。

奇怪的是,当 out_probs 中的值无穷大时,您会收到正确的错误消息

RuntimeError: invalid argument 2: invalid multinomial distribution (encountering probability entry = infinity or NaN) at /pytorch/aten/src/TH/generic/THTensorRandom.cpp:302

此错误可能应该在 https://github.com/pytorch/pytorch/issues 报告如果最新版本尚未修复。

顺便说一句,我正在使用 PyTorch 1.0.1.post2

关于python - 无效的多项分布(遇到概率条目 < 0)at/pytorch/aten/src/TH/generic/THTensorRandom.cpp :325,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57627943/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com