adv-optm 2.6.2.dev1__tar.gz → 2.6.2.dev2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. {adv_optm-2.6.2.dev1 → adv_optm-2.6.2.dev2}/PKG-INFO +1 -1
  2. {adv_optm-2.6.2.dev1 → adv_optm-2.6.2.dev2}/adv_optm/__init__.py +1 -1
  3. {adv_optm-2.6.2.dev1 → adv_optm-2.6.2.dev2}/adv_optm/optim/SinkSGD_adv.py +6 -2
  4. {adv_optm-2.6.2.dev1 → adv_optm-2.6.2.dev2}/adv_optm/util/sinkhorn.py +5 -7
  5. {adv_optm-2.6.2.dev1 → adv_optm-2.6.2.dev2}/adv_optm.egg-info/PKG-INFO +1 -1
  6. {adv_optm-2.6.2.dev1 → adv_optm-2.6.2.dev2}/setup.py +1 -1
  7. {adv_optm-2.6.2.dev1 → adv_optm-2.6.2.dev2}/LICENSE +0 -0
  8. {adv_optm-2.6.2.dev1 → adv_optm-2.6.2.dev2}/README.md +0 -0
  9. {adv_optm-2.6.2.dev1 → adv_optm-2.6.2.dev2}/adv_optm/optim/AdaMuon_adv.py +0 -0
  10. {adv_optm-2.6.2.dev1 → adv_optm-2.6.2.dev2}/adv_optm/optim/AdamW_adv.py +0 -0
  11. {adv_optm-2.6.2.dev1 → adv_optm-2.6.2.dev2}/adv_optm/optim/Adopt_adv.py +0 -0
  12. {adv_optm-2.6.2.dev1 → adv_optm-2.6.2.dev2}/adv_optm/optim/Lion_adv.py +0 -0
  13. {adv_optm-2.6.2.dev1 → adv_optm-2.6.2.dev2}/adv_optm/optim/Muon_adv.py +0 -0
  14. {adv_optm-2.6.2.dev1 → adv_optm-2.6.2.dev2}/adv_optm/optim/Prodigy_adv.py +0 -0
  15. {adv_optm-2.6.2.dev1 → adv_optm-2.6.2.dev2}/adv_optm/optim/SignSGD_adv.py +0 -0
  16. {adv_optm-2.6.2.dev1 → adv_optm-2.6.2.dev2}/adv_optm/optim/__init__.py +0 -0
  17. {adv_optm-2.6.2.dev1 → adv_optm-2.6.2.dev2}/adv_optm/util/Kourkoutas.py +0 -0
  18. {adv_optm-2.6.2.dev1 → adv_optm-2.6.2.dev2}/adv_optm/util/Muon_AuxAdam.py +0 -0
  19. {adv_optm-2.6.2.dev1 → adv_optm-2.6.2.dev2}/adv_optm/util/Muon_util.py +0 -0
  20. {adv_optm-2.6.2.dev1 → adv_optm-2.6.2.dev2}/adv_optm/util/OrthoGrad.py +0 -0
  21. {adv_optm-2.6.2.dev1 → adv_optm-2.6.2.dev2}/adv_optm/util/__init__.py +0 -0
  22. {adv_optm-2.6.2.dev1 → adv_optm-2.6.2.dev2}/adv_optm/util/centered_decay.py +0 -0
  23. {adv_optm-2.6.2.dev1 → adv_optm-2.6.2.dev2}/adv_optm/util/factorization_util.py +0 -0
  24. {adv_optm-2.6.2.dev1 → adv_optm-2.6.2.dev2}/adv_optm/util/lion_k.py +0 -0
  25. {adv_optm-2.6.2.dev1 → adv_optm-2.6.2.dev2}/adv_optm/util/param_update.py +0 -0
  26. {adv_optm-2.6.2.dev1 → adv_optm-2.6.2.dev2}/adv_optm/util/scaled_optm.py +0 -0
  27. {adv_optm-2.6.2.dev1 → adv_optm-2.6.2.dev2}/adv_optm/util/signed_util.py +0 -0
  28. {adv_optm-2.6.2.dev1 → adv_optm-2.6.2.dev2}/adv_optm/util/state_util.py +0 -0
  29. {adv_optm-2.6.2.dev1 → adv_optm-2.6.2.dev2}/adv_optm/util/update_util.py +0 -0
  30. {adv_optm-2.6.2.dev1 → adv_optm-2.6.2.dev2}/adv_optm.egg-info/SOURCES.txt +0 -0
  31. {adv_optm-2.6.2.dev1 → adv_optm-2.6.2.dev2}/adv_optm.egg-info/dependency_links.txt +0 -0
  32. {adv_optm-2.6.2.dev1 → adv_optm-2.6.2.dev2}/adv_optm.egg-info/requires.txt +0 -0
  33. {adv_optm-2.6.2.dev1 → adv_optm-2.6.2.dev2}/adv_optm.egg-info/top_level.txt +0 -0
  34. {adv_optm-2.6.2.dev1 → adv_optm-2.6.2.dev2}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: adv_optm
