                       arguments)
          optimizers = {"adam": Adam, "nadam": Nadam, "rms-prop": RMSprop}
          self._optimizer = optimizers[optimizer]
  
          base_kwargs = {"adam": dict(beta_1=0.5, beta_2=0.99),
                         "nadam": dict(beta_1=0.5, beta_2=0.99),
                         "rms-prop": dict()}
          self._kwargs = base_kwargs[optimizer]
  
          self._configure(learning_rate, clipnorm, arguments)
          logger.verbose("Using %s optimizer", optimizer.title())
          logger.debug("Initialized: %s", self.__class__.__name__)
 
</s> remove                      "arguments: %s", self.__class__.__name__, optimizer, learning_rate, clipnorm,
                     arguments)
 </s> add                      "epsilon: %s, arguments: %s)", self.__class__.__name__,
                     optimizer, learning_rate, clipnorm, epsilon, arguments) </s> remove     def __init__(self, optimizer, learning_rate, clipnorm, arguments):
 </s> add     def __init__(self, optimizer, learning_rate, clipnorm, epsilon, arguments): </s> remove             print_fn = lambda x: logger.verbose("%s", x)  # print to logger
 </s> add             # print to logger
            print_fn = lambda x: logger.verbose("%s", x)  # noqa
        base_kwargs = {"adam": dict(beta_1=0.5, beta_2=0.99, epsilon=epsilon),
                       "nadam": dict(beta_1=0.5, beta_2=0.99, epsilon=epsilon),
                       "rms-prop": dict(epsilon=epsilon)}
                       arguments)
          optimizers = {"adam": Adam, "nadam": Nadam, "rms-prop": RMSprop}
          self._optimizer = optimizers[optimizer]
  
        base_kwargs = {"adam": dict(beta_1=0.5, beta_2=0.99, epsilon=epsilon),
                       "nadam": dict(beta_1=0.5, beta_2=0.99, epsilon=epsilon),
                       "rms-prop": dict(epsilon=epsilon)}
        base_kwargs = {"adam": dict(beta_1=0.5, beta_2=0.99, epsilon=epsilon),
                       "nadam": dict(beta_1=0.5, beta_2=0.99, epsilon=epsilon),
                       "rms-prop": dict(epsilon=epsilon)}
        base_kwargs = {"adam": dict(beta_1=0.5, beta_2=0.99, epsilon=epsilon),
                       "nadam": dict(beta_1=0.5, beta_2=0.99, epsilon=epsilon),
                       "rms-prop": dict(epsilon=epsilon)}
          self._kwargs = base_kwargs[optimizer]
  
          self._configure(learning_rate, clipnorm, arguments)
          logger.verbose("Using %s optimizer", optimizer.title())
          logger.debug("Initialized: %s", self.__class__.__name__)
keep keep keep keep replace replace replace keep keep keep keep keep
 Training updates:
  - Expose optimizer epsilon param
  - Add NaN protection
GUI - slider - add support for discreet values 
plugins/train/model/_base.py