class_docstr: Optimizer wrapper, which performs additional update modifications, argument order indicates
  modifier nesting from outside to inside
  (specification key: `optimizer_wrapper`).
  
  Args:
      optimizer (specification): Optimizer
          (<span style="color:#C00000"><b>required</b></span>).
      learning_rate (parameter, float > 0.0): Learning rate
          (<span style="color:#00C000"><b>default</b></span>: 1e-3).
      clipping_threshold (parameter, float > 0.0): Clipping threshold
          (<span style="color:#00C000"><b>default</b></span>: no clipping).
      multi_step (parameter, int >= 1): Number of optimization steps
          (<span style="color:#00C000"><b>default</b></span>: single step).
      subsampling_fraction (parameter, int > 0 | 0.0 < float <= 1.0): Absolute/relative fraction
          of batch timesteps to subsample, update_frequency * multi_step should be at least 1 if
          relative subsampling_fraction
          (<span style="color:#00C000"><b>default</b></span>: no subsampling).
      linesearch_iterations (parameter, int >= 0): Maximum number of line search iterations, using
          a backtracking factor of 0.75
          (<span style="color:#00C000"><b>default</b></span>: no line search).
      doublecheck_update (bool): Check whether update has decreased loss and otherwise reverse it
      name (string): (<span style="color:#0000C0"><b>internal use</b></span>).
      arguments_spec (specification): <span style="color:#0000C0"><b>internal use</b></span>.
code: def step(self, *, arguments, variables, **kwargs):
      return self.optimizer.step(
          arguments=arguments, variables=variables, **kwargs
      )
  
imports: from tensorforce import TensorforceError
  from tensorforce.core import tf_function
  from tensorforce.core.optimizers import UpdateModifier
label_desc: Use image node_id 2 for calling the OptimizerWrapper obj's underlying member method code with example usage: obj.step() and returns: self