3
- Version: 2.6.2.dev1
3
+ Version: 2.6.2.dev2
4
4
  Summary: A family of highly efficient, lightweight yet powerful optimizers.
5
5
  Home-page: https://github.com/Koratahiu/Advanced_Optimizers
6
6
  Author: Koratahiu
@@ -20,4 +20,4 @@ __all__ = [
20
20
  "SinkSGD_adv",
21
21
  ]
22
22
 
23
- __version__ = "2.6.2.dev1"
23
+ __version__ = "2.6.2.dev2"
@@ -373,9 +373,13 @@ class SinkSGD_adv(torch.optim.Optimizer):
373
373
  del anchor
374
374
 
375
375
  update_scaling = step_size
376
- if group.get('spectral_normalization', False) and not (oft_sym and not normed_mt):
376
+
377
+ # If spectral normalization was already applied natively in the OFT sinkhorn, skip the scaling block
378
+ spectral_sinkhorn_applied = oft_sym and not normed_mt and group.get('spectral_normalization', False)
379
+
380
+ if group.get('spectral_normalization', False) and not spectral_sinkhorn_applied:
377
381
  update = scale_update(p, update, update_scaling, state=state)
378
- else:
382
+ elif not spectral_sinkhorn_applied:
379
383
  if snr_cond:
380
384
  update_scaling = update_scaling * (4/math.pi)
381
385
  update.mul_(update_scaling)
@@ -174,14 +174,13 @@ def apply_oft_sinkhorn(
174
174
  g_orth_norm = torch.linalg.vector_norm(G, ord=2, dim=(1, 2), keepdim=True).clamp_min_(1e-12)
175
175
  G.mul_(target_norm / g_orth_norm)
176
176
 
177
- # Global normalization
178
- norm = torch.linalg.vector_norm(G).clamp_min_(1e-12)
179
- target_norm_global = math.sqrt(G.numel())
180
- G.mul_(target_norm_global / norm)
181
-
182
- # Extract upper triangular elements back into the flat format
183
177
  update.copy_(G[batch_idx, rows, cols])
184
178
 
179
+ # Global normalization
180
+ norm = torch.linalg.vector_norm(update).clamp_min_(1e-12)
181
+ target_norm_global = math.sqrt(update.numel())
182
+ update.mul_(target_norm_global / norm)
183
+
185
184
  return update
186
185
 
187
186
  @torch.no_grad()
@@ -201,7 +200,6 @@ def apply_spectral_oft_sinkhorn(
201
200
  device, dtype = p.device, p.dtype
202
201
  rows, cols = scaled_optm.get_cached_structural_tensors(block_size, device)
203
202
 
204
- # Flatten any prepended batch dimensions for processing
205
203
  orig_shape = p.shape
206
204
 
207
205
  # Align the scale of p with the forward pass
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: adv_optm
3
- Version: 2.6.2.dev1
3
+ Version: 2.6.2.dev2
4
4
  Summary: A family of highly efficient, lightweight yet powerful optimizers.
5
5
  Home-page: https://github.com/Koratahiu/Advanced_Optimizers
6
6
  Author: Koratahiu
@@ -5,7 +5,7 @@ with open("README.md", "r", encoding="utf-8") as fh:
5
5
 
6
6
  setup(
7
7
  name="adv_optm",
8
- version="2.6.2.dev1",
8
+ version="2.6.2.dev2",
9
9
  author="Koratahiu",
10
10
  author_email="hiuhonor@gmail.com",
11
11
  license='Apache 2.0',
File without changes
File without changes
File without changes