class_docstr: Implicit Quantile Network Distribution Loss.
  
  Based on `Probabilistic Time Series Forecasting with Implicit Quantile Networks
  <https://arxiv.org/pdf/2107.03743.pdf>`_.
  A network is used to directly map network outputs to a quantile.
class_docstr_tok: ["Implicit","Quantile","Network","Distribution","Loss",".","Based","on","`","Probabilistic","Time","Series","Forecasting","with","Implicit","Quantile","Networks","<","https",":","\/\/arxiv.org\/pdf\/2107.03743.pdf",">","`","_",".","A","network","is","used","to","directly","map","network","outputs","to","a","quantile","."]
docstr: Args:
      prediction_length (int): maximum prediction length.
      quantiles (List[float], optional): default quantiles to output.
          Defaults to [0.02, 0.1, 0.25, 0.5, 0.75, 0.9, 0.98].
      input_size (int, optional): input size per prediction length. Defaults to 16.
      hidden_size (int, optional): hidden size per prediction length. Defaults to 64.
      n_loss_samples (int, optional): number of quantiles to sample to calculate loss.
docstr_tok: ["Args",":","prediction_length","(","int",")",":","maximum","prediction","length",".","quantiles","(","List","[","float","]",",","optional",")",":","default","quantiles","to","output",".","Defaults","to","[","0.02",",","0.1",",","0.25",",","0.5",",","0.75",",","0.9",",","0.98","]",".","input_size","(","int",",","optional",")",":","input","size","per","prediction","length",".","Defaults","to","16.","hidden_size","(","int",",","optional",")",":","hidden","size","per","prediction","length",".","Defaults","to","64.","n_loss_samples","(","int",",","optional",")",":","number","of","quantiles","to","sample","to","calculate","loss","."]
code: def __init__(
      self,
      quantiles: List[float] = [0.02, 0.1, 0.25, 0.5, 0.75, 0.9, 0.98],
      input_size: Optional[int] = 16,
      hidden_size: Optional[int] = 32,
      n_loss_samples: Optional[int] = 64,
  ) -> None:
      """
      Args:
          prediction_length (int): maximum prediction length.
          quantiles (List[float], optional): default quantiles to output.
              Defaults to [0.02, 0.1, 0.25, 0.5, 0.75, 0.9, 0.98].
          input_size (int, optional): input size per prediction length. Defaults to 16.
          hidden_size (int, optional): hidden size per prediction length. Defaults to 64.
          n_loss_samples (int, optional): number of quantiles to sample to calculate loss.
      """
      super().__init__(quantiles=quantiles)
      self.quantile_network = ImplicitQuantileNetwork(
          input_size=input_size, hidden_size=hidden_size
      )
      self.distribution_arguments = list(range(int(input_size)))
      self.n_loss_samples = n_loss_samples
  
imports: from typing import Any, Callable, Dict, List, Optional, Tuple, Union
  import numpy
  from sklearn.base import BaseEstimator
  import torch
  from torch import distributions, nn
  import torch.nn.functional
  from pytorch_forecasting.data.encoders import TorchNormalizer, softplus_inv
  from pytorch_forecasting.metrics.base_metrics import DistributionLoss, MultivariateDistributionLoss
label_desc: Use image node_id 1 to create a new ImplicitQuantileNetworkDistributionLoss object from inherited base classes: DistributionLoss with example: obj = ImplicitQuantileNetworkDistributionLoss(quantiles, input_size, hidden_size, n_loss_samples)