code: def __init__(self, *, noise_schedule, timesteps=1000, rng=None):
      super().__init__()
  
      if noise_schedule == "linear":
          self.log_snr = beta_linear_log_snr
      elif noise_schedule == "cosine":
          self.log_snr = alpha_cosine_log_snr
      else:
          raise ValueError(f"invalid noise schedule {noise_schedule}")
  
      self.num_timesteps = timesteps
      self.rng = rng
  
imports: import math
  from functools import partial, wraps
  import torch
  import torch.nn
  from einops import repeat
  from torch.special import expm1
  from nemo.collections.multimodal.parts.utils import randn_like
label_desc: Use image node_id 1 to create a new GaussianDiffusionContinuousTimes object from inherited base classes: nn with example: obj = GaussianDiffusionContinuousTimes()