|
9 | 9 | from odyssnet.training.chaos_optimizer import ChaosGrad |
10 | 10 |
|
11 | 11 | model = OdyssNet(num_neurons=32, input_ids=[0], output_ids=[31]) |
12 | | - opt = ChaosGrad(ChaosGrad.classify_params(model), lr=1e-3) |
| 12 | + opt = ChaosGrad(ChaosGrad.classify_params(model), lr=1e-4) |
13 | 13 | trainer = OdyssNetTrainer(model, optimizer=opt) |
14 | 14 |
|
15 | 15 | Algorithm (v3 improvements over the removed v2.2): |
@@ -38,14 +38,14 @@ class ChaosGrad(torch.optim.Optimizer): |
38 | 38 | - per_param_alpha : gradient-centralization gate |
39 | 39 |
|
40 | 40 | The single user-facing parameter ``lr`` (genesis learning rate, |
41 | | - default 1e-3) is a mathematical starting point, not a dial to tune. |
| 41 | + default 1e-4) is a mathematical starting point, not a dial to tune. |
42 | 42 |
|
43 | 43 | Args: |
44 | 44 | params: Iterable of parameters **or** a list of classified param-group |
45 | 45 | dicts returned by :meth:`classify_params`. Providing classified |
46 | 46 | groups enables group-specific decay seeding, per-group beta |
47 | 47 | equilibria, and the Hebbian bypass rule. |
48 | | - lr (float): Genesis learning rate. Default: ``1e-3``. |
| 48 | + lr (float): Genesis learning rate. Default: ``1e-4``. |
49 | 49 | """ |
50 | 50 |
|
51 | 51 | # ------------------------------------------------------------------ # |
@@ -133,7 +133,7 @@ class ChaosGrad(torch.optim.Optimizer): |
133 | 133 | # Construction # |
134 | 134 | # ------------------------------------------------------------------ # |
135 | 135 |
|
136 | | - def __init__(self, params, lr: float = 1e-3) -> None: |
| 136 | + def __init__(self, params, lr: float = 1e-4) -> None: |
137 | 137 | if lr <= 0: |
138 | 138 | raise ValueError(f"Genesis learning rate must be > 0, got {lr}") |
139 | 139 | defaults = dict( |
|
0 commit comments