Untitled
unknown
python
3 years ago
681 B
6
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...