class_docstr: A wrapper for :class:`~torch.optim.lr_scheduler` objects that adjusts learning rates
  for dynamically generated parameters.
  
  :param scheduler_constructor: a :class:`~torch.optim.lr_scheduler`
  :param optim_args: a dictionary of learning arguments for the optimizer or a callable that returns
      such dictionaries. must contain the key 'optimizer' with pytorch optimizer value
  :param clip_args: a dictionary of clip_norm and/or clip_value args or a callable that returns
      such dictionaries.
  
  Example::
  
      optimizer = torch.optim.SGD
      scheduler = pyro.optim.ExponentialLR({'optimizer': optimizer, 'optim_args': {'lr': 0.01}, 'gamma': 0.1})
      svi = SVI(model, guide, scheduler, loss=TraceGraph_ELBO())
      for i in range(epochs):
          for minibatch in DataLoader(dataset, batch_size):
              svi.step(minibatch)
          scheduler.step()
docstr: Takes the same arguments as the PyTorch scheduler
  (e.g. optional ``loss`` for ``ReduceLROnPlateau``)
code: def step(self, *args, **kwargs) -> None:
      """
      Takes the same arguments as the PyTorch scheduler
      (e.g. optional ``loss`` for ``ReduceLROnPlateau``)
      """
      for scheduler in self.optim_objs.values():
          scheduler.step(*args, **kwargs)
  
file_path: pyro/pyro/optim/lr_scheduler.py
imports: from typing import Any, Dict, Iterable, List, Optional, Union, ValuesView
  from torch import Tensor
  from pyro.optim.optim import PyroOptim
label_desc: Use image node_id 4 for calling the PyroLRScheduler obj's underlying member method code with example usage: obj.step() without return types