class_docstr: DistributionOutput class for the Incremental (Spline) Quantile Function
  Parameters
  ----------
  num_pieces
      number of spline pieces for each spline
      ISQF reduces to IQF when num_pieces = 1
  qk_x
      List containing the x-positions of quantile knots
  tol
      tolerance for numerical safeguarding
class_docstr_tok: ["DistributionOutput","class","for","the","Incremental","(","Spline",")","Quantile","Function","Parameters","--","--","--","--","--","num_pieces","number","of","spline","pieces","for","each","spline","ISQF","reduces","to","IQF","when","num_pieces","=","1","qk_x","List","containing","the","x-positions","of","quantile","knots","tol","tolerance","for","numerical","safeguarding"]
code: def __init__(
      self, num_pieces: int, qk_x: List[float], tol: float = 1e-4
  ) -> None:
      # ISQF reduces to IQF when num_pieces = 1
  
      super().__init__()
  
      assert (
          isinstance(num_pieces, int) and num_pieces > 0
      ), "num_pieces should be an integer and greater than 0"
  
      self.num_pieces = num_pieces
      self.qk_x = sorted(qk_x)
      self.num_qk = len(qk_x)
      self.tol = tol
      self.args_dim: Dict[str, int] = {
          "spline_knots": (self.num_qk - 1) * num_pieces,
          "spline_heights": (self.num_qk - 1) * num_pieces,
          "beta_l": 1,
          "beta_r": 1,
          "quantile_knots": self.num_qk,
      }
  
imports: from typing import Dict, List, Optional, Tuple
  import torch
  import torch.nn.functional
  from torch.distributions import AffineTransform, TransformedDistribution
  from gluonts.core.component import validated
  from .distribution_output import DistributionOutput
label_desc: Use image node_id 1 to create a new ISQFOutput object from inherited base classes: DistributionOutput with example: obj = ISQFOutput(num_pieces, qk_x, tol)