class_docstr: OneShotDecoder.
  
  Parameters
  ----------
  decoder_length
      length of the decoder (number of time steps)
  layer_sizes
      dimensions of the hidden layers
  static_outputs_per_time_step
      number of outputs per time step
class_docstr_tok: ["OneShotDecoder",".","Parameters","--","--","--","--","--","decoder_length","length","of","the","decoder","(","number","of","time","steps",")","layer_sizes","dimensions","of","the","hidden","layers","static_outputs_per_time_step","number","of","outputs","per","time","step"]
docstr: OneShotDecoder forward call.
  
  Parameters
  ----------
  F
      A module that can either refer to the Symbol API or the NDArray
      API in MXNet.
  
  static_input
      static features, shape (batch_size, channels_seq[-1] + 1) or (N, C)
  
  dynamic_input
      dynamic_features, shape (batch_size, sequence_length,
      channels_seq[-1] + 1 + decoder_length * num_feat_dynamic)
      or (N, T, C)
  
  Returns
  -------
  Tensor
      mlp output, shape (batch_size, decoder_length, size of last layer)
docstr_tok: ["OneShotDecoder","forward","call",".","Parameters","--","--","--","--","--","F","A","module","that","can","either","refer","to","the","Symbol","API","or","the","NDArray","API","in","MXNet",".","static_input","static","features",",","shape","(","batch_size",",","channels_seq","[","-1","]","+","1",")","or","(","N",",","C",")","dynamic_input","dynamic_features",",","shape","(","batch_size",",","sequence_length",",","channels_seq","[","-1","]","+","1","+","decoder_length","*","num_feat_dynamic",")","or","(","N",",","T",",","C",")","Returns","--","--","--","-","Tensor","mlp","output",",","shape","(","batch_size",",","decoder_length",",","size","of","last","layer",")"]
code: def hybrid_forward(
      self, F, static_input: Tensor, dynamic_input: Tensor
  ) -> Tensor:
      """
      OneShotDecoder forward call.
  
      Parameters
      ----------
      F
          A module that can either refer to the Symbol API or the NDArray
          API in MXNet.
  
      static_input
          static features, shape (batch_size, channels_seq[-1] + 1) or (N, C)
  
      dynamic_input
          dynamic_features, shape (batch_size, sequence_length,
          channels_seq[-1] + 1 + decoder_length * num_feat_dynamic)
          or (N, T, C)
  
      Returns
      -------
      Tensor
          mlp output, shape (batch_size, decoder_length, size of last layer)
      """
      static_input_tile = self.expander(static_input).reshape(
          (0, self.decoder_length, self.static_outputs_per_time_step)
      )
      combined_input = F.concat(dynamic_input, static_input_tile, dim=2)
  
      out = self.mlp(combined_input)  # (N, T, layer_sizes[-1])
      return out
  
file_path: gluonts/src/gluonts/mx/block/decoder.py
imports: from typing import List
  from mxnet.gluon import nn
  from gluonts.core.component import validated
  from gluonts.mx import Tensor
  from gluonts.mx.block.mlp import MLP
label_desc: Use image node_id 2 for calling the OneShotDecoder obj's underlying member method code with example usage: obj.hybrid_forward(F, static_input, dynamic_input) and returns: out