class_docstr: An abstract RNNT Decoder framework, which can possibly integrate with GreedyRNNTInfer and BeamRNNTInfer classes.
  Represents the abstract RNNT Prediction/Decoder stateful network, which performs autoregressive decoding
  in order to construct the output sequence.
  
  Args:
      vocab_size: Size of the vocabulary, excluding the RNNT blank token.
      blank_idx: Index of the blank token. Can be 0 or size(vocabulary).
      blank_as_pad: Bool flag, whether to allocate an additional token in the Embedding layer
          of this module in order to treat all RNNT `blank` tokens as pad tokens, thereby letting
          the Embedding layer batch tokens more efficiently.
  
          It is mandatory to use this for certain Beam RNNT Infer methods - such as TSD, ALSD.
          It is also more efficient to use greedy batch decoding with this flag.
class_docstr_tok: ["An","abstract","RNNT","Decoder","framework",",","which","can","possibly","integrate","with","GreedyRNNTInfer","and","BeamRNNTInfer","classes",".","Represents","the","abstract","RNNT","Prediction\/Decoder","stateful","network",",","which","performs","autoregressive","decoding","in","order","to","construct","the","output","sequence",".","Args",":","vocab_size",":","Size","of","the","vocabulary",",","excluding","the","RNNT","blank","token",".","blank_idx",":","Index","of","the","blank","token",".","Can","be","0","or","size","(","vocabulary",")",".","blank_as_pad",":","Bool","flag",",","whether","to","allocate","an","additional","token","in","the","Embedding","layer","of","this","module","in","order","to","treat","all","RNNT","`","blank","`","tokens","as","pad","tokens",",","thereby","letting","the","Embedding","layer","batch","tokens","more","efficiently",".","It","is","mandatory","to","use","this","for","certain","Beam","RNNT","Infer","methods","-","such","as","TSD",",","ALSD",".","It","is","also","more","efficient","to","use","greedy","batch","decoding","with","this","flag","."]
code: def __init__(self, vocab_size, blank_idx, blank_as_pad):
      super().__init__()
  
      self.vocab_size = vocab_size
      self.blank_idx = blank_idx  # first or last index of vocabulary
      self.blank_as_pad = blank_as_pad
  
      if blank_idx not in [0, vocab_size]:
          raise ValueError(
              "`blank_idx` must be either 0 or the final token of the vocabulary"
          )
  
imports: from abc import ABC, abstractmethod
  from typing import Any, Dict, List, Optional, Tuple
  import torch
  from nemo.collections.asr.parts.utils.rnnt_utils import Hypothesis
  from nemo.core import NeuralModule
label_desc: Use image node_id 1 to create a new AbstractRNNTDecoder object from inherited base classes: NeuralModule, ABC with example: obj = AbstractRNNTDecoder(vocab_size, blank_idx, blank_as_pad)