from typing import Iterable, Union, Callable, Optional, List, Dict, Any
from .. import Tensor
from torch.utils.hooks import RemovableHandle
_params_t = Union[Iterable[Tensor], Iterable[Dict[str, Any]]]
def register_optimizer_step_pre_hook(hook: Callable[..., None]) -> RemovableHandle: ...
def register_optimizer_step_post_hook(hook: Callable[..., None]) -> RemovableHandle: ...
class Optimizer:
defaults: Dict[str, Any]
state: Dict[str, Any]
param_groups: List[Dict[str, Any]]
def __init__(self, params: _params_t, defaults: Dict[str, Any]) -> None: ...
def __setstate__(self, state: Dict[str, Any]) -> None: ...
def register_step_pre_hook(self, hook: Callable[..., None]) -> RemovableHandle: ...
def register_step_post_hook(self, hook: Callable[..., None]) -> RemovableHandle: ...
def state_dict(self) -> Dict[str, Any]: ...
def load_state_dict(self, state_dict: Dict[str, Any]) -> None: ...
def zero_grad(self, set_to_none: bool=...) -> None: ...
def step(self, closure: Optional[Callable[[], float]]=...) -> Optional[float]: ...
def add_param_group(self, param_group: Dict[str, Any]) -> None: ...