class_docstr: A fourth-order Improved Pseudo Linear Multistep scheduler.
  
  This model inherits from [`SchedulerMixin`] and [`ConfigMixin`]. Check the superclass documentation for the generic
  methods the library implements for all schedulers such as loading and saving.
  
  Args:
      num_train_timesteps (`int`, defaults to 1000):
          The number of diffusion steps to train the model.
      trained_betas (`np.ndarray`, *optional*):
          Pass an array of betas directly to the constructor to bypass `beta_start` and `beta_end`.
class_docstr_tok: ["A","fourth-order","Improved","Pseudo","Linear","Multistep","scheduler",".","This","model","inherits","from","[","`","SchedulerMixin","`","]","and","[","`","ConfigMixin","`","]",".","Check","the","superclass","documentation","for","the","generic","methods","the","library","implements","for","all","schedulers","such","as","loading","and","saving",".","Args",":","num_train_timesteps","(","`","int","`",",","defaults","to","1000",")",":","The","number","of","diffusion","steps","to","train","the","model",".","trained_betas","(","`","np.ndarray","`",",","*","optional","*",")",":","Pass","an","array","of","betas","directly","to","the","constructor","to","bypass","`","beta_start","`","and","`","beta_end","`","."]
code: def __init__(
      self,
      num_train_timesteps: int = 1000,
      trained_betas: Optional[Union[np.ndarray, List[float]]] = None,
  ):
      # set `betas`, `alphas`, `timesteps`
      self.set_timesteps(num_train_timesteps)
  
      # standard deviation of the initial noise distribution
      self.init_noise_sigma = 1.0
  
      # For now we only support F-PNDM, i.e. the runge-kutta method
      # For more information on the algorithm please take a look at the paper: https://arxiv.org/pdf/2202.09778.pdf
      # mainly at formula (9), (12), (13) and the Algorithm 2.
      self.pndm_order = 4
  
      # running values
      self.ets = []
      self._step_index = None
  
file_path: diffusers/src/diffusers/schedulers/scheduling_ipndm.py
imports: import math
  from typing import List, Optional, Tuple, Union
  import numpy
  import torch
  from ..configuration_utils import ConfigMixin, register_to_config
  from .scheduling_utils import SchedulerMixin, SchedulerOutput
label_desc: Use image node_id 1 to create a new IPNDMScheduler object from inherited base classes: SchedulerMixin, ConfigMixin with example: obj = IPNDMScheduler(num_train_timesteps, trained_betas)