JINGXINGE 2021-10-21 20:29 采纳率: 0%
浏览 2059
已结题

RuntimeWarning: overflow encountered in double_scalars 怎么解决啊??

这是读取的数据
26,167
31,205
33,257
20,239
26,288
33,316
40,291
44,328
47,368
41,426
59,420
48,440
60,453
53,462
46,526
54,541
59,550
68,554
59,621
51,627
60,694
72,627
75,601
68,699
80,678
74,713
79,751
89,710
90,752
82,785
79,834
89,825
100,793
93,853
98,870
93,927
103,874
121,783
124,837
114,927
106,927
99,1008
105,1096
126,927
132,910
137,860
150,871
144,927
135,972
124,1031
131,1046
128,1097
123,1155
121,1256
135,1080
147,1003
142,1189
133,1249
136,1349
150,1247
157,1358
157,1358
146,1466
170,1430
162,1393
162,1588
176,1493
163,1506
174,1582
179,1618
192,1622
184,1659
172,1700
191,1708
187,1802
198,1797
205,1855
197,1890
211,1971
205,1934

代码如下


import numpy as np
#初始化变量
data1 = []
temp0 = 0
temp1 = 0
alpha = 0.01
diff = [0, 0]
error0 = 0
error1 = 0
epsilon = 0.0001
sum = 0
f = open("C:\\Users\\楊先生\\Desktop\\练习文件\\123.txt")
for line in f:
    line = line.replace('\n','')
    data1.append(list(map(eval,line.split(','))))
m = len(data1)
data1 = np.array(data1)
data1_x = data1[:,0]
data1_x_max = np.max(data1_x)
data1_x_min = np.min(data1_x)
darta = data1_x_max - data1_x_min
averge_data1_x = 0
for i in data1_x
    averge_data1_x = averge_data1_x + i
data1_y = data1[:,1]
while True:
    sum += 1
    for i in range(m):
        diff[0] = (temp0+temp1*data1_x[i])-data1_y[i]
        temp0 -= alpha*diff[0]/m
        temp1 -= alpha*diff[0]*data1_x[i]/m
    for i in range(m):
        error0 += (data1_y[i]-(temp0+temp1*data1_x[i]))**2/2
    if abs(error0 - error1)<epsilon :
        break
    else:
        erron0 =error1

print("迭代次数:",sum)
print("temp0:\n","temp1:")


这个是错误信息 
```python
D:/AI code2/AI1/梯度下降.py:32: RuntimeWarning: overflow encountered in double_scalars
  error0 += (data1_y[i]-(temp0+temp1*data1_x[i]))**2/2
D:/AI code2/AI1/梯度下降.py:30: RuntimeWarning: overflow encountered in double_scalars
  temp1 -= alpha*diff[0]*data1_x[i]/m
D:/AI code2/AI1/梯度下降.py:30: RuntimeWarning: invalid value encountered in double_scalars
  temp1 -= alpha*diff[0]*data1_x[i]/m

求解决啊 !!太难受了

  • 写回答

1条回答 默认 最新

  • 辉煌仪奇 2021-10-21 20:36
    关注

    你好,你看看是不是这里有问题,缺少一个:号,你添加上试试

    img


    另外,查了一下,你这里面的error0数值太大,让数据溢出了,temp太小导致数据也溢出了所以报错了

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 4月9日
  • 创建了问题 10月21日

悬赏问题

  • ¥15 mmo能不能做客户端怪物
  • ¥15 osm下载到arcgis出错
  • ¥15 Dell g15 每次打开eiq portal后3分钟内自动退出
  • ¥200 使用python编写程序,采用socket方式获取网页实时刷新的数据,能定时print()出来就行。
  • ¥15 matlab如何根据图片中的公式绘制e和v的曲线图
  • ¥15 我想用Python(Django)+Vue搭建一个用户登录界面,但是在运行npm run serve时报错了如何解决?
  • ¥15 QQ邮箱过期怎么恢复?
  • ¥15 登录他人的vue项目显示服务器错误
  • ¥15 (标签-android|关键词-app)
  • ¥15 comsol仿真压阻传感器