class_docstr: Transformer Decoder block with self attention mechanism.
  
  Args:
      n_layers (int): Number of attention layers. Defaults to 6.
      d_embedding (int): Language embedding dimension. Defaults to 512.
      n_head (int): Number of parallel attention heads. Defaults to 8.
      d_k (int): Dimension of the key vector. Defaults to 64.
      d_v (int): Dimension of the value vector. Defaults to 64
      d_model (int): Dimension :math:`D_m` of the input from previous model.
          Defaults to 512.
      d_inner (int): Hidden dimension of feedforward layers. Defaults to 256.
      n_position (int): Length of the positional encoding vector. Must be
          greater than ``max_seq_len``. Defaults to 200.
      dropout (float): Dropout rate for text embedding, MHSA, FFN. Defaults
          to 0.1.
      module_loss (dict, optional): Config to build module_loss. Defaults
          to None.
      postprocessor (dict, optional): Config to build postprocessor.
          Defaults to None.
      dictionary (dict or :obj:`Dictionary`): The config for `Dictionary` or
          the instance of `Dictionary`.
      max_seq_len (int): Maximum output sequence length :math:`T`. Defaults
          to 30.
      init_cfg (dict or list[dict], optional): Initialization configs.
class_docstr_tok: ["Transformer","Decoder","block","with","self","attention","mechanism",".","Args",":","n_layers","(","int",")",":","Number","of","attention","layers",".","Defaults","to","6.","d_embedding","(","int",")",":","Language","embedding","dimension",".","Defaults","to","512.","n_head","(","int",")",":","Number","of","parallel","attention","heads",".","Defaults","to","8.","d_k","(","int",")",":","Dimension","of","the","key","vector",".","Defaults","to","64.","d_v","(","int",")",":","Dimension","of","the","value","vector",".","Defaults","to","64","d_model","(","int",")",":","Dimension",":","math",":","`","D_m","`","of","the","input","from","previous","model",".","Defaults","to","512.","d_inner","(","int",")",":","Hidden","dimension","of","feedforward","layers",".","Defaults","to","256.","n_position","(","int",")",":","Length","of","the","positional","encoding","vector",".","Must","be","greater","than","``","max_seq_len","``",".","Defaults","to","200.","dropout","(","float",")",":","Dropout","rate","for","text","embedding",",","MHSA",",","FFN",".","Defaults","to","0.1.","module_loss","(","dict",",","optional",")",":","Config","to","build","module_loss",".","Defaults","to","None",".","postprocessor","(","dict",",","optional",")",":","Config","to","build","postprocessor",".","Defaults","to","None",".","dictionary","(","dict","or",":","obj",":","`","Dictionary","`",")",":","The","config","for","`","Dictionary","`","or","the","instance","of","`","Dictionary","`",".","max_seq_len","(","int",")",":","Maximum","output","sequence","length",":","math",":","`","T","`",".","Defaults","to","30.","init_cfg","(","dict","or","list","[","dict","]",",","optional",")",":","Initialization","configs","."]
docstr: Generate mask for source sequence.
  
  Args:
      src_seq (torch.Tensor): Image sequence. Shape :math:`(N, T, C)`.
      valid_ratios (list[float]): The valid ratio of input image. For
          example, if the width of the original image is w1 and the width
          after padding is w2, then valid_ratio = w1/w2. Source mask is
          used to cover the area of the padding region.
  
  Returns:
      Tensor or None: Source mask. Shape :math:`(N, T)`. The region of
      padding area are False, and the rest are True.
docstr_tok: ["Generate","mask","for","source","sequence",".","Args",":","src_seq","(","torch.Tensor",")",":","Image","sequence",".","Shape",":","math",":","`","(","N",",","T",",","C",")","`",".","valid_ratios","(","list","[","float","]",")",":","The","valid","ratio","of","input","image",".","For","example",",","if","the","width","of","the","original","image","is","w1","and","the","width","after","padding","is","w2",",","then","valid_ratio","=","w1\/w2",".","Source","mask","is","used","to","cover","the","area","of","the","padding","region",".","Returns",":","Tensor","or","None",":","Source","mask",".","Shape",":","math",":","`","(","N",",","T",")","`",".","The","region","of","padding","area","are","False",",","and","the","rest","are","True","."]
code: def _get_source_mask(
      self, src_seq: torch.Tensor, valid_ratios: Sequence[float]
  ) -> torch.Tensor:
      """Generate mask for source sequence.
  
      Args:
          src_seq (torch.Tensor): Image sequence. Shape :math:`(N, T, C)`.
          valid_ratios (list[float]): The valid ratio of input image. For
              example, if the width of the original image is w1 and the width
              after padding is w2, then valid_ratio = w1/w2. Source mask is
              used to cover the area of the padding region.
  
      Returns:
          Tensor or None: Source mask. Shape :math:`(N, T)`. The region of
          padding area are False, and the rest are True.
      """
  
      N, T, _ = src_seq.size()
      mask = None
      if len(valid_ratios) > 0:
          mask = src_seq.new_zeros((N, T), device=src_seq.device)
          for i, valid_ratio in enumerate(valid_ratios):
              valid_width = min(T, math.ceil(T * valid_ratio))
              mask[i, :valid_width] = 1
  
      return mask
  
file_path: mmocr/mmocr/models/textrecog/decoders/nrtr_decoder.py
imports: import math
  from typing import Dict, List, Optional, Sequence, Union
  import torch
  import torch.nn
  from mmengine.model import ModuleList
  from mmocr.models.common import PositionalEncoding, TFDecoderLayer
  from mmocr.models.common.dictionary import Dictionary
  from mmocr.registry import MODELS
  from mmocr.structures import TextRecogDataSample
  from .base import BaseDecoder
label_desc: Use image node_id 3 for calling the NRTRDecoder obj's underlying member method code with example usage: obj._get_source_mask(src_seq, valid_ratios) and returns: mask