class_docstr: Defines how to configure an optimizer.
  
  For each train step it returns a dictionary that contains the configuration for the optimizer.
  
  Args:
      lr (List[float], optional): a configuration space for the learning rate.
      momentum (List[float], optional): a configuration space for the momentum.
class_docstr_tok: ["Defines","how","to","configure","an","optimizer",".","For","each","train","step","it","returns","a","dictionary","that","contains","the","configuration","for","the","optimizer",".","Args",":","lr","(","List","[","float","]",",","optional",")",":","a","configuration","space","for","the","learning","rate",".","momentum","(","List","[","float","]",",","optional",")",":","a","configuration","space","for","the","momentum","."]
code: def __repr__(self):
      return "\n".join(
          [
              "Phase:",
              *[
                  f"    {name}: {val}"
                  for name, val in self.configuration.items()
              ],
          ]
      )
  
imports: import contextlib
  from collections import OrderedDict
  from itertools import chain, islice
  from math import cos, pi
  from typing import Dict, List, Optional, Tuple
  from poutyne.framework.callbacks.callbacks import Callback
label_desc: Use image node_id 3 for calling the Phase obj's underlying member method code with example usage: obj.__repr__() and returns: str