code: def build_head_selection_decoder_layer(
      self, args, no_encoder_attn=False, layer_idx=None
  ):
      return HeadSelectionTransformerDecoderLayer(
          args,
          layer_idx,
          self.self_attn_head_selector,
          self.enc_attn_head_selector,
          no_encoder_attn=no_encoder_attn,
      )
  
imports: from typing import Any, List, Dict, Optional
  import torch
  import torch.nn
  from torch import Tensor
  from fairseq.utils import safe_hasattr
  from fairseq.models.transformer import TransformerModel, TransformerEncoder, TransformerDecoder
  from ..modules.attn_head_selector import AttnHeadSelector
  from ..modules.head_selection_transformer_layer import HeadSelectionTransformerEncoderLayer, HeadSelectionTransformerDecoderLayer
label_desc: Use image node_id 3 for calling the HeadSelectionTransformerDecoder obj's underlying member method code with example usage: obj.build_head_selection_decoder_layer(args, no_encoder_attn, layer_idx) and returns: HeadSelectionTransformerDecoderLayer