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.
code: def __init__(
      self,
      use_attention=True,
      use_copy=False,
      use_coverage=False,
      attention_type="uniform",
      fuse_strategy="average",
  ):
      super(DecoderBase, self).__init__()
      self.use_attention = use_attention
      self.use_copy = use_copy
      self.use_coverage = use_coverage
      self.attention_type = attention_type
      self.fuse_strategy = fuse_strategy
  
imports: import torch.nn
label_desc: Use image node_id 1 to create a new DecoderBase object from inherited base classes: nn with example: obj = DecoderBase(use_attention, use_copy, use_coverage, attention_type, fuse_strategy)