(self, network)
| 78 | self.velocity = None |
| 79 | |
| 80 | def update(self, network): |
| 81 | lr = self.lr * (1.0 / (1.0 + self.decay * self.iteration)) |
| 82 | |
| 83 | for i, layer in enumerate(network.parametric_layers): |
| 84 | for n in layer.parameters.keys(): |
| 85 | # Get gradient values |
| 86 | grad = layer.parameters.grad[n] |
| 87 | update = self.momentum * self.velocity[i][n] - lr * grad |
| 88 | self.velocity[i][n] = update |
| 89 | if self.nesterov: |
| 90 | # Adjust using updated velocity |
| 91 | update = self.momentum * self.velocity[i][n] - lr * grad |
| 92 | layer.parameters.step(n, update) |
| 93 | self.iteration += 1 |
| 94 | |
| 95 | def setup(self, network): |
| 96 | self.velocity = defaultdict(dict) |
no test coverage detected