code: def compute_quantile_loss(
      y_true: torch.Tensor, y_pred_p: torch.Tensor, p: float
  ) -> torch.Tensor:
      under_bias = p * torch.clamp(y_true - y_pred_p, min=0)
      over_bias = (1 - p) * torch.clamp(y_pred_p - y_true, min=0)
  
      qt_loss = 2 * (under_bias + over_bias)
      return qt_loss
  
file_path: gluonts/src/gluonts/nursery/robust-mts-attack/pts/model/tft/tft_output.py
imports: from typing import List, Optional, Tuple
  import numpy
  import torch
  import torch.nn
  from gluonts.core.component import validated
label_desc: Use image node_id 3 for calling the QuantileLoss obj's underlying member method code with example usage: obj.compute_quantile_loss(y_true, y_pred_p, p) and returns: qt_loss