torchzero 0.1.3__py3-none-any.whl → 0.1.5__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.
Files changed (59) hide show
  1. torchzero/core/__init__.py +1 -1
  2. torchzero/core/module.py +72 -49
  3. torchzero/core/tensorlist_optimizer.py +1 -1
  4. torchzero/modules/adaptive/adaptive.py +11 -11
  5. torchzero/modules/experimental/experimental.py +41 -41
  6. torchzero/modules/experimental/quad_interp.py +8 -8
  7. torchzero/modules/experimental/subspace.py +37 -37
  8. torchzero/modules/gradient_approximation/base_approximator.py +19 -24
  9. torchzero/modules/gradient_approximation/fdm.py +1 -1
  10. torchzero/modules/gradient_approximation/newton_fdm.py +13 -13
  11. torchzero/modules/gradient_approximation/rfdm.py +1 -1
  12. torchzero/modules/line_search/armijo.py +8 -8
  13. torchzero/modules/line_search/base_ls.py +8 -8
  14. torchzero/modules/line_search/directional_newton.py +14 -14
  15. torchzero/modules/line_search/grid_ls.py +7 -7
  16. torchzero/modules/line_search/scipy_minimize_scalar.py +3 -3
  17. torchzero/modules/meta/alternate.py +4 -4
  18. torchzero/modules/meta/grafting.py +23 -23
  19. torchzero/modules/meta/optimizer_wrapper.py +14 -14
  20. torchzero/modules/meta/return_overrides.py +8 -8
  21. torchzero/modules/misc/accumulate.py +6 -6
  22. torchzero/modules/misc/basic.py +16 -16
  23. torchzero/modules/misc/lr.py +2 -2
  24. torchzero/modules/misc/multistep.py +7 -7
  25. torchzero/modules/misc/on_increase.py +9 -9
  26. torchzero/modules/momentum/momentum.py +4 -4
  27. torchzero/modules/operations/multi.py +44 -44
  28. torchzero/modules/operations/reduction.py +28 -28
  29. torchzero/modules/operations/singular.py +9 -9
  30. torchzero/modules/optimizers/adagrad.py +1 -1
  31. torchzero/modules/optimizers/adam.py +8 -8
  32. torchzero/modules/optimizers/lion.py +1 -1
  33. torchzero/modules/optimizers/rmsprop.py +1 -1
  34. torchzero/modules/optimizers/rprop.py +1 -1
  35. torchzero/modules/optimizers/sgd.py +2 -2
  36. torchzero/modules/orthogonalization/newtonschulz.py +3 -3
  37. torchzero/modules/orthogonalization/svd.py +1 -1
  38. torchzero/modules/regularization/dropout.py +1 -1
  39. torchzero/modules/regularization/noise.py +3 -3
  40. torchzero/modules/regularization/normalization.py +5 -5
  41. torchzero/modules/regularization/ortho_grad.py +1 -1
  42. torchzero/modules/regularization/weight_decay.py +1 -1
  43. torchzero/modules/scheduling/lr_schedulers.py +2 -2
  44. torchzero/modules/scheduling/step_size.py +8 -8
  45. torchzero/modules/second_order/newton.py +12 -12
  46. torchzero/modules/smoothing/__init__.py +1 -1
  47. torchzero/modules/smoothing/gaussian_smoothing.py +7 -7
  48. torchzero/modules/smoothing/laplacian_smoothing.py +1 -1
  49. torchzero/modules/weight_averaging/ema.py +3 -3
  50. torchzero/modules/weight_averaging/swa.py +8 -8
  51. torchzero/optim/first_order/forward_gradient.py +1 -1
  52. torchzero/optim/modular.py +4 -4
  53. torchzero/tensorlist.py +8 -1
  54. {torchzero-0.1.3.dist-info → torchzero-0.1.5.dist-info}/METADATA +1 -1
  55. torchzero-0.1.5.dist-info/RECORD +104 -0
  56. torchzero-0.1.3.dist-info/RECORD +0 -104
  57. {torchzero-0.1.3.dist-info → torchzero-0.1.5.dist-info}/LICENSE +0 -0
  58. {torchzero-0.1.3.dist-info → torchzero-0.1.5.dist-info}/WHEEL +0 -0
  59. {torchzero-0.1.3.dist-info → torchzero-0.1.5.dist-info}/top_level.txt +0 -0
@@ -30,24 +30,24 @@ class PolyakStepSize(OptimizerModule):
30
30
  self.use_grad = use_grad
31
31
  self.parameterwise = parameterwise
32
32
 
33
- def _update(self, state, ascent):
34
- if state.closure is None: raise ValueError("PolyakStepSize requires closure")
35
- if state.fx0 is None: state.fx0 = state.closure(False) # can only happen when placed after SPSA
33
+ def _update(self, vars, ascent):
34
+ if vars.closure is None: raise ValueError("PolyakStepSize requires closure")
35
+ if vars.fx0 is None: vars.fx0 = vars.closure(False) # can only happen when placed after SPSA
36
36
 
37
37
  alpha = self.get_group_key('alpha')
38
38
 
39
39
  if self.parameterwise:
40
- if self.use_grad: denom = (ascent*state.maybe_compute_grad_(self.get_params())).mean()
40
+ if self.use_grad: denom = (ascent*vars.maybe_compute_grad_(self.get_params())).mean()
41
41
  else: denom = ascent.pow(2).mean()
42
- polyak_step_size: TensorList | Any = (state.fx0 - self.min_obj_value) / denom.where(denom!=0, 1) # type:ignore
42
+ polyak_step_size: TensorList | Any = (vars.fx0 - self.min_obj_value) / denom.where(denom!=0, 1) # type:ignore
43
43
  polyak_step_size = polyak_step_size.where(denom != 0, 0)
44
44
  if self.max is not None: polyak_step_size = polyak_step_size.clamp_max(self.max)
45
45
 
46
46
  else:
47
- if self.use_grad: denom = (ascent*state.maybe_compute_grad_(self.get_params())).total_mean()
47
+ if self.use_grad: denom = (ascent*vars.maybe_compute_grad_(self.get_params())).total_mean()
48
48
  else: denom = ascent.pow(2).total_mean()
49
49
  if denom == 0: polyak_step_size = 0 # we converged
50
- else: polyak_step_size = (state.fx0 - self.min_obj_value) / denom
50
+ else: polyak_step_size = (vars.fx0 - self.min_obj_value) / denom
51
51
 
52
52
  if self.max is not None:
53
53
  if polyak_step_size > self.max: polyak_step_size = self.max
@@ -72,7 +72,7 @@ class RandomStepSize(OptimizerModule):
72
72
  self.low = low; self.high = high
73
73
  self.parameterwise = parameterwise
74
74
 
75
- def _update(self, state, ascent):
75
+ def _update(self, vars, ascent):
76
76
  if self.parameterwise:
77
77
  lr = [random.uniform(self.low, self.high) for _ in range(len(ascent))]
