class_docstr: Decoder layer.
  
  Args:
      odim (int): The output dimension.
      n_layers (int): Number of ecoder layers.
      n_units (int): Number of attention units.
      d_units (int): Dimension of input vector of decoder.
      h (int): Number of attention heads.
      dropout (float): Dropout rate.
      initialW (Initializer): Initializer to initialize the weight.
      initial_bias (Initializer): Initializer to initialize the bias.
class_docstr_tok: ["Decoder","layer",".","Args",":","odim","(","int",")",":","The","output","dimension",".","n_layers","(","int",")",":","Number","of","ecoder","layers",".","n_units","(","int",")",":","Number","of","attention","units",".","d_units","(","int",")",":","Dimension","of","input","vector","of","decoder",".","h","(","int",")",":","Number","of","attention","heads",".","dropout","(","float",")",":","Dropout","rate",".","initialW","(","Initializer",")",":","Initializer","to","initialize","the","weight",".","initial_bias","(","Initializer",")",":","Initializer","to","initialize","the","bias","."]
docstr: Process recognition function.
docstr_tok: ["Process","recognition","function","."]
code: def recognize(self, e, yy_mask, source):
      """Process recognition function."""
      e = self.forward(e, source, yy_mask)
      return F.log_softmax(e, axis=-1)
  
file_path: espnet/espnet/nets/chainer_backend/transformer/decoder.py
imports: import chainer
  import chainer.functions
  import chainer.links
  import numpy
  from espnet.nets.chainer_backend.transformer.decoder_layer import DecoderLayer
  from espnet.nets.chainer_backend.transformer.embedding import PositionalEncoding
  from espnet.nets.chainer_backend.transformer.layer_norm import LayerNorm
  from espnet.nets.chainer_backend.transformer.mask import make_history_mask
label_desc: Use image node_id 4 for calling the Decoder obj's underlying member method code with example usage: obj.recognize(e, yy_mask, source) and returns: F