Untitled
unknown
python
3 years ago
681 B
7
Indexable
def loss_cal(w,b,x,y):
Loss=0
for i in range(10):
Loss+= (y[i]-w*x[i]-b)**2
return Loss
w,b=0,0
x = [2, 3, 4, 5, 6, 7, 9, 10, 12, 12.5]
y = [3, 2, 5, 4, 7, 5.5, 8, 7.5, 9.5, 9]
Loss=loss_cal(w,b)
learn_rate=0.3
while True:
dloss=0
for i in range(10):
dloss+=-2*y[i]*x[i]+2*w*x[i]**2+2*b*x[i]
Loss_new = loss_cal(w-learn_rate*dloss,b,x,y)
limit=2
if Loss_new >= Loss:
learn_rate=0.2*learn_rate
continue
w_new=w-learn_rate*dloss
if abs(learn_rate*dloss) > limit:
break
learn_rate=0.3
while True:
dloss=0
for i in range(10):
Loss_new= loss_cal(w,b-learn_rate,x,y)Editor is loading...