code: def _forward(
      self,
      F,
      past_observed_values: Tensor,
      past_covariates: Tensor,
      future_covariates: Tensor,
      static_covariates: Tensor,
  ):
      static_var, _ = self.static_selector(static_covariates)
      c_selection = self.selection(static_var).expand_dims(axis=1)
      c_enrichment = self.enrichment(static_var).expand_dims(axis=1)
      c_h = self.state_h(static_var)
      c_c = self.state_c(static_var)
  
      ctx_input, _ = self.ctx_selector(past_covariates, c_selection)
      tgt_input, _ = self.tgt_selector(future_covariates, c_selection)
  
      encoding = self.temporal_encoder(ctx_input, tgt_input, [c_h, c_c])
      decoding = self.temporal_decoder(
          encoding, c_enrichment, past_observed_values
      )
      preds = self.output_proj(decoding)
  
      return preds
  
imports: from typing import List, Tuple, Type
  import numpy
  from mxnet.gluon import HybridBlock, nn
  from gluonts.core.component import validated
  from gluonts.mx import Tensor
  from gluonts.mx.block.feature import FeatureEmbedder
  from gluonts.mx.block.quantile_output import QuantileOutput
  from gluonts.mx.util import weighted_average
  from ._layers import GatedResidualNetwork, TemporalFusionDecoder, TemporalFusionEncoder, VariableSelectionNetwork
label_desc: Use image node_id 4 for calling the TemporalFusionTransformerNetwork obj's underlying member method code with example usage: obj._forward(F, past_observed_values, past_covariates, future_covariates, static_covariates) and returns: preds