__init__.py 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. """
  2. :mod:`torch.distributed.optim` exposes DistributedOptimizer, which takes a list
  3. of remote parameters (:class:`~torch.distributed.rpc.RRef`) and runs the
  4. optimizer locally on the workers where the parameters live. The distributed
  5. optimizer can use any of the local optimizer :ref:`optimizer-algorithms` to
  6. apply the gradients on each worker.
  7. """
  8. import warnings
  9. import torch
  10. from torch import optim
  11. from .apply_optimizer_in_backward import (
  12. _apply_optimizer_in_backward,
  13. _get_in_backward_optimizers,
  14. )
  15. from .functional_adadelta import _FunctionalAdadelta
  16. from .functional_adagrad import _FunctionalAdagrad
  17. from .functional_adam import _FunctionalAdam
  18. from .functional_adamax import _FunctionalAdamax
  19. from .functional_adamw import _FunctionalAdamW
  20. from .functional_rmsprop import _FunctionalRMSprop
  21. from .functional_rprop import _FunctionalRprop
  22. from .functional_sgd import _FunctionalSGD
  23. from .named_optimizer import _NamedOptimizer
  24. from .utils import as_functional_optim
  25. with warnings.catch_warnings():
  26. warnings.simplefilter("always")
  27. warnings.warn(
  28. "`TorchScript` support for functional optimizers is deprecated "
  29. "and will be removed in a future PyTorch release. "
  30. "Consider using the `torch.compile` optimizer instead.",
  31. DeprecationWarning,
  32. stacklevel=2,
  33. )
  34. # DistributedOptimizer imports torch.distributed.rpc names, so gate availability
  35. # based on RPC being available.
  36. if hasattr(torch._C, "_rpc_init"):
  37. from .optimizer import DistributedOptimizer
  38. from .post_localSGD_optimizer import PostLocalSGDOptimizer
  39. from .zero_redundancy_optimizer import ZeroRedundancyOptimizer
  40. __all__ = ["as_functional_optim", "DistributedOptimizer", "PostLocalSGDOptimizer", "ZeroRedundancyOptimizer"]