class_docstr: Cross-Attention Transformer Decoder Layer block as described
  in the paper: https://arxiv.org/pdf/2203.16502.pdf
  
  Composed of a Multi-head Self Attention block followed by a
  Multi-head Cross-Attention block which attends to the self-attention
  outputs of the other channels. The weights of the attention blocks
  in all channels are shared.
  
  Args:
      args (argparse.Namespace): parsed command-line arguments
      no_encoder_attn (bool, optional): whether to attend to encoder outputs
          (default: False).
class_docstr_tok: ["Cross-Attention","Transformer","Decoder","Layer","block","as","described","in","the","paper",":","https",":","\/\/arxiv.org\/pdf\/2203.16502.pdf","Composed","of","a","Multi-head","Self","Attention","block","followed","by","a","Multi-head","Cross-Attention","block","which","attends","to","the","self-attention","outputs","of","the","other","channels",".","The","weights","of","the","attention","blocks","in","all","channels","are","shared",".","Args",":","args","(","argparse.Namespace",")",":","parsed","command-line","arguments","no_encoder_attn","(","bool",",","optional",")",":","whether","to","attend","to","encoder","outputs","(","default",":","False",")","."]
code: def build_cross_channel_attention(
      self, embed_dim, args, add_bias_kv=False, add_zero_attn=False
  ):
      return MultiheadAttention(
          embed_dim,
          args.decoder_attention_heads,
          dropout=args.attention_dropout,
          add_bias_kv=add_bias_kv,
          add_zero_attn=add_zero_attn,
          self_attention=False,
          q_noise=self.quant_noise,
          qn_block_size=self.quant_noise_block_size,
      )
  
imports: from typing import Dict, List, Tuple, Optional
  import torch
  import torch.nn
  from fairseq import utils
  from fairseq.modules import LayerNorm, MultiheadAttention
  from fairseq.modules.fairseq_dropout import FairseqDropout
  from fairseq.modules.quant_noise import quant_noise
  from torch import Tensor
label_desc: Use image node_id 5 for calling the CrossChannelTransformerDecoderLayer obj's underlying member method code with example usage: obj.build_cross_channel_attention(embed_dim, args, add_bias_kv, add_zero_attn) and returns: MultiheadAttention