gpt4 book ai didi

python - numpy.random.multinomial 错误输出?

转载 作者:太空宇宙 更新时间:2023-11-04 06:03:53 25 4
gpt4 key购买 nike

我有这个功能:

import numpy as np 
def unhot(vec):
""" takes a one-hot vector and returns the corresponding integer """
assert np.sum(vec) == 1 # this assertion shouldn't fail, but it did...
return list(vec).index(1)

我调用以下调用的输出:

numpy.random.multinomial(1, coe)

当我运行它时,我在某个时候遇到了一个断言错误。这怎么可能? numpy.random.multinomial 的输出不是保证是 one-hot vector 吗?

然后我删除了断言错误,现在我有:

ValueError: 1 is not in list

我是否遗漏了一些细则,或者这只是坏了?

最佳答案

好吧,这就是问题所在,我应该已经意识到了,因为我以前遇到过:

np.random.multinomial(1,A([  0.,   0.,  np.nan,   0.]))

返回

array([0,                    0, -9223372036854775807,0])

我使用的是一个不稳定的 softmax 实现,它给出了 Nans。现在,我试图确保我传递的多项式参数的总和 <= 1,但我是这样做的:

coe = softmax(coeffs)
while np.sum(coe) > 1-1e-9:
coe /= (1+1e-5)

我认为,如果其中包含 NaN,while 语句将永远不会被触发。

关于python - numpy.random.multinomial 错误输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23257855/

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