code: def __call__(
      self,
      inference_data_loader: DataLoader,
      prediction_net,
      input_names: List[str],
      output_transform: Optional[OutputTransform],
      num_samples: Optional[int],
      **kwargs,
  ) -> Iterator[Forecast]:
      for batch in inference_data_loader:
          inputs = select(input_names, batch, ignore_missing=True)
          (outputs,), loc, scale = prediction_net(*inputs.values())
          outputs = to_numpy(outputs)
          if scale is not None:
              outputs = outputs * to_numpy(scale[..., None])
          if loc is not None:
              outputs = outputs + to_numpy(loc[..., None])
  
          if output_transform is not None:
              log_once(OUTPUT_TRANSFORM_NOT_SUPPORTED_MSG)
          if num_samples:
              log_once(NOT_SAMPLE_BASED_MSG)
  
          i = -1
          for i, output in enumerate(outputs):
              yield QuantileForecast(
                  output.T,
                  start_date=batch[FieldName.FORECAST_START][i],
                  item_id=batch[FieldName.ITEM_ID][i]
                  if FieldName.ITEM_ID in batch
                  else None,
                  info=batch["info"][i] if "info" in batch else None,
                  forecast_keys=self.quantiles,
              )
          assert i + 1 == len(batch[FieldName.FORECAST_START])
  
imports: import logging
  from functools import singledispatch
  from typing import Callable, Iterator, List, Optional
  import numpy
  from gluonts.core.component import validated
  from gluonts.dataset.common import DataEntry
  from gluonts.dataset.field_names import FieldName
  from gluonts.itertools import select
  from gluonts.dataset.loader import DataLoader
  from gluonts.model.forecast import Forecast, QuantileForecast, SampleForecast
label_desc: Use image node_id 2 for calling the QuantileForecastGenerator obj's underlying member method code with example usage: obj.__call__(inference_data_loader, prediction_net, input_names, output_transform, num_samples) without return types