docstr: Compute log(alpha_t) of a given continuous-time label t in [0, T].
docstr_tok: ["Compute","log","(","alpha_t",")","of","a","given","continuous-time","label","t","in","[","0",",","T","]","."]
code: def marginal_log_mean_coeff(self, t):
      """
      Compute log(alpha_t) of a given continuous-time label t in [0, T].
      """
      if self.schedule == "discrete":
          return interpolate_fn(
              t.reshape((-1, 1)),
              self.t_array.to(t.device),
              self.log_alpha_array.to(t.device),
          ).reshape((-1))
      elif self.schedule == "linear":
          return (
              -0.25 * t**2 * (self.beta_1 - self.beta_0)
              - 0.5 * t * self.beta_0
          )
      elif self.schedule == "cosine":
          log_alpha_fn = lambda s: torch.log(
              torch.cos(
                  (s + self.cosine_s)
                  / (1.0 + self.cosine_s)
                  * math.pi
                  / 2.0
              )
          )
          log_alpha_t = log_alpha_fn(t) - self.cosine_log_alpha_0
          return log_alpha_t
  
imports: import torch
  import torch.nn.functional
  import math
  from tqdm import tqdm
label_desc: Use image node_id 2 for calling the NoiseScheduleVP obj's underlying member method code with example usage: obj.marginal_log_mean_coeff(t) and returns: interpolate_fn, unknown, log_alpha_t