for循环内双标量溢出

问题描述

我知道当我们超出 dtype 允许的范围时会发生溢出双标量。就我而言,我正在尝试这个

l=l+pow((y[i,]-(np.dot(w,x[i,]))),2)

并得到

<ipython-input-52-e03b293619db>:13: RuntimeWarning: overflow encountered in double_scalars
  l=l+pow((y[i,2)

这是在 for 循环中,它应该返回一个数字。 l = 0y.shape = (200,)x.shape = (200,100)。我试图用几个 i 值计算 for 循环外的这条线,它工作得很好。

我能做什么?谢谢。

编辑:添加完整代码

def ridge_regression_GD(x,y,C):
    x=np.insert(x,1,axis=1)
    w=np.ones(len(x[0,:]))
    t=0
    eta=1
    summatory=np.zeros(len(x[0,:]))
    L_der=np.array([1])
    losses=np.array([])
    l=0
    while np.any(L_der < -1) or np.any(L_der >= 1):
        for i in range(0,len(y)):
            summatory=summatory+((y[i,])))*x[i,]) #vector
            l=l+pow((y[i,2) #number
        losses=np.insert(losses,l+(C*np.dot(w,w)))
        L_der=-2*summatory+2*C*w
        w = w-eta*L_der
        t+=1 #increment t
        eta = 1/t # adjust step size
    b=w[0]
    w=w[1:]
    return w,b,losses

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)