class_docstr: The NBEATS Block as described in the paper:
  https://arxiv.org/abs/1905.10437.
  
  Parameters
  ----------
  width
      Width of the fully connected layers with ReLu activation.
  num_block_layers
      Number of fully connected layers with ReLu activation.
  expansion_coefficient_length
      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.
  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'.
  has_backcast
      Only the last block of the network doesn't.
  kwargs
      Arguments passed to 'HybridBlock'.
code: def hybrid_forward(self, F, x, *args, **kwargs):
      # We do this to cache the constant basis matrix between forward passes
      if not self.basis_initialized:
          self.initialize_basis(F)
          self.basis_initialized = True
  
      x = self.fc_stack(x)
      theta_f = self.theta_forecast(x)
      forecast = self.forecast(theta_f)
  
      if self.has_backcast:
          theta_b = self.theta_backcast(x)
          backcast = self.backcast(theta_b)
          return backcast, forecast
  
      return forecast
  
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 3 for calling the NBEATSBlock obj's underlying member method code with example usage: obj.hybrid_forward(F, x) and returns: forecast, backcast,  forecast