2018-01-21 22:04:25 +00:00
|
|
|
import numpy as np
|
|
|
|
|
2018-03-17 14:09:15 +01:00
|
|
|
from .float import _f
|
2018-01-21 22:04:25 +00:00
|
|
|
|
2018-01-22 19:40:36 +00:00
|
|
|
|
2018-01-21 22:04:25 +00:00
|
|
|
class Optimizer:
|
|
|
|
def __init__(self, lr=0.1):
|
2018-01-22 19:40:36 +00:00
|
|
|
self.lr = _f(lr) # learning rate
|
2019-02-05 04:15:28 +01:00
|
|
|
self.base_rate = self.lr
|
2018-01-21 22:04:25 +00:00
|
|
|
self.reset()
|
|
|
|
|
|
|
|
def reset(self):
|
2019-02-05 04:15:28 +01:00
|
|
|
self.lr = self.base_rate
|
2018-01-21 22:04:25 +00:00
|
|
|
|
|
|
|
def compute(self, dW, W):
|
|
|
|
return -self.lr * dW
|
|
|
|
|
|
|
|
def update(self, dW, W):
|
|
|
|
W += self.compute(dW, W)
|