class_docstr: Construct a COP estimator for temporal hierarchies.
  
  Parameters
  ----------
  freq
  prediction_length
  base_estimator_name
      Currently only `DeepAREstimator`
  base_estimator_hps
  do_reconciliation
      Flag to indicate if the samples at different aggregated levels should be reconciled. Useful for ablation study.
      Set this to False and check just learning multiple related tasks at the same time affects the accuracy at the
      bottom level; this is without doing any reconciliation.
  loss_function
      Training loss function to be used. Currently one of `crps_univariate` and `mse`.
  distr_output
  trainer
  lag_ub
  num_samples_for_loss
  dtype
class_docstr_tok: ["Construct","a","COP","estimator","for","temporal","hierarchies",".","Parameters","--","--","--","--","--","freq","prediction_length","base_estimator_name","Currently","only","`","DeepAREstimator","`","base_estimator_hps","do_reconciliation","Flag","to","indicate","if","the","samples","at","different","aggregated","levels","should","be","reconciled",".","Useful","for","ablation","study",".","Set","this","to","False","and","check","just","learning","multiple","related","tasks","at","the","same","time","affects","the","accuracy","at","the","bottom","level",";","this","is","without","doing","any","reconciliation",".","loss_function","Training","loss","function","to","be","used",".","Currently","one","of","`","crps_univariate","`","and","`","mse","`",".","distr_output","trainer","lag_ub","num_samples_for_loss","dtype"]
code: def create_training_network(self) -> COPDeepARTrainingNetwork:
      return COPDeepARTrainingNetwork(
          estimators=self.estimators,
          prediction_length=self.prediction_length,
          temporal_hierarchy=self.temporal_hierarchy,
          num_batches_per_epoch=self.trainer.num_batches_per_epoch,
          epochs=self.trainer.epochs,
          warmstart_epoch_frac=self.warmstart_epoch_frac,
          num_samples_for_loss=self.num_samples_for_loss,
          use_gnn=self.use_gnn,
          use_mlp=self.use_mlp,
          adj_mat_option=self.adj_mat_option,
          do_reconciliation=self.do_reconciliation,
          non_negative=self.non_negative,
          naive_reconciliation=self.naive_reconciliation,
          loss_function=self.loss_function,
          dtype=self.dtype,
      )
  
imports: from copy import deepcopy
  from functools import partial
  from typing import List, Tuple, Optional
  from mxnet.gluon import HybridBlock
  import numpy
  import pandas
  from gluonts.core.component import Type, validated
  from gluonts.dataset.common import DataEntry, 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.distribution import GaussianOutput
  from gluonts.mx.model.estimator import GluonEstimator
  from gluonts.mx.trainer import Trainer
  from gluonts.mx.util import get_hybrid_forward_input_names
  from gluonts.mx.util import copy_parameters
  from gluonts.time_feature import get_lags_for_frequency, time_features_from_frequency_str
  from gluonts.transform import SelectFields, SimpleTransformation, Transformation, MissingValueImputation, RollingMeanValueImputation
  from gluonts.nursery.temporal_hierarchical_forecasting.model.cop_deepar.gluonts_fixes import batchify_with_dict, DeepAREstimatorForCOP, LOSS_FUNCTIONS, RepresentableBlockPredictorBatchifyWithDict
  from gluonts.nursery.temporal_hierarchical_forecasting.utils.common import TEMPORAL_HIERARCHIES
  from gluonts.nursery.temporal_hierarchical_forecasting.model.cop_deepar._network import COPDeepARTrainingNetwork, COPDeepARPredictionNetwork
label_desc: Use image node_id 5 for calling the COPDeepAREstimator obj's underlying member method code with example usage: obj.create_training_network() and returns: COPDeepARTrainingNetwork