docstr: Predicts samples, all tensors should have NTC layout.
  
  Parameters
  ----------
  F
  feat_static_cat : (batch_size, num_features)
  past_time_feat : (batch_size, history_length, num_features)
  past_target : (batch_size, history_length, *target_shape)
  past_observed_values : (batch_size, history_length, *target_shape)
  future_time_feat : (batch_size, prediction_length, num_features)
  
  Returns predicted samples
  -------
docstr_tok: ["Predicts","samples",",","all","tensors","should","have","NTC","layout",".","Parameters","--","--","--","--","--","F","feat_static_cat",":","(","batch_size",",","num_features",")","past_time_feat",":","(","batch_size",",","history_length",",","num_features",")","past_target",":","(","batch_size",",","history_length",",","*","target_shape",")","past_observed_values",":","(","batch_size",",","history_length",",","*","target_shape",")","future_time_feat",":","(","batch_size",",","prediction_length",",","num_features",")","Returns","predicted","samples","--","--","--","-"]
code: def hybrid_forward(
      self,
      F,
      feat_static_cat: Tensor,
      past_time_feat: Tensor,
      past_target: Tensor,
      past_observed_values: Tensor,
      future_time_feat: Tensor,
  ) -> Tensor:
      """
      Predicts samples, all tensors should have NTC layout.
  
      Parameters
      ----------
      F
      feat_static_cat : (batch_size, num_features)
      past_time_feat : (batch_size, history_length, num_features)
      past_target : (batch_size, history_length, *target_shape)
      past_observed_values : (batch_size, history_length, *target_shape)
      future_time_feat : (batch_size, prediction_length, num_features)
  
      Returns predicted samples
      -------
      """
  
      # create the inputs for the encoder
      inputs, scale, static_feat = self.create_network_input(
          F=F,
          feat_static_cat=feat_static_cat,
          past_time_feat=past_time_feat,
          past_target=past_target,
          past_observed_values=past_observed_values,
          future_time_feat=None,
          future_target=None,
      )
  
      # pass through encoder
      enc_out = self.encoder(inputs)
  
      return self.sampling_decoder(
          F=F,
          past_target=past_target,
          time_feat=future_time_feat,
          static_feat=static_feat,
          scale=scale,
          enc_out=enc_out,
      )
  
imports: from typing import List, Optional, Tuple
  import mxnet
  from gluonts.core.component import validated
  from gluonts.itertools import prod
  from gluonts.mx import Tensor
  from gluonts.mx.block.feature import FeatureEmbedder
  from gluonts.mx.block.scaler import MeanScaler, NOPScaler
  from gluonts.mx.distribution import DistributionOutput
  from gluonts.mx.util import weighted_average
  from .trans_decoder import TransformerDecoder
  from .trans_encoder import TransformerEncoder
label_desc: Use image node_id 3 for calling the TransformerPredictionNetwork obj's underlying member method code with example usage: obj.hybrid_forward(F, feat_static_cat, past_time_feat, past_target, past_observed_values, future_time_feat) and returns: self