Untitled

 avatar
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...