code: def q_sample_from_to(self, x_from, from_t, to_t, noise=None):
      shape, device, dtype = x_from.shape, x_from.device, x_from.dtype
      batch = shape[0]
  
      if isinstance(from_t, float):
          from_t = torch.full(
              (batch,), from_t, device=device, dtype=dtype
          )
  
      if isinstance(to_t, float):
          to_t = torch.full((batch,), to_t, device=device, dtype=dtype)
  
      noise = default(
          noise, lambda: randn_like(x_from, generator=self.rng)
      )
  
      log_snr = self.log_snr(from_t)
      log_snr_padded_dim = right_pad_dims_to(x_from, log_snr)
      alpha, sigma = log_snr_to_alpha_sigma(log_snr_padded_dim)
  
      log_snr_to = self.log_snr(to_t)
      log_snr_padded_dim_to = right_pad_dims_to(x_from, log_snr_to)
      alpha_to, sigma_to = log_snr_to_alpha_sigma(log_snr_padded_dim_to)
  
      return (
          x_from * (alpha_to / alpha)
          + noise * (sigma_to * alpha - sigma * alpha_to) / alpha
      )
  
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 8 for calling the GaussianDiffusionContinuousTimes obj's underlying member method code with example usage: obj.q_sample_from_to(x_from, from_t, to_t, noise) and returns: unknown