docstr: Parameters
  ----------
  F
  past_target
      Tensor with past observations.
      Shape: (batch_size, context_length, target_dim).
  past_observed_values
      Tensor with past observed values.
      Shape: (batch_size, context_length, target_dim).
  future_target
      Tensor with future observations.
      Shape: (batch_size, prediction_length, target_dim).
  future_observed_values
      Tensor with future observed values.
      Shape: (batch_size, prediction_length, target_dim).
  
  Returns
  -------
  Tensor
      Loss tensor. Shape: (batch_size, ).
docstr_tok: ["Parameters","--","--","--","--","--","F","past_target","Tensor","with","past","observations",".","Shape",":","(","batch_size",",","context_length",",","target_dim",")",".","past_observed_values","Tensor","with","past","observed","values",".","Shape",":","(","batch_size",",","context_length",",","target_dim",")",".","future_target","Tensor","with","future","observations",".","Shape",":","(","batch_size",",","prediction_length",",","target_dim",")",".","future_observed_values","Tensor","with","future","observed","values",".","Shape",":","(","batch_size",",","prediction_length",",","target_dim",")",".","Returns","--","--","--","-","Tensor","Loss","tensor",".","Shape",":","(","batch_size",",",")","."]
code: def hybrid_forward(
      self,
      F,
      past_target: Tensor,
      past_observed_values: Tensor,
      future_target: Tensor,
      future_observed_values: Tensor,
  ) -> Tensor:
      """
  
      Parameters
      ----------
      F
      past_target
          Tensor with past observations.
          Shape: (batch_size, context_length, target_dim).
      past_observed_values
          Tensor with past observed values.
          Shape: (batch_size, context_length, target_dim).
      future_target
          Tensor with future observations.
          Shape: (batch_size, prediction_length, target_dim).
      future_observed_values
          Tensor with future observed values.
          Shape: (batch_size, prediction_length, target_dim).
  
      Returns
      -------
      Tensor
          Loss tensor. Shape: (batch_size, ).
      """
      forecast = super().hybrid_forward(
          F,
          past_target=past_target,
          past_observed_values=past_observed_values,
          future_target=None,
          future_observed_values=None,
      )
  
      if self.loss_function == "sMAPE":
          loss = self.smape_loss(
              F, forecast, future_target, future_observed_values
          )
      elif self.loss_function == "MAPE":
          loss = self.mape_loss(
              F, forecast, future_target, future_observed_values
          )
      elif self.loss_function == "MASE":
          loss = self.mase_loss(
              F,
              forecast,
              future_target,
              past_target,
              self.periodicity,
              future_observed_values,
          )
      else:
          raise ValueError(
              f"Invalid value {self.loss_function} for argument"
              " loss_function."
          )
  
      return loss
  
imports: from typing import List, Optional
  import mxnet
  import numpy
  from gluonts.core.component import validated
  from gluonts.mx import Tensor
  from gluonts.mx.block.scaler import MeanScaler, NOPScaler
  from gluonts.time_feature import get_seasonality
label_desc: Use image node_id 2 for calling the NBEATSTrainingNetwork obj's underlying member method code with example usage: obj.hybrid_forward(F, past_target, past_observed_values, future_target, future_observed_values) and returns: loss