78
78
  else:
@@ -121,16 +121,16 @@ class ExactNewton(OptimizerModule):
121
121
  self.diag = diag
122
122
 
123
123
  @torch.no_grad
124
- def step(self, state):
125
- if state.closure is None: raise ValueError("Newton requires a closure to compute the gradient.")
124
+ def step(self, vars):
125
+ if vars.closure is None: raise ValueError("Newton requires a closure to compute the gradient.")
126
126
 
127
127
  params = self.get_params()
128
128
 
129
129
  # exact hessian via autograd
130
130
  with torch.enable_grad():
131
- state.fx0 = state.closure(False)
132
- grads, hessian = jacobian_and_hessian([state.fx0], params) # type:ignore
133
- state.grad = grads = TensorList(grads).squeeze_(0)
131
+ vars.fx0 = vars.closure(False)
132
+ grads, hessian = jacobian_and_hessian([vars.fx0], params) # type:ignore
133
+ vars.grad = grads = TensorList(grads).squeeze_(0)
134
134
  gvec = grads.to_vec()
135
135
  hessian = hessian_list_to_mat(hessian)
136
136
 
@@ -148,18 +148,18 @@ class ExactNewton(OptimizerModule):
148
148
  newton_step, success = _fallback_gd(hessian, gvec)
149
149
 
150
150
  # apply the `_update` method
151
- state.ascent = grads.from_vec(newton_step.squeeze_().nan_to_num_(0,0,0))
151
+ vars.ascent = grads.from_vec(newton_step.squeeze_().nan_to_num_(0,0,0))
152
152
 
153
153
  # validate if newton step decreased loss
154
154
  if self.validate:
155
155
 
156
- params.sub_(state.ascent)
157
- fx1 = state.closure(False)
158
- params.add_(state.ascent)
156
+ params.sub_(vars.ascent)
157
+ fx1 = vars.closure(False)
158
+ params.add_(vars.ascent)
159
159
 
160
160
  # if loss increases, set ascent direction to grad times lr
161
- if (not fx1.isfinite()) or fx1 - state.fx0 > state.fx0 * self.tol: # type:ignore
162
- state.ascent = grads.div_(grads.total_vector_norm(2) / self.gd_lr)
161
+ if (not fx1.isfinite()) or fx1 - vars.fx0 > vars.fx0 * self.tol: # type:ignore
162
+ vars.ascent = grads.div_(grads.total_vector_norm(2) / self.gd_lr)
163
163
 
164
164
  # peform an update with the ascent direction, or pass it to the child.
165
- return self._update_params_or_step_with_next(state, params=params)
165
+ return self._update_params_or_step_with_next(vars, params=params)
@@ -2,4 +2,4 @@ r"""
2
2
  Gradient smoothing and orthogonalization methods.
3
3
  """
4
4
  from .laplacian_smoothing import LaplacianSmoothing, gradient_laplacian_smoothing_
5
- from .gaussian_smoothing import GaussianSmoothing
5
+ from .gaussian_smoothing import GaussianHomotopy
@@ -5,7 +5,7 @@ import torch
5
5
 
6
6
  from ...tensorlist import TensorList, Distributions, mean as tlmean
7
7
  from ...utils.python_tools import _ScalarLoss
8
- from ...core import _ClosureType, OptimizationState, OptimizerModule, _maybe_pass_backward
8
+ from ...core import _ClosureType, OptimizationVars, OptimizerModule, _maybe_pass_backward
9
9
 
10
10
 
11
11
  def _numpy_or_torch_mean(losses: list):
@@ -14,7 +14,7 @@ def _numpy_or_torch_mean(losses: list):
14
14
  return torch.mean(torch.stack(losses))
15
15
  return np.mean(losses).item()
16
16
 
