class_docstr: Transfomer decoder module.
  
  Args:
      odim (int): Output diminsion.
      self_attention_layer_type (str): Self-attention layer type.
      attention_dim (int): Dimension of attention.
      attention_heads (int): The number of heads of multi head attention.
      conv_wshare (int): The number of kernel of convolution. Only used in
          self_attention_layer_type == "lightconv*" or "dynamiconv*".
      conv_kernel_length (Union[int, str]): Kernel size str of convolution
          (e.g. 71_71_71_71_71_71). Only used in self_attention_layer_type
          == "lightconv*" or "dynamiconv*".
      conv_usebias (bool): Whether to use bias in convolution. Only used in
          self_attention_layer_type == "lightconv*" or "dynamiconv*".
      linear_units (int): The number of units of position-wise feed forward.
      num_blocks (int): The number of decoder blocks.
      dropout_rate (float): Dropout rate.
      positional_dropout_rate (float): Dropout rate after adding positional encoding.
      self_attention_dropout_rate (float): Dropout rate in self-attention.
      src_attention_dropout_rate (float): Dropout rate in source-attention.
      input_layer (Union[str, torch.nn.Module]): Input layer type.
      use_output_layer (bool): Whether to use output layer.
      pos_enc_class (torch.nn.Module): Positional encoding module class.
          `PositionalEncoding `or `ScaledPositionalEncoding`
      normalize_before (bool): Whether to use layer_norm before the first block.
      concat_after (bool): Whether to concat attention layer's input and output.
          if True, additional linear will be applied.
          i.e. x -> x + linear(concat(x, att(x)))
          if False, no additional linear will be applied. i.e. x -> x + att(x)
docstr: Forward one step.
  
  Args:
      tgt (torch.Tensor): Input token ids, int64 (#batch, maxlen_out).
      tgt_mask (torch.Tensor): Input token mask (#batch, maxlen_out).
          dtype=torch.uint8 in PyTorch 1.2- and dtype=torch.bool in PyTorch 1.2+
          (include 1.2).
      memory (torch.Tensor): Encoded memory, float32 (#batch, maxlen_in, feat).
      cache (List[torch.Tensor]): List of cached tensors.
          Each tensor shape should be (#batch, maxlen_out - 1, size).
  
  Returns:
      torch.Tensor: Output tensor (batch, maxlen_out, odim).
      List[torch.Tensor]: List of cache tensors of each decoder layer.
docstr_tok: ["Forward","one","step",".","Args",":","tgt","(","torch.Tensor",")",":","Input","token","ids",",","int64","(","#","batch",",","maxlen_out",")",".","tgt_mask","(","torch.Tensor",")",":","Input","token","mask","(","#","batch",",","maxlen_out",")",".","dtype=torch.uint8","in","PyTorch","1.2-","and","dtype=torch.bool","in","PyTorch","1.2+","(","include","1.2",")",".","memory","(","torch.Tensor",")",":","Encoded","memory",",","float32","(","#","batch",",","maxlen_in",",","feat",")",".","cache","(","List","[","torch.Tensor","]",")",":","List","of","cached","tensors",".","Each","tensor","shape","should","be","(","#","batch",",","maxlen_out","-","1",",","size",")",".","Returns",":","torch.Tensor",":","Output","tensor","(","batch",",","maxlen_out",",","odim",")",".","List","[","torch.Tensor","]",":","List","of","cache","tensors","of","each","decoder","layer","."]
code: def forward_one_step(self, tgt, tgt_mask, memory, cache=None):
      """Forward one step.
  
      Args:
          tgt (torch.Tensor): Input token ids, int64 (#batch, maxlen_out).
          tgt_mask (torch.Tensor): Input token mask (#batch, maxlen_out).
              dtype=torch.uint8 in PyTorch 1.2- and dtype=torch.bool in PyTorch 1.2+
              (include 1.2).
          memory (torch.Tensor): Encoded memory, float32 (#batch, maxlen_in, feat).
          cache (List[torch.Tensor]): List of cached tensors.
              Each tensor shape should be (#batch, maxlen_out - 1, size).
  
      Returns:
          torch.Tensor: Output tensor (batch, maxlen_out, odim).
          List[torch.Tensor]: List of cache tensors of each decoder layer.
  
      """
      x = self.embed(tgt)
      if cache is None:
          cache = [None] * len(self.decoders)
      new_cache = []
      for c, decoder in zip(cache, self.decoders):
          x, tgt_mask, memory, memory_mask = decoder(
              x, tgt_mask, memory, None, cache=c
          )
          new_cache.append(x)
  
      if self.normalize_before:
          y = self.after_norm(x[:, -1])
      else:
          y = x[:, -1]
      if self.output_layer is not None:
          y = torch.log_softmax(self.output_layer(y), dim=-1)
  
      return y, new_cache
  
imports: import logging
  from typing import Any, List, Tuple
  import torch
  from espnet.nets.pytorch_backend.nets_utils import rename_state_dict
  from espnet.nets.pytorch_backend.transformer.attention import MultiHeadedAttention
  from espnet.nets.pytorch_backend.transformer.decoder_layer import DecoderLayer
  from espnet.nets.pytorch_backend.transformer.dynamic_conv import DynamicConvolution
  from espnet.nets.pytorch_backend.transformer.dynamic_conv2d import DynamicConvolution2D
  from espnet.nets.pytorch_backend.transformer.embedding import PositionalEncoding
  from espnet.nets.pytorch_backend.transformer.layer_norm import LayerNorm
  from espnet.nets.pytorch_backend.transformer.lightconv import LightweightConvolution
  from espnet.nets.pytorch_backend.transformer.lightconv2d import LightweightConvolution2D
  from espnet.nets.pytorch_backend.transformer.mask import subsequent_mask
  from espnet.nets.pytorch_backend.transformer.positionwise_feed_forward import PositionwiseFeedForward
  from espnet.nets.pytorch_backend.transformer.repeat import repeat
  from espnet.nets.scorer_interface import BatchScorerInterface
label_desc: Use image node_id 3 for calling the Decoder obj's underlying member method code with example usage: obj.forward_one_step(tgt, tgt_mask, memory, cache) and returns: y,  new_cache