(cost, params, lr=1e-4, mu=0.9)
| 25 | |
| 26 | |
| 27 | def momentum_updates(cost, params, lr=1e-4, mu=0.9): |
| 28 | grads = T.grad(cost, params) |
| 29 | velocities = [theano.shared( |
| 30 | np.zeros_like(p.get_value()).astype(np.float32) |
| 31 | ) for p in params] |
| 32 | updates = [] |
| 33 | for p, v, g in zip(params, velocities, grads): |
| 34 | newv = mu*v - lr*g |
| 35 | newp = p + newv |
| 36 | updates.append((p, newp)) |
| 37 | updates.append((v, newv)) |
| 38 | return updates |
| 39 | |
| 40 | |
| 41 | class Glove: |