我尝试使用以下代码(是浮点向量)实现soft-max :out_vec
numpy
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
我添加的行有什么问题?我查找了这个特定的错误,我发现的只是人们关于如何忽略该错误的建议。简单地忽略错误对我没有帮助,因为每次我的代码遇到此错误时,它都不会给出通常的结果。