code: def __init__(self, optimizer, step_size, gamma=0.9, last_step=-1):
      # (0.9 ** 21.854) = 0.1, (0.95 ** 44.8906) = 0.1
      # To get 0.1 every N using gamma 0.9, N * log(0.9)/log(0.1) = 0.04575749 N
      # To get 0.1 every N using gamma g, g ** N = 0.1 -> N * log(g) = log(0.1) -> g = np.exp(log(0.1) / N)
      super(ExpLR, self).__init__(
          optimizer, lambda s: gamma ** (s / step_size), last_step
      )
  
imports: import sys
  from torch.optim import lr_scheduler
  from omegaconf import OmegaConf
  from omegaconf.dictconfig import DictConfig
  import logging
  from torch.optim.lr_scheduler import LambdaLR
  from torch_points3d.utils.enums import SchedulerUpdateOn
label_desc: Use image node_id 1 to create a new ExpLR object from inherited base classes: LambdaStepLR with example: obj = ExpLR(optimizer, step_size, gamma, last_step)