17
- class GaussianSmoothing(OptimizerModule):
17
+ class GaussianHomotopy(OptimizerModule):
18
18
  """Samples and averages value and gradients in multiple random points around current position.
19
19
  This effectively applies smoothing to the function.
20
20
 
@@ -43,9 +43,9 @@ class GaussianSmoothing(OptimizerModule):
43
43
  self.sample_x0 = sample_x0
44
44
 
45
45
  @torch.no_grad()
46
- def step(self, state: OptimizationState):
47
- if state.closure is None: raise ValueError('GaussianSmoothing requires closure.')
48
- closure = state.closure
46
+ def step(self, vars: OptimizationVars):
47
+ if vars.closure is None: raise ValueError('GaussianSmoothing requires closure.')
48
+ closure = vars.closure
49
49
  params = self.get_params()
50
50
  sigmas = self.get_group_key('sigma')
51
51
 
@@ -83,8 +83,8 @@ class GaussianSmoothing(OptimizerModule):
83
83
 
84
84
 
85
85
  self.current_step += 1
86
- state.closure = smooth_closure
87
- return self._update_params_or_step_with_next(state)
86
+ vars.closure = smooth_closure
87
+ return self._update_params_or_step_with_next(vars)
88
88
 
89
89
 
90
90
  # todo single loop gaussian homotopy?
@@ -94,7 +94,7 @@ class LaplacianSmoothing(OptimizerModule):
94
94
 
95
95
 
96
96
  @torch.no_grad
97
- def _update(self, state, ascent):
97
+ def _update(self, vars, ascent):
98
98
  params = self.get_params()
99
99
  sigmas = self.get_group_key('sigma')
100
100
 
@@ -50,7 +50,7 @@ class SwitchEMA(OptimizerModule):
50
50
  params.set_(self.orig_params)
51
51
 
52
52
  @torch.no_grad
53
- def step(self, state):
53
+ def step(self, vars):
54
54
  # if self.next_module is not None:
55
55
  # warn(f'EMA should usually be the last module, but {self.next_module.__class__.__name__} is after it.')
56
56
  self.cur_step += 1
@@ -58,7 +58,7 @@ class SwitchEMA(OptimizerModule):
58
58
  params = self.get_params()
59
59
  # state.maybe_use_grad_(params)
60
60
  # update params with the child. Averaging is always applied at the end.
61
- ret = self._update_params_or_step_with_next(state, params)
61
+ ret = self._update_params_or_step_with_next(vars, params)
62
62
 
63
63
  ema = self.get_state_key('ema', init = 'params', params=params)
64
64
  momentum = self.get_group_key('momentum')
@@ -67,6 +67,6 @@ class SwitchEMA(OptimizerModule):
67
67
 
68
68
  if (self.update_every is not None) and (self.cur_step % self.update_every == 0):
69
69
  params.set_(ema.clone())
70
- if self._reset_stats: state.add_post_step_hook(_reset_stats_hook)
70
+ if self._reset_stats: vars.add_post_step_hook(_reset_stats_hook)
71
71
 
72
72
  return ret
@@ -55,10 +55,10 @@ class PeriodicSWA(OptimizerModule):
55
55
  self.swa_cur = 0
56
56
  self.n_models = 0
57
57
 
58
- def step(self, state):
58
+ def step(self, vars):
59
59
  swa = None
60
60
  params = self.get_params()
61
- ret = self._update_params_or_step_with_next(state, params)
61
+ ret = self._update_params_or_step_with_next(vars, params)
62
62
 
63
63
  # start first period after `pswa_start` steps
64
64
  if self.cur >= self.pswa_start:
@@ -88,7 +88,7 @@ class PeriodicSWA(OptimizerModule):
88
88
 
89
89
  params.set_(swa)
90
90
  # add a hook that resets momentum, which also deletes `swa` in this module
91
- if self._reset_stats: state.add_post_step_hook(_reset_stats_hook)
91
+ if self._reset_stats: vars.add_post_step_hook(_reset_stats_hook)
92
92
 
93
93
  return ret
94
94
 
@@ -127,13 +127,13 @@ class CyclicSWA(OptimizerModule):
127
127
 
128
128
  self.cur_lr = self.init_lr
129
129
 
130
- def step(self, state):
130
+ def step(self, vars):
131
131
  params = self.get_params()
132
132
 
133
133
  # start first period after `cswa_start` steps
134
134
  if self.cur >= self.cswa_start:
135
135
 
136
- ascent = state.maybe_use_grad_(params)
136
+ ascent = vars.maybe_use_grad_(params)
137
137
 
138
138
  # determine the lr
139
139
  point = self.cycle_cur / self.cycle_length
@@ -146,7 +146,7 @@ class CyclicSWA(OptimizerModule):
146
146
  lr = init_lr * (1-p2) + peak_lr * p2
147
147
 
148
148
  ascent *= lr
149
- ret = self._update_params_or_step_with_next(state, params)
149
+ ret = self._update_params_or_step_with_next(vars, params)
150
150
 
151
151
  if self.sample_all or self.cycle_cur in (0, self.cycle_length, self.cycle_length // 2):
152
152
  swa = self.get_state_key('swa')
@@ -159,12 +159,12 @@ class CyclicSWA(OptimizerModule):
159
159
  self.cycle_cur = -1
160
160
 
161
161
  params.set_(swa)
162
- if self._reset_stats: state.add_post_step_hook(_reset_stats_hook)
162
+ if self._reset_stats: vars.add_post_step_hook(_reset_stats_hook)
163
163
 
164
164
  self.cycle_cur += 1
165
165
 
166
166
  else:
167
- ret = self._update_params_or_step_with_next(state, params)
167
+ ret = self._update_params_or_step_with_next(vars, params)
168
168
 
169
169
  self.cur += 1
170
170
 
@@ -2,7 +2,7 @@ from typing import Literal
2
2
 
3
3
  import torch
4
4
 
5
- from ...core import OptimizationState, OptimizerModule
5
+ from ...core import OptimizationVars, OptimizerModule
6
6
  from ...modules import ForwardGradient as _ForwardGradient, SGD, WeightDecay, LR
7
7
  from ...tensorlist import Distributions
8
8
  from ..modular import Modular
@@ -3,7 +3,7 @@ import warnings
3
3
  from inspect import cleandoc
4
4
  import torch
5
5
 
6
- from ..core import OptimizerModule, TensorListOptimizer, OptimizationState, _Chain, _Chainable
6
+ from ..core import OptimizerModule, TensorListOptimizer, OptimizationVars, _Chain, _Chainable
7
7
  from ..utils.python_tools import flatten
8
8
 
9
9
  def _unroll_modules(flat_modules: list[OptimizerModule], nested) -> list[OptimizerModule]:
@@ -126,7 +126,7 @@ class Modular(TensorListOptimizer):
126
126
  raise ValueError(f'No modules out of {", ".join(m.__class__.__name__ for m in modules)} match "{name}".')
127
127
 
128
128
  def step(self, closure=None): # type:ignore
129
- state = OptimizationState(closure, self.model)
130
- res = self.chain.step(state)
131
- for hook in state.post_step_hooks: hook(self, state)
129
+ vars = OptimizationVars(closure, self.model)
130
+ res = self.chain.step(vars)
131
+ for hook in vars.post_step_hooks: hook(self, vars)
132
132
  return res
torchzero/tensorlist.py CHANGED
@@ -10,7 +10,7 @@ in an optimizer when you have to create one from parameters on each step. The so
10
10
  it once beforehand, but then you won't be able to easily support parameter groups and per-parameter states.
11
11
  """
12
12
  import builtins
13
- from collections.abc import Callable, Sequence, Iterable, Generator
13
+ from collections.abc import Callable, Sequence, Iterable, Generator, Iterator
14
14
  import math
15
15
  import operator
16
16
  from typing import Any, Literal, TypedDict
@@ -744,6 +744,13 @@ class NumberList(TensorList):
744
744
  Note that this only supports basic arithmetic operations that are overloaded.
745
745
 
746
746
  Can't use a numpy array because _foreach methods do not work with it."""
747
+ # remove torch.Tensor from return values
748
+ def __getitem__(self, i) -> Any:
749
+ return super().__getitem__(i)
750
+
751
+ def __iter__(self) -> Iterator[Any]:
752
+ return super().__iter__()
753
+
747
754
  def _set_to_method_result_(self, method: str, *args, **kwargs):
748
755
  """Sets each element of the tensorlist to the result of calling the specified method on the corresponding element.
749
756
  This is used to support/mimic in-place operations."""
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: torchzero
3
- Version: 0.1.3
3
+ Version: 0.1.5
4
4
  Summary: Modular optimization library for PyTorch.
5
5
  Author-email: Ivan Nikishev <nkshv2@gmail.com>
6
6
  License: MIT License
@@ -0,0 +1,104 @@
1
+ torchzero/__init__.py,sha256=CCIYfhGNYMnRP_cdXL7DgocxkEWYUZYgB3Sf1T5tdYY,203
2
+ torchzero/tensorlist.py,sha256=V9m5zJ44PtiJxTOiM7cADxYaWK-ogv5Tk_KnyQqm1oo,41601
3
+ torchzero/core/__init__.py,sha256=hab7HAep0JIVeJ-EQhcOAB9oKIIo2MuCVn7yS3BFVYA,266
4
+ torchzero/core/module.py,sha256=Dhf8Rn6zKpzzO3rzyxzJnRAe_tOKS35AgH-FQQKR16A,22362
5
+ torchzero/core/tensorlist_optimizer.py,sha256=MenRzyNPQJWx26j4Tj2vbX2pEcRu_26HQPIpUu_nsFc,9957
6
+ torchzero/modules/__init__.py,sha256=5f8kt2mMn1eo9YcjXc3ESW-bqMQIRf646V3zlr8UAO4,571
7
+ torchzero/modules/adaptive/__init__.py,sha256=YBVDXCosr4-C-GFCoreHS3DFyHiYMhCbOWgdhVVaZ_E,161
8
+ torchzero/modules/adaptive/adaptive.py,sha256=Zp6cBbuLIeyEDcZJxgpdXPVnw7sjhkBSe9Pd3HHkHXk,6477
9
+ torchzero/modules/experimental/__init__.py,sha256=dRLPbhTO8efkRQHB-8Z29dKS3BEleCso1dsXxgccFgM,647
10
+ torchzero/modules/experimental/experimental.py,sha256=4w3WyBL43WWwYL1ZdoCAdtBHnJfTrUYe9NBmmqTxYes,9808
11
+ torchzero/modules/experimental/quad_interp.py,sha256=6Nsvpv580KpSujPYHxK-qB5m6b7C_dFdBxCXE49VHAQ,4106
12
+ torchzero/modules/experimental/subspace.py,sha256=6n0INUqya24RR4Onm7bGNAPsdqw4lPYIGqT6OCwXNOU,11766
13
+ torchzero/modules/gradient_approximation/__init__.py,sha256=q8rNkk2PK6Y9zk42Mq8pY2YF6fHt5QuJd7BK-RTFKpg,179
14
+ torchzero/modules/gradient_approximation/_fd_formulas.py,sha256=mXqRwsDYjXi3pnI4mkpwwtJE85omYEvcmtbJAOfpg9o,82
15
+ torchzero/modules/gradient_approximation/base_approximator.py,sha256=VjQ_NNLElDnk4kGPYy8iK9A6f2Y6yo6H1axpXkkAeSw,3632
16
+ torchzero/modules/gradient_approximation/fdm.py,sha256=1FVPe3J3tOBgktCKlcd-wOv3bo_FynuF9U4RKbsz-CY,4976
17
+ torchzero/modules/gradient_approximation/forward_gradient.py,sha256=3CC-tcUIAL0d422WHUQLPx0UMcU5URQ5uYCNbgpi19M,6456
18
+ torchzero/modules/gradient_approximation/newton_fdm.py,sha256=BqkNZp00pUBJLWAXKNTk2eggbE4o6u-eLmvWw55zihg,7100
19
+ torchzero/modules/gradient_approximation/rfdm.py,sha256=2nYl_Pu6Lc3gUjTu0GqTImoMSCX5MPFKmvoagpdrf0w,4966
20
+ torchzero/modules/line_search/__init__.py,sha256=hYysFi5b9a5g0jcRNkgZYGRcZ1V7_JacBVWMR7idP38,1380
21
+ torchzero/modules/line_search/armijo.py,sha256=Iw7bsx2yhDhZ0POvD2lc28tv_b5zphOq3MPed8dAYLk,1955
22
+ torchzero/modules/line_search/base_ls.py,sha256=tPlJxZ_CVGPxVrG_jxud8LRbgceZKMf-ZBbDv0jJX2Q,5319
23
+ torchzero/modules/line_search/directional_newton.py,sha256=PMNjjj6n1GVuMe9fwGGYnxbA9Tw5CQxLXgJNhNiwURs,9148
24
+ torchzero/modules/line_search/grid_ls.py,sha256=tCrDxE1OMIXMisYdyiBF56XBRP16mbSs5SFDRcy1vCw,5603
25
+ torchzero/modules/line_search/scipy_minimize_scalar.py,sha256=STGvMuCPcqxw9iaiD6jLsI6YgxAvEic0tfqDQ90qAiA,2196
26
+ torchzero/modules/meta/__init__.py,sha256=ARVR3Vzvq50n-3uFMNxcGUDd2r4Euamay5UYtpIxXNg,407
27
+ torchzero/modules/meta/alternate.py,sha256=kJB3Y507u_a_dra7N0Wo4uTQhbMSfizG0mmmuISzeH8,2119
28
+ torchzero/modules/meta/grafting.py,sha256=IenyBO0FmJDO6st_mfFAUnu98UlChm4Io4aKARsDI0s,7560
29
+ torchzero/modules/meta/optimizer_wrapper.py,sha256=x1nkKoqGK6-lgiuRYzVFcTNUCYeiwFet0MZoaQ3kv8U,6432
30
+ torchzero/modules/meta/return_overrides.py,sha256=Amp4_yiMtXNM8_JgnAKK71BP-NrqvkYha4wt8mA-Nb4,2023
31
+ torchzero/modules/misc/__init__.py,sha256=P43XRz1nnOuJbpq_bQboLJ7hip80SQmvhua2baPdJ-c,390
32
+ torchzero/modules/misc/accumulate.py,sha256=M66TaL0XBioC-2WkPOj8crKoQrWx-np-Im4I2pzvwHU,1324
33
+ torchzero/modules/misc/basic.py,sha256=EnuS6nZwyRXjWytyQef3f5885NC2b79wiQeZSU-urYA,3475
34
+ torchzero/modules/misc/lr.py,sha256=xG1TCPeZazp1SBkAdwxY3tbt9-Tgufzq0noPlcsZkO4,3523
35
+ torchzero/modules/misc/multistep.py,sha256=Jnbs1upMpvabhSkju10ciOuPzMd0CD5UoK4ueUrh048,1770
36
+ torchzero/modules/misc/on_increase.py,sha256=WT86io0qtTk4UbrNAQlXyPD7ad61EagKqhr2mrrRcYA,1998
37
+ torchzero/modules/momentum/__init__.py,sha256=Cj_3KJ76RLX-WQ7xsOoLY9mucQvnkyudTeVH8fnvdwc,138
38
+ torchzero/modules/momentum/momentum.py,sha256=3zpmhzOI7KLX2nbaWivGEquo9nboEmkIyAO8k8SmWdw,3931
39
+ torchzero/modules/operations/__init__.py,sha256=4SxIQMh-ixEqEDXWdizeGOzfhFw-af4Wz0A-00ypmg0,378
40
+ torchzero/modules/operations/multi.py,sha256=3T0mqrnKrdE1G7wayolCZVjWWjLG7geafu1vbClmz3Y,10273
41
+ torchzero/modules/operations/reduction.py,sha256=mMqxW-PO7T-azTnbx2vFnfOVTHfw7u7BzZveoaaCfxc,4621
42
+ torchzero/modules/operations/singular.py,sha256=J1_0HKPi6Tu0j-25lMP4FPRwgjm8drM5QRcUCmvQNV8,3560
43
+ torchzero/modules/optimizers/__init__.py,sha256=QZu8yvqy7ouY45Xju5Z2oHWJiFa1CslknodhWWRZRms,247
44
+ torchzero/modules/optimizers/adagrad.py,sha256=7SQiQBtkN72nhZ6a22p4KCCwzxUYcvt1qPRgT_y2I7w,2014
45
+ torchzero/modules/optimizers/adam.py,sha256=17HJl5VHtUDHPVSW8nTVb9XrjuXQ1H6lFLAaGUkq028,4714
46
+ torchzero/modules/optimizers/lion.py,sha256=DRm09OpQSs2YjFx21OMA5ADp6dVYLPN6uu61GkxyF6o,904
47
+ torchzero/modules/optimizers/rmsprop.py,sha256=vcPjGh1krMLGX97sNKgKc5rx0-tT_cQznSwgmEtlq0w,2152
48
+ torchzero/modules/optimizers/rprop.py,sha256=OjLmHhhPjfRe0KxdPSKduIQs5atwoCvbNLLoDbFWAfI,3603
49
+ torchzero/modules/optimizers/sgd.py,sha256=t31zfKuV6tJRzIOEtZBX0gH_KGdRi4ddvKhYibK5eCM,2242
50
+ torchzero/modules/orthogonalization/__init__.py,sha256=brvrj57U_1qKKU8AUqbe9lyY9jsfzZvUGnvsU4wjDSQ,151
51
+ torchzero/modules/orthogonalization/newtonschulz.py,sha256=gXSkONee9GC5oTODWde2d2HaxTVWbSZMIG1ZD9p5LRE,7517
52
+ torchzero/modules/orthogonalization/svd.py,sha256=HO72YUP4Jlk-WeCoVpT3kqPLuiUwcApNvsXx3-PMFAI,3651
53
+ torchzero/modules/quasi_newton/__init__.py,sha256=G5lW-q0pI47SJ2AZuY4qkjbqfYzJS0qATDo7V0BGzD4,124
54
+ torchzero/modules/regularization/__init__.py,sha256=FD_KERcYY4bdVR22OuKXUUVt63jyfE9V84evwDC1edo,498
55
+ torchzero/modules/regularization/dropout.py,sha256=Wt0rHQxMt2t28fNaNkfNlXVcbcf3TlqWhKzWi1kz6lU,1003
56
+ torchzero/modules/regularization/noise.py,sha256=LFSG4Ga5W2VuT1jzkApKodMiDsHbi8zYJ9N_ZnsLMoI,3026
57
+ torchzero/modules/regularization/normalization.py,sha256=LxegX6Wf0QYZPSxjtUsx7x6IO9UCGc_SBYRfFp3EJHk,12152
58
+ torchzero/modules/regularization/ortho_grad.py,sha256=TLaF8GIM6_tbHHvUhi9XUKJvTdPgF9RM364HXYmVliw,3126
59
+ torchzero/modules/regularization/weight_decay.py,sha256=AjR1RuUDa2DM1PbHx-wBT41XaaAs2w5PKLjRRpV3JrU,3624
60
+ torchzero/modules/scheduling/__init__.py,sha256=NxR1cpKXtZSbVqPRlzzzgH3_JBMuxQCf3nUhmxBN2Cc,89
61
+ torchzero/modules/scheduling/lr_schedulers.py,sha256=MYcQ13YexvyTSD9AHxdu54DSu_neTxY-BImUwBFc7Iw,4963
62
+ torchzero/modules/scheduling/step_size.py,sha256=NTHOFO34GroEE_O2IWmZprRpD9wiyLu7iNvaAUlfVbc,3664
63
+ torchzero/modules/second_order/__init__.py,sha256=oRyRy8mCjurMINHNdsxjlptLbQNU0VnstkDm1Ccv_80,182
64
+ torchzero/modules/second_order/newton.py,sha256=iVNawkyiz-Yj8_cAKi1BYeffk9P0G9UoddnVTBogR64,6751
65
+ torchzero/modules/smoothing/__init__.py,sha256=sKc9P7QJUNEyuoQXjhMkAELFdqe11tB1HnnKeMI4ciQ,194
66
+ torchzero/modules/smoothing/gaussian_smoothing.py,sha256=kP72r-f0prGEEzgaVeY1RLFLTfx05L_SOtLMCrkXeOs,3827
67
+ torchzero/modules/smoothing/laplacian_smoothing.py,sha256=ehb0lj479RRKZTJ5_9FGDXwidWF5soo9hw8vquqrl5s,5552
68
+ torchzero/modules/weight_averaging/__init__.py,sha256=nJJRs68AV2G4rGwiiHNRfm6XmtM-xUev1pCtzNIVfa8,66
69
+ torchzero/modules/weight_averaging/ema.py,sha256=xdVnKC8PxCQCec4ad3ncvznvVsQM5O6EVfsOKsRr18k,2854
70
+ torchzero/modules/weight_averaging/swa.py,sha256=syio5qq1vf76d5bAJU-I8Zc8U12bR2n8C9hEznCgr7s,6764
71
+ torchzero/optim/__init__.py,sha256=vk6pIYJHWAGYJMdtJ1otsmVph-pdL5HwBg-CTeBCGso,253
72
+ torchzero/optim/modular.py,sha256=tiuKXpLqq6jWwWWrfC_QU9XkErl2Saaw_xGau0frwzQ,6060
73
+ torchzero/optim/experimental/__init__.py,sha256=RqNzJu5mVl3T0u7cf4TBzSiA20M1kxTZVYWjSVhEHuU,585
74
+ torchzero/optim/experimental/experimental.py,sha256=tMHZVbEXm3s6mMr7unFSvk_Jks3uAaAG0fzsH6gr098,10928
75
+ torchzero/optim/experimental/ray_search.py,sha256=GYyssL64D6RiImrZ2tchoZJ04x9rX-Bp1y2nQXEGxX0,2662
76
+ torchzero/optim/first_order/__init__.py,sha256=CRT4farcwi8sO1qqDGxXv1856zOwuKlJKBIAIvpL2Z0,336
77
+ torchzero/optim/first_order/cautious.py,sha256=XBeqrLQ4gFKVUYnJI5ROmF9wQJGhY90HR6UG5IS7vYk,6610
78
+ torchzero/optim/first_order/forward_gradient.py,sha256=8u_ya0NuFSopPPhOiqqSov35irg8tF3LeHYg-qthTG0,3065
79
+ torchzero/optim/first_order/optimizers.py,sha256=jYmU6YDsYRGMRsCNkYc6AlvOf3wlU7Uv1xUrzl0o8zo,24501
80
+ torchzero/optim/quasi_newton/__init__.py,sha256=0X83dl-85_j3ck8itWxJR49ZbFeOcWurW6FI8J12F1w,49
81
+ torchzero/optim/quasi_newton/directional_newton.py,sha256=oZ-If8SRcFXTDFKS_zlAcJnif-v5dTCR9HXqmfvsvNA,2595
82
+ torchzero/optim/second_order/__init__.py,sha256=3Gt0dR4NzBK07TV0NF8KZImUGHbI8E2zncDmhIC377I,31
83
+ torchzero/optim/second_order/newton.py,sha256=-DqJrS8JPea6Y9jp5lDV14KyP8A24YKiPxJ32Vsfiv4,3848
84
+ torchzero/optim/wrappers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
85
+ torchzero/optim/wrappers/nevergrad.py,sha256=4PLqfs2L9XJhveyX6l7kJu1cIPl6uv7_UD76amIlP7I,4733
86
+ torchzero/optim/wrappers/nlopt.py,sha256=fGDOZ82sRI2VLH3hKIAhZY4EuKSdu_g217c-NZvD_rs,7104
87
+ torchzero/optim/wrappers/scipy.py,sha256=_BQwFDQ7SBqIA5i1SJ29Xj0jDXVV8MQ_9RcsPT3U6VQ,18047
88
+ torchzero/optim/zeroth_order/__init__.py,sha256=_6T0znO6V63Niq7DMhJPgUuMc_nPvAGxjCjMdf-r64U,218
89
+ torchzero/optim/zeroth_order/fdm.py,sha256=5iJc_F_tRR4cGQfy2Jr8PmAnCGrPva89ZWczSdcBkFk,3686
90
+ torchzero/optim/zeroth_order/newton_fdm.py,sha256=-5E1FGzeJMr8_IougzE_FEOPFt9pEjQxID4Y89Hpmh0,6537
91
+ torchzero/optim/zeroth_order/rfdm.py,sha256=_Y7yiF1bsVRlXt5IK-3zQccwVl95JF0-Xw-fl8Q_7y4,10529
92
+ torchzero/optim/zeroth_order/rs.py,sha256=3w2nnPGWPecourEdUG583vchcqdNxC6Q_PBL3l0PvCk,3333
93
+ torchzero/random/__init__.py,sha256=8EowQhC4yTZuF8w1ZDl73YZtLej8SuhxCk1Bkifbkms,93
94
+ torchzero/random/random.py,sha256=Oq4GvM_6AOsabg5ke6b8h51V9npyHVxp8ob_wC5D-Aw,2829
95
+ torchzero/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
96
+ torchzero/utils/compile.py,sha256=pYEyX8P26iCb_hFqAXC8IP2SSQrRfC7ZDhXS0vVCsfY,1257
97
+ torchzero/utils/derivatives.py,sha256=koLmuUcVcX41SrH_9rvfJyMXyHyocNLuZ-C8Kr2B7hk,4844
98
+ torchzero/utils/python_tools.py,sha256=kkyDhoP695HhapfKrdjcrRbRAbcvB0ArP1pkxuVUlf0,1192
99
+ torchzero/utils/torch_tools.py,sha256=sSBY5Bmk9LOAgPtaq-6TK4wDgPXsg6FIWxv8CVDx82k,3580
100
+ torchzero-0.1.5.dist-info/LICENSE,sha256=r9ZciAoZoqKC_FNADE0ORukj1p1XhLXEbegdsAyqhJs,1087
101
+ torchzero-0.1.5.dist-info/METADATA,sha256=h7RXRQD3U-Gfa6gFJtE-ErJ_bYT8h0EdYsqkNg8kIUs,6096
102
+ torchzero-0.1.5.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
103
+ torchzero-0.1.5.dist-info/top_level.txt,sha256=isztuDR1ZGo8p2tORLa-vNuomcbLj7Xd208lhd-pVPs,10
104
+ torchzero-0.1.5.dist-info/RECORD,,
@@ -1,104 +0,0 @@
1
- torchzero/__init__.py,sha256=CCIYfhGNYMnRP_cdXL7DgocxkEWYUZYgB3Sf1T5tdYY,203
2
- torchzero/tensorlist.py,sha256=5XvutWeZdyUcAVVkoEXbgSjvTiDe0f1806wsINfzlRg,41387
3
- torchzero/core/__init__.py,sha256=aw2p6Gt0qrtUM8x2msspAG8JHMaD2ma11sMhXm-rC90,267
4
- torchzero/core/module.py,sha256=msvh-e7cE3vArXb5PLrrsG3j7d-94GG3V4aBXYKFZTo,21254
5
- torchzero/core/tensorlist_optimizer.py,sha256=hIQIW7uBwddlJxXhR4-xnll0ixY9ZJY0i0oH-wqxfX0,9963
6
- torchzero/modules/__init__.py,sha256=5f8kt2mMn1eo9YcjXc3ESW-bqMQIRf646V3zlr8UAO4,571
7
- torchzero/modules/adaptive/__init__.py,sha256=YBVDXCosr4-C-GFCoreHS3DFyHiYMhCbOWgdhVVaZ_E,161
8
- torchzero/modules/adaptive/adaptive.py,sha256=msQkLlxqt3fFWMLGyr1Pi77bGPv-QAyfDfQ1Oipl5Yo,6473
9
- torchzero/modules/experimental/__init__.py,sha256=dRLPbhTO8efkRQHB-8Z29dKS3BEleCso1dsXxgccFgM,647
10
- torchzero/modules/experimental/experimental.py,sha256=Z7g3AhZ5udtjIF_3a5-GdvtMOSt_uMmyJF8AKshw9i0,9853
11
- torchzero/modules/experimental/quad_interp.py,sha256=iAP6r2uHp2BDsGNFYhpIHuv1l5z7ZXQZLZU1E-VO7eE,4117
12
- torchzero/modules/experimental/subspace.py,sha256=KgTIdzv75hlmPFs9nCMV0M3NWa7zcp9IK0OLFsl5UrU,11801
13
- torchzero/modules/gradient_approximation/__init__.py,sha256=q8rNkk2PK6Y9zk42Mq8pY2YF6fHt5QuJd7BK-RTFKpg,179
14
- torchzero/modules/gradient_approximation/_fd_formulas.py,sha256=mXqRwsDYjXi3pnI4mkpwwtJE85omYEvcmtbJAOfpg9o,82
15
- torchzero/modules/gradient_approximation/base_approximator.py,sha256=lNDrbGrsfhru7u40w2EDd5Xccv9oQxRaEDOLoVnBJdk,3975
16
- torchzero/modules/gradient_approximation/fdm.py,sha256=yBvWmkKJqVMd0TUSZcEr6_ulNTtlZbE7rl0uLI7BADY,4977
17
- torchzero/modules/gradient_approximation/forward_gradient.py,sha256=3CC-tcUIAL0d422WHUQLPx0UMcU5URQ5uYCNbgpi19M,6456
18
- torchzero/modules/gradient_approximation/newton_fdm.py,sha256=foEjnOUn-9Til6IP6x6E7-wVoAnKGMfbyk1hfmuRYcI,7116
19
- torchzero/modules/gradient_approximation/rfdm.py,sha256=iA2ydwkk9iRVPYcaECqUupprj6nrgmRKPVN0936gYf4,4967
20
- torchzero/modules/line_search/__init__.py,sha256=hYysFi5b9a5g0jcRNkgZYGRcZ1V7_JacBVWMR7idP38,1380
21
- torchzero/modules/line_search/armijo.py,sha256=2-tErIpO8p3XhY9uKrwGsaohEAN6h5tZ847_hXTPjxs,1966
22
- torchzero/modules/line_search/base_ls.py,sha256=uRHg6n9lcLrBrIAUZLuEiJuWaZDQR-rqNO0ZxZYGAXo,5330
23
- torchzero/modules/line_search/directional_newton.py,sha256=LLMjDu9nzy-WiqXb2Kzc4kRzhCoQOFc-1j_9hOyxt00,9168
24
- torchzero/modules/line_search/grid_ls.py,sha256=PLpi8R_KIc8xZ6IxJmeLgKPJQPSgd5M4T-pj33ykLnw,5614
25
- torchzero/modules/line_search/scipy_minimize_scalar.py,sha256=6JS603_sphNxj4Ji2Ia4gWcyqIM326MVGMHLWaQDXBA,2201
26
- torchzero/modules/meta/__init__.py,sha256=ARVR3Vzvq50n-3uFMNxcGUDd2r4Euamay5UYtpIxXNg,407
27
- torchzero/modules/meta/alternate.py,sha256=6LOYJI6_Q2X5MKAnFcymoJP8i4lcarhaPRp9Sm0eQS0,2124
28
- torchzero/modules/meta/grafting.py,sha256=tWazkxlqw2brkJjkaugasoh3XGaAsR4xOqyjQMEv5uQ,7583
29
- torchzero/modules/meta/optimizer_wrapper.py,sha256=cVe63uXMLLIbuj4wkSQyj0mBmKVx9SqSVzqsgcczbzA,6448
30
- torchzero/modules/meta/return_overrides.py,sha256=6bveA6P0jgNiWu-P2NumAjfrAtpOL_uoIHBljOu-aYs,2031
31
- torchzero/modules/misc/__init__.py,sha256=P43XRz1nnOuJbpq_bQboLJ7hip80SQmvhua2baPdJ-c,390
32
- torchzero/modules/misc/accumulate.py,sha256=qN0xJ-wnhH6pyr8OY5g0N-ObYJrPyiYgVjX11Sss10s,1330
33
- torchzero/modules/misc/basic.py,sha256=dWLMkj32bp4FN44wFrF5VP1_fyN7Xxb9FTVtWP_4EWw,3492
34
- torchzero/modules/misc/lr.py,sha256=V6W5AU9upjpSVpFtlXVar-zJ-qZAgY2Bts-ibeKf4bk,3525
35
- torchzero/modules/misc/multistep.py,sha256=L526iSNWg8UbXdulRT09r4qcOm6jHXi4v3Ho8PjkCPQ,1781
36
- torchzero/modules/misc/on_increase.py,sha256=XoMzB6VWOIKpujL030fpwQcVyW_QSls-ipCwjoveMF0,2012
37
- torchzero/modules/momentum/__init__.py,sha256=Cj_3KJ76RLX-WQ7xsOoLY9mucQvnkyudTeVH8fnvdwc,138
38
- torchzero/modules/momentum/momentum.py,sha256=Tywb6g0PNY4gIfXRHxEIYxgH56qoAnAtE5MzPAJh7VU,3935
39
- torchzero/modules/operations/__init__.py,sha256=4SxIQMh-ixEqEDXWdizeGOzfhFw-af4Wz0A-00ypmg0,378
40
- torchzero/modules/operations/multi.py,sha256=XValEBe90w1uXY94kX_DItWvjchmOrAfpUa6hsi0sxk,10317
41
- torchzero/modules/operations/reduction.py,sha256=uIRrqG2V-NOvljZVrJegjfjcCSQ4pI1rN9bQnZt-EW4,4652
42
- torchzero/modules/operations/singular.py,sha256=Y6ImnsUB3CJPpe_7UkT1vq9diGWXf7XKpuA7Ev7Hq2g,3569
43
- torchzero/modules/optimizers/__init__.py,sha256=QZu8yvqy7ouY45Xju5Z2oHWJiFa1CslknodhWWRZRms,247
44
- torchzero/modules/optimizers/adagrad.py,sha256=20r1ghs67NfCED0Z0xPZflen1gLaG3tOLiTg0WEYsNU,2015
45
- torchzero/modules/optimizers/adam.py,sha256=6Lq69rsyE_UI54z8T0HRyHqo0nXLwjCv35u6BsnpVSg,4722
46
- torchzero/modules/optimizers/lion.py,sha256=LkXedRYK_IxJ1Xebn9dzOOMOnozM_OXVD20_wqOIB2w,905
47
- torchzero/modules/optimizers/rmsprop.py,sha256=pqeaGxec-IY1i4Io5_iMZaef8nOKVZPVblVdibaWy40,2153
48
- torchzero/modules/optimizers/rprop.py,sha256=nvv-PPvEpGJs0imJNr0BPRV0X_bMrEY2TaUeF986sa0,3604
49
- torchzero/modules/optimizers/sgd.py,sha256=dCSQ1UwiycAR8-nSTLnk0G8sieiNAgUyChZsCwgvEOY,2246
50
- torchzero/modules/orthogonalization/__init__.py,sha256=brvrj57U_1qKKU8AUqbe9lyY9jsfzZvUGnvsU4wjDSQ,151
51
- torchzero/modules/orthogonalization/newtonschulz.py,sha256=IEqA_Udi2E5AbG2K_XZEz0O8GbGuKjNmQ1GVdEZP0xs,7520
52
- torchzero/modules/orthogonalization/svd.py,sha256=SsuPFjODwM7uJzOxXW8LbLAbU-4hlLBmp1Fh5xWDCW4,3652
53
- torchzero/modules/quasi_newton/__init__.py,sha256=G5lW-q0pI47SJ2AZuY4qkjbqfYzJS0qATDo7V0BGzD4,124
54
- torchzero/modules/regularization/__init__.py,sha256=FD_KERcYY4bdVR22OuKXUUVt63jyfE9V84evwDC1edo,498
55
- torchzero/modules/regularization/dropout.py,sha256=YlJmmYOVaYIoeQQW2z8kXZfRyXntZfg4tX0m6_w6JDo,1004
56
- torchzero/modules/regularization/noise.py,sha256=Z_BrotV5QE5HY4E6DhIpoSjsqejaCNm_n393euTtA3o,3014
57
- torchzero/modules/regularization/normalization.py,sha256=FE51Ww-aDXTQSJr-qj2YxBHRCOjluZC7TqCmXF3Xagc,12142
58
- torchzero/modules/regularization/ortho_grad.py,sha256=DnUYXAc8VCMSOS5NoZSf1XrU9TStdyt8QpU8bhBzYqE,3127
59
- torchzero/modules/regularization/weight_decay.py,sha256=4QeTpTra52MLyTrgCSaeaB8JxN-l8gVDq4JIwNoL41k,3625
60
- torchzero/modules/scheduling/__init__.py,sha256=NxR1cpKXtZSbVqPRlzzzgH3_JBMuxQCf3nUhmxBN2Cc,89
61
- torchzero/modules/scheduling/lr_schedulers.py,sha256=8zEK_wtE9IqnhHtS3FYNdh_f83q8V90YqLa1zWVzEW4,4965
62
- torchzero/modules/scheduling/step_size.py,sha256=UOE2ZIcVTX7FHlO8BUqtMy31_jmOKQMpgkkc-WgLfZs,3674
63
- torchzero/modules/second_order/__init__.py,sha256=oRyRy8mCjurMINHNdsxjlptLbQNU0VnstkDm1Ccv_80,182
64
- torchzero/modules/second_order/newton.py,sha256=RPn0kHg6ZCAZLQLFW82eQAh7B1-U6d70xTb-CHbJLUs,6765
65
- torchzero/modules/smoothing/__init__.py,sha256=-mxey48zc72aGV0dv4TLHeFpf98QZjlxMu5Pct1LI_Y,195
66
- torchzero/modules/smoothing/gaussian_smoothing.py,sha256=9oxVMv--B0ESzOrhEaqQQeTWaVrSIqJXcU77VaRB2KE,3835
67
- torchzero/modules/smoothing/laplacian_smoothing.py,sha256=TXy2IgVqZehH97PQWn655mK7nDlNEr3EeeCkKEVT0tA,5553
68
- torchzero/modules/weight_averaging/__init__.py,sha256=nJJRs68AV2G4rGwiiHNRfm6XmtM-xUev1pCtzNIVfa8,66
69
- torchzero/modules/weight_averaging/ema.py,sha256=tun6TNOMQWeAZyvkbJEDLf3tGgvJPhhWAAA5ScBsT08,2857
70
- torchzero/modules/weight_averaging/swa.py,sha256=A4nRGQyMnZ2CaOW20iVfAs_iqV3lnULt7t--mjs9-TY,6772
71
- torchzero/optim/__init__.py,sha256=vk6pIYJHWAGYJMdtJ1otsmVph-pdL5HwBg-CTeBCGso,253
72
- torchzero/optim/modular.py,sha256=B1ypLnbGY87nUdylPcbukdNoXvKa5GHCl-_14XRqLWs,6066
73
- torchzero/optim/experimental/__init__.py,sha256=RqNzJu5mVl3T0u7cf4TBzSiA20M1kxTZVYWjSVhEHuU,585
74
- torchzero/optim/experimental/experimental.py,sha256=tMHZVbEXm3s6mMr7unFSvk_Jks3uAaAG0fzsH6gr098,10928
75
- torchzero/optim/experimental/ray_search.py,sha256=GYyssL64D6RiImrZ2tchoZJ04x9rX-Bp1y2nQXEGxX0,2662
76
- torchzero/optim/first_order/__init__.py,sha256=CRT4farcwi8sO1qqDGxXv1856zOwuKlJKBIAIvpL2Z0,336
77
- torchzero/optim/first_order/cautious.py,sha256=XBeqrLQ4gFKVUYnJI5ROmF9wQJGhY90HR6UG5IS7vYk,6610
78
- torchzero/optim/first_order/forward_gradient.py,sha256=EM6W8MezS6iUtW36lxozdo2U4aqlDKE7Zf-0s1LACXQ,3066
79
- torchzero/optim/first_order/optimizers.py,sha256=jYmU6YDsYRGMRsCNkYc6AlvOf3wlU7Uv1xUrzl0o8zo,24501
80
- torchzero/optim/quasi_newton/__init__.py,sha256=0X83dl-85_j3ck8itWxJR49ZbFeOcWurW6FI8J12F1w,49
81
- torchzero/optim/quasi_newton/directional_newton.py,sha256=oZ-If8SRcFXTDFKS_zlAcJnif-v5dTCR9HXqmfvsvNA,2595
82
- torchzero/optim/second_order/__init__.py,sha256=3Gt0dR4NzBK07TV0NF8KZImUGHbI8E2zncDmhIC377I,31
83
- torchzero/optim/second_order/newton.py,sha256=-DqJrS8JPea6Y9jp5lDV14KyP8A24YKiPxJ32Vsfiv4,3848
84
- torchzero/optim/wrappers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
85
- torchzero/optim/wrappers/nevergrad.py,sha256=4PLqfs2L9XJhveyX6l7kJu1cIPl6uv7_UD76amIlP7I,4733
86
- torchzero/optim/wrappers/nlopt.py,sha256=fGDOZ82sRI2VLH3hKIAhZY4EuKSdu_g217c-NZvD_rs,7104
87
- torchzero/optim/wrappers/scipy.py,sha256=_BQwFDQ7SBqIA5i1SJ29Xj0jDXVV8MQ_9RcsPT3U6VQ,18047
88
- torchzero/optim/zeroth_order/__init__.py,sha256=_6T0znO6V63Niq7DMhJPgUuMc_nPvAGxjCjMdf-r64U,218
89
- torchzero/optim/zeroth_order/fdm.py,sha256=5iJc_F_tRR4cGQfy2Jr8PmAnCGrPva89ZWczSdcBkFk,3686
90
- torchzero/optim/zeroth_order/newton_fdm.py,sha256=-5E1FGzeJMr8_IougzE_FEOPFt9pEjQxID4Y89Hpmh0,6537
91
- torchzero/optim/zeroth_order/rfdm.py,sha256=_Y7yiF1bsVRlXt5IK-3zQccwVl95JF0-Xw-fl8Q_7y4,10529
92
- torchzero/optim/zeroth_order/rs.py,sha256=3w2nnPGWPecourEdUG583vchcqdNxC6Q_PBL3l0PvCk,3333
93
- torchzero/random/__init__.py,sha256=8EowQhC4yTZuF8w1ZDl73YZtLej8SuhxCk1Bkifbkms,93
94
- torchzero/random/random.py,sha256=Oq4GvM_6AOsabg5ke6b8h51V9npyHVxp8ob_wC5D-Aw,2829
95
- torchzero/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
96
- torchzero/utils/compile.py,sha256=pYEyX8P26iCb_hFqAXC8IP2SSQrRfC7ZDhXS0vVCsfY,1257
97
- torchzero/utils/derivatives.py,sha256=koLmuUcVcX41SrH_9rvfJyMXyHyocNLuZ-C8Kr2B7hk,4844
98
- torchzero/utils/python_tools.py,sha256=kkyDhoP695HhapfKrdjcrRbRAbcvB0ArP1pkxuVUlf0,1192
99
- torchzero/utils/torch_tools.py,sha256=sSBY5Bmk9LOAgPtaq-6TK4wDgPXsg6FIWxv8CVDx82k,3580
100
- torchzero-0.1.3.dist-info/LICENSE,sha256=r9ZciAoZoqKC_FNADE0ORukj1p1XhLXEbegdsAyqhJs,1087
101
- torchzero-0.1.3.dist-info/METADATA,sha256=AEBDfBalgFdxHAYaGaEV5SMtP_AOu915DzB5Kw0Qtho,6096
102
- torchzero-0.1.3.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
103
- torchzero-0.1.3.dist-info/top_level.txt,sha256=isztuDR1ZGo8p2tORLa-vNuomcbLj7Xd208lhd-pVPs,10
104
- torchzero-0.1.3.dist-info/RECORD,,