class_docstr: An Estimator based on a single (!) NBEATS Network (approximately) as
  described in the paper:  https://arxiv.org/abs/1905.10437. The actual
  NBEATS model is an ensemble of NBEATS Networks, and is implemented by the
  "NBEATSEnsembleEstimator".
  
  Noteworthy differences in this implementation compared to the paper:
  * The parameter L_H is not implemented; we sample training sequences
  using the default method in GluonTS using the "InstanceSplitter".
  
  Parameters
  ----------
  freq
      Time time granularity of the data
  prediction_length
      Length of the prediction. Also known as 'horizon'.
  context_length
      Number of time units that condition the predictions
      Also known as 'lookback period'.
      Default is 2 * prediction_length.
  trainer
      Trainer object to be used (default: Trainer())
  num_stacks:
      The number of stacks the network should contain.
      Default and recommended value for generic mode: 30
      Recommended value for interpretable mode: 2
  num_blocks
      The number of blocks per stack.
      A list of ints of length 1 or 'num_stacks'.
      Default and recommended value for generic mode: [1]
      Recommended value for interpretable mode: [3]
  block_layers
      Number of fully connected layers with ReLu activation per block.
      A list of ints of length 1 or 'num_stacks'.
      Default and recommended value for generic mode: [4]
      Recommended value for interpretable mode: [4]
  widths
      Widths of the fully connected layers with ReLu activation in the
      blocks. A list of ints of length 1 or 'num_stacks'.
      Default and recommended value for generic mode: [512]
      Recommended value for interpretable mode: [256, 2048]
  sharing
      Whether the weights are shared with the other blocks per stack.
      A list of ints of length 1 or 'num_stacks'.
      Default and recommended value for generic mode: [False]
      Recommended value for interpretable mode: [True]
  expansion_coefficient_lengths
      If the type is "G" (generic), then the length of the expansion
      coefficient. If type is "T" (trend), then it corresponds to the degree
      of the polynomial. If the type is "S" (seasonal) then its not used. A
      list of ints of length 1 or 'num_stacks'. Default value for generic
      mode: [32] Recommended value for interpretable mode: [3]
  stack_types
      One of the following values: "G" (generic), "S" (seasonal) or "T"
      (trend).
      A list of strings of length 1 or 'num_stacks'.
      Default and recommended value for generic mode: ["G"]
      Recommended value for interpretable mode: ["T","S"]
  loss_function
      The loss function (also known as metric) to use for training the
      network. Unlike other models in GluonTS this network does not use a
      distribution.
      One of the following: "sMAPE", "MASE" or "MAPE".
      The default value is "MAPE".
  train_sampler
      Controls the sampling of windows during training.
  validation_sampler
      Controls the sampling of windows during validation.
  batch_size
      The size of the batches to be used training and prediction.
  scale
      if True scales the input observations by the mean
  kwargs
      Arguments passed to 'GluonEstimator'.
code: def create_validation_data_loader(
      self,
      data: Dataset,
      **kwargs,
  ) -> DataLoader:
      input_names = get_hybrid_forward_input_names(
          NBEATSTrainingNetwork
      )
      instance_splitter = self._create_instance_splitter("validation")
      return ValidationDataLoader(
          dataset=data,
          transform=instance_splitter + SelectFields(input_names),
          batch_size=self.batch_size,
          stack_fn=partial(
              batchify, ctx=self.trainer.ctx, dtype=self.dtype
          ),
      )
  
imports: from functools import partial
  from typing import List, Optional
  from mxnet.gluon import HybridBlock
  from gluonts.core.component import validated
  from gluonts.dataset.common import Dataset
  from gluonts.dataset.field_names import FieldName
  from gluonts.dataset.loader import DataLoader, TrainDataLoader, ValidationDataLoader
  from gluonts.model.predictor import Predictor
  from gluonts.mx.batchify import batchify
  from gluonts.mx.model.estimator import GluonEstimator
  from gluonts.mx.model.predictor import RepresentableBlockPredictor
  from gluonts.mx.trainer import Trainer
  from gluonts.mx.util import get_hybrid_forward_input_names
  from gluonts.transform import AddObservedValuesIndicator, ExpectedNumInstanceSampler, InstanceSampler, InstanceSplitter, SelectFields, TestSplitSampler, Transformation, ValidationSplitSampler
  from ._network import VALID_LOSS_FUNCTIONS, VALID_N_BEATS_STACK_TYPES, NBEATSPredictionNetwork, NBEATSTrainingNetwork
label_desc: Use image node_id 6 for calling the NBEATSEstimator obj's underlying member method code with example usage: obj.create_validation_data_loader(data) and returns: ValidationDataLoader