gpt4 book ai didi

python - 运行时警告 : invalid value encountered in greater

转载 作者:IT老高 更新时间:2023-10-28 20:50:39 24 4
gpt4 key购买 nike

我尝试实现 soft-max使用以下代码(out_vecnumpy 浮点向量):

numerator = np.exp(out_vec)
denominator = np.sum(np.exp(out_vec))
out_vec = numerator/denominator

但是,由于 np.exp(out_vec) 导致出现溢出错误。因此,我(手动)检查了 np.exp() 的上限是多少,发现 np.exp(709) 是一个数字,但是 np.exp(710) 被认为是 np.inf。因此,为了避免溢出错误,我将代码修改如下:

out_vec[out_vec > 709] = 709 #prevent np.exp overflow
numerator = np.exp(out_vec)
denominator = np.sum(np.exp(out_vec))
out_vec = numerator/denominator

现在,我得到一个不同的错误:

RuntimeWarning: invalid value encountered in greater out_vec[out_vec > 709] = 709

我添加的行有什么问题?我查找了这个特定的错误,我发现的只是人们关于如何忽略该错误的建议。简单地忽略错误对我没有帮助,因为每次我的代码遇到此错误时,它都不会给出通常的结果。

最佳答案

您的问题是由 out_vec 数组中的 NaNInf 元素引起的。您可以使用以下代码来避免此问题:

if np.isnan(np.sum(out_vec)):
out_vec = out_vec[~numpy.isnan(out_vec)] # just remove nan elements from vector
out_vec[out_vec > 709] = 709
...

或者您可以使用以下代码将 NaN 值保留在数组中:

out_vec[ np.array([e > 709 if ~np.isnan(e) else False for e in out_vec], dtype=bool) ] = 709

关于python - 运行时警告 : invalid value encountered in greater,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37651803/

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