class_docstr: General purpose scheduler for parameters values. By default it can schedule in a linear, exponential, step or
  multistep function. One can also pass Callables to have customized scheduling logic.
  
  Args:
      parameter_setter (Callable): Function that sets the required parameter
      value_calculator (Union[str,Callable]): Either a string ('linear', 'exponential', 'step' or 'multistep')
       or Callable for custom logic.
      vc_kwargs (Dict): Dictionary that stores the required parameters for the value_calculator.
      epoch_level (bool): Whether the step is based on epoch or iteration. Defaults to False.
      name (Optional[str]): Identifier of logging.logger to use, if None, defaulting to ``engine.logger``.
      event (Optional[str]): Event to which the handler attaches. Defaults to Events.ITERATION_COMPLETED.
docstr: Decays the parameter value by gamma once the number of steps reaches one of the milestones.
  
  Based on MultiStepLR from Pytorch.
  https://pytorch.org/docs/stable/generated/torch.optim.lr_scheduler.MultiStepLR.html.
  
  Args:
      initial_value (float): Starting value of the parameter.
      gamma (float): Multiplicative factor of parameter value decay.
      milestones (List[int]): List of step indices. Must be increasing.
      current_step (int): Current step index.
  
  Returns:
      float: new parameter value
docstr_tok: ["Decays","the","parameter","value","by","gamma","once","the","number","of","steps","reaches","one","of","the","milestones",".","Based","on","MultiStepLR","from","Pytorch",".","https",":","\/\/pytorch.org\/docs\/stable\/generated\/torch.optim.lr_scheduler.MultiStepLR.html",".","Args",":","initial_value","(","float",")",":","Starting","value","of","the","parameter",".","gamma","(","float",")",":","Multiplicative","factor","of","parameter","value","decay",".","milestones","(","List","[","int","]",")",":","List","of","step","indices",".","Must","be","increasing",".","current_step","(","int",")",":","Current","step","index",".","Returns",":","float",":","new","parameter","value"]
code: def _multistep(
      initial_value: float,
      gamma: float,
      milestones: list[int],
      current_step: int,
  ) -> float:
      """
      Decays the parameter value by gamma once the number of steps reaches one of the milestones.
  
      Based on MultiStepLR from Pytorch.
      https://pytorch.org/docs/stable/generated/torch.optim.lr_scheduler.MultiStepLR.html.
  
      Args:
          initial_value (float): Starting value of the parameter.
          gamma (float): Multiplicative factor of parameter value decay.
          milestones (List[int]): List of step indices. Must be increasing.
          current_step (int): Current step index.
  
      Returns:
          float: new parameter value
      """
      return initial_value * gamma ** bisect_right(
          milestones, current_step
      )
  
file_path: MONAI/monai/handlers/parameter_scheduler.py
imports: from __future__ import annotations
  import logging
  from bisect import bisect_right
  from collections.abc import Callable
  from typing import TYPE_CHECKING
  from monai.config import IgniteInfo
  from monai.utils import min_version, optional_import
label_desc: Use image node_id 8 for calling the ParamSchedulerHandler obj's underlying member method code with example usage: obj._multistep(initial_value, gamma, milestones, current_step) and returns: unknown