Download our e-book of Introduction To Python
Neha Kumawat
3 years ago
def adam():
w, b, eta, max_epochs = 1, 1, 0.01, 100,
mw, mb, vw, vb, eps, beta1, beta2 = 0, 0, 0, 0, 1e-8, 0.9, 0.99
for i in range(max_epochs):
dw, db = 0, 0
for x,y in data:
dw+= grad_w(w, b, x, y)
db+= grad_b(w, b, x, y)
mw = beta1 * mw + (1-beta1) * dw
mb = beta1 * mb + (1-beta1) * db
vw = beta2 * vw + (1-beta2) * dw**2
vb = beta2 * vb + (1-beta2) * db**2
mw = mw/(1-beta1**(i+1))
mb = mb/(1-beta1**(i+1))
vw = vw/(1-beta2**(i+1))
vb = vb/(1-beta2**(i+1))
w = w - eta * mw/np.sqrt(vw + eps)
b = b - eta * mb/np.sqrt(vb + eps)
print(error(w,b))