docstr: Returns a decoder based on architecture arch and kwargs
docstr_tok: ["Returns","a","decoder","based","on","architecture","arch","and","kwargs"]
code: def _build_decoder(self, arch, **kwargs):
      """
      Returns a decoder based on architecture arch and kwargs
      """
      # usual non-bottleneck transformer decoder
      if (not arch) or (arch == "seq2seq"):
          decoder = self.decoder
      else:
          raise ValueError(
              f"Unknown arch = {self.arch}, supported arch = {self.supported_arch}"
          )
  
      return decoder
  
imports: from dataclasses import dataclass
  from typing import Dict, Optional
  from nemo.collections.asr.modules.transformer.bridge_encoders import BridgeEncoder
  from nemo.collections.asr.modules.transformer.perceiver_encoders import PerceiverEncoder
  from nemo.collections.asr.modules.transformer.reduction_encoders import PoolingEncoder
  from nemo.collections.asr.modules.transformer.transformer import NeMoTransformerConfig, TransformerDecoderNM, TransformerEncoderNM
  from nemo.core.classes.common import typecheck
  from nemo.core.neural_types import MaskType, NeuralType
  from nemo.core.neural_types.elements import BoolType
label_desc: Use image node_id 2 for calling the TransformerBottleneckDecoderNM obj's underlying member method code with example usage: obj._build_decoder(arch) and returns: decoder