class_docstr:     The base class for decoder
  
  Parameters
  ----------
  use_attention: bool, default=True
      Whether to use attention mechanism
  use_copy: bool, default=False
      Whether to use copy attention(pointer network) mechanism
  use_coverage: bool, default=False
      Whether to use coverage attention mechanism
  attention_type: str, option=["uniform", "separate"], default="uniform"
      The attention strategy choice.
      "``uniform``": uniform attention. We will attend on the nodes uniformly.
      "``sep_diff_encoder_type``": separate attention.
                                  We will attend on different encoder results separately.
      "``sep_diff_node_type``": separate attention.
                                  We will attend on different node type separately.
  attention_function_type: str, option=["mlp", "dot", "general"]
  
  
  fuse_strategy: str, option=[None, "average", "concatenate"], default=None
      The strategy to fuse attention results generated by separate attention.
      "None": If we do ``uniform`` attention, we will set it to None.
      "``average``": We will take an average on all results.
      "``concatenate``": We will concatenate all results to one.
docstr: One step for decoding
docstr_tok: ["One","step","for","decoding"]
code: def decode_step(self, **kwargs):
      r"""
      One step for decoding
      """
      raise NotImplementedError()
  
imports: import torch.nn
label_desc: Use image node_id 3 for calling the DecoderBase obj's underlying member method code with example usage: obj.decode_step() without return types