adv-optm 2.6.2.dev1__py3-none-any.whl → 2.6.2.dev2__py3-none-any.whl

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.
adv_optm/__init__.py CHANGED
@@ -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)
adv_optm/util/sinkhorn.py CHANGED
@@ -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
@@ -1,4 +1,4 @@
1
- adv_optm/__init__.py,sha256=tbk8Ux10bVPAtT5E52dUr7353gHwov9vu00eicn6glM,357
1
+ adv_optm/__init__.py,sha256=89CN2Q1tBX9qe9GvkxvFPyt5H1QgFRO72ST3UaAGReo,357
2
2
  adv_optm/optim/AdaMuon_adv.py,sha256=WX6AbkDYFVqYC5dtAWnOzMoNpysoTA7eSmCBl1eyuQ8,33865
3
3
  adv_optm/optim/AdamW_adv.py,sha256=XCJv7jbKyE5iDeag2Gr0BWG0sa91BVze7J-l-3P35vU,23428
4
4
  adv_optm/optim/Adopt_adv.py,sha256=nH65TYFG2gPzXWQ6B9tT0dAW0MbF49gSovP2oeMuitQ,23934
@@ -6,7 +6,7 @@ adv_optm/optim/Lion_adv.py,sha256=xdr85vnR0JjDhbAWP3PyH3STnaoObqY6-iys4YR2Gsk,12
6
6
  adv_optm/optim/Muon_adv.py,sha256=bIB0yaQ3mTI3bAoAD7hymIshvX8QCdgyYeT61x1dcG4,27970
7
7
  adv_optm/optim/Prodigy_adv.py,sha256=AxfPuEZ-tAW9ogNh4R_mVWzmYCnNpT3lfk3bUbjnrq0,27576
8
8
  adv_optm/optim/SignSGD_adv.py,sha256=VWLu7YdaouSlwQgl_Q_J5ZrGwohjEeXpleZW1F9KMUI,16860
9
- adv_optm/optim/SinkSGD_adv.py,sha256=yCGXvT80xpqfXGAqfH-KiF7jKMqvU0DzK9Zo_v1viQ0,17909
9
+ adv_optm/optim/SinkSGD_adv.py,sha256=-OwbZA7MOCxhLaefAKJ_OWSWTn4E9O6E_YaYR28l9Y0,18161
10
10
  adv_optm/optim/__init__.py,sha256=RkpzWpEgAOdQAppTBLc5AilfJq-wn0aabNsQDj_7-4A,452
11
11
  adv_optm/util/Kourkoutas.py,sha256=Hj7LubFNacZDGDYlFi-9p1yVxi7ACeVSNRhMgQUdjAQ,12283
12
12
  adv_optm/util/Muon_AuxAdam.py,sha256=DFTVsnoR4gg7U7d8U18sEc6FB2FWAHUdOh98DCrG7a8,8415
@@ -19,11 +19,11 @@ adv_optm/util/lion_k.py,sha256=b3oqTHK1spoD_Hi8wxKZ9lEWUkHejovT4piU-wUp_eI,1686
19
19
  adv_optm/util/param_update.py,sha256=Gj5cwKxP5A3bZU2WNkqTE1GqwEcusRWEMCjxtB82hEo,16149
20
20
  adv_optm/util/scaled_optm.py,sha256=HOlsDGqrF7oRiZBG2noJ6JeoxeJK5dOXfQO6P51Mv9I,9864
21
21
  adv_optm/util/signed_util.py,sha256=hOmHpHuSdAMZXS21nCeDyoV2prjZ5YJEXNum_l6s0O0,2092
22
- adv_optm/util/sinkhorn.py,sha256=QWkdIEU8UUHdXMSKRFrcwxtprM0iDYDEMpdlZW1G8pE,11042
22
+ adv_optm/util/sinkhorn.py,sha256=WkEQNE5hA_ktLXc8yRZZqND9Hiw7C1n1ELXKcRF-908,10929
23
23
  adv_optm/util/state_util.py,sha256=vVP4smoYNxrsofhFm1YvUixQRI8IsbqElYk3uElmJ2w,10181
24
24
  adv_optm/util/update_util.py,sha256=IAaYuxrJ9kP2P4Z0v02pesRe4mRzP5SvXbLHjLrrdZw,1332
25
- adv_optm-2.6.2.dev1.dist-info/licenses/LICENSE,sha256=HrhfyXIkWY2tGFK11kg7vPCqhgh5DcxleloqdhrpyMY,11558
26
- adv_optm-2.6.2.dev1.dist-info/METADATA,sha256=H4kxfqqFhMDSYN_z30oijEW2Y_HB9oBsMmC8q0y5QG0,5996
27
- adv_optm-2.6.2.dev1.dist-info/WHEEL,sha256=YVMoNqKzERt-wjUZwJ33xBGAwnFl-4cqbYkTtWa4itE,91
28
- adv_optm-2.6.2.dev1.dist-info/top_level.txt,sha256=iNfBIIzu-lPrQ7jyC56WBCcbkRwitM2nJ15-MRQ_6fg,9
29
- adv_optm-2.6.2.dev1.dist-info/RECORD,,
25
+ adv_optm-2.6.2.dev2.dist-info/licenses/LICENSE,sha256=HrhfyXIkWY2tGFK11kg7vPCqhgh5DcxleloqdhrpyMY,11558
26
+ adv_optm-2.6.2.dev2.dist-info/METADATA,sha256=Xk16b8spXy1nlOLid5JAhPGLB_Y7zU0n0onmm633QoY,5996
27
+ adv_optm-2.6.2.dev2.dist-info/WHEEL,sha256=YVMoNqKzERt-wjUZwJ33xBGAwnFl-4cqbYkTtWa4itE,91
28
+ adv_optm-2.6.2.dev2.dist-info/top_level.txt,sha256=iNfBIIzu-lPrQ7jyC56WBCcbkRwitM2nJ15-MRQ_6fg,9
29
+ adv_optm-2.6.2.dev2.dist-info/RECORD,,