class_docstr: Implements polynomial decay Learning rate scheduling. The learning rate is
  first linearly increased for the first `warmup_steps` training steps. Then
  it is decayed for `total_steps` - `warmup_steps` from the initial learning
  rate to `end_learning_rate` using a polynomial of degree `power`.
  
  Formally,
  
  `lr` = (`initial_lr` - `end_learning_rate`) *
         ((`total_steps` - `steps`)/(`total_steps` - `warmup_steps`)) ** `power`
  
  # Parameters
  
  optimizer : `torch.optim.Optimizer`
      This argument does not get an entry in a configuration file for the
      object.
  num_epochs: `int`
      The number of epochs in the experiment. this does *NOT* get an entry in
      the config.
  num_steps_per_epoch: `int`
      The number of steps per epoch. this does *NOT* get an entry in the
      config.
  warmup_steps : `int`, required
      The number of steps to linearly increase the learning rate.
  power : `float`, optional (default = `1.0`)
      The power of the polynomial used for decaying.
  end_learning_rate : `float`, optional (default = `0.0`)
      Final learning rate to decay towards.
  
  # Example
  
  Config for using the `PolynomialDecay` Learning Rate Scheduler with
  `warmup_steps` set `100`, `power` set to `2`, and `end_learning_rate` set
  to `1e-10`.
  
  ```json
  {
      ...
     "trainer":{
          ...
          "learning_rate_scheduler": {
              "type": "polynomial_decay",
              "power": 2,
              "warmup_steps": 100,
              "end_learning_rate": 1e-10
          },
          ...
     }
  }
  ```
  Note that you do NOT pass a `optimizer`, `num_epochs`, nor
  `num_steps_per_epoch` key to the Learning rate scheduler.
code: def step_batch(self, batch_num_total: int = None) -> None:
      if batch_num_total is None:
          self.steps += 1
      else:
          self.steps = batch_num_total
  
      for param_group, lr in zip(
          self.optimizer.param_groups, self.get_values()
      ):
          param_group[self.param_group_field] = lr
  
file_path: allennlp/allennlp/training/learning_rate_schedulers/polynomial_decay.py
imports: import torch
  from allennlp.common.checks import ConfigurationError
  from allennlp.training.learning_rate_schedulers.learning_rate_scheduler import LearningRateScheduler
label_desc: Use image node_id 4 for calling the PolynomialDecay obj's underlying member method code with example usage: obj.step_batch(batch_num_total) without return types