code: def gen_enc_layer_pair():
      fairseq_enc_layer = fairseq_layers.generate_enc_layer()
      fairseq_enc_layer.train()
      initial_enc_weights, initial_enc_biases = get_fairseq_enc_params(
          fairseq_enc_layer
      )
      custom_enc_layer = generate_enc_layer(
          initial_enc_weights, initial_enc_biases
      )
      custom_enc_layer.train()
      return fairseq_enc_layer, custom_enc_layer
  
imports: import random
  import math
  from copy import deepcopy
  from dataclasses import dataclass
  import torch
  import torch.nn
  from tests.util import TestDecorator, get_fairseq_enc_params, get_fairseq_dec_params, max_batch_tokens, max_seq_len, split_custom_layer_grad, copy_grad_from_paras, copy_cmax_grad_from_paras
  from tests import fairseq_layers
  from lightseq.training.ops.pytorch.transformer_encoder_layer import LSTransformerEncoderLayer
  from lightseq.training.ops.pytorch.transformer_embedding_layer import LSTransformerEmbeddingLayer
  from lightseq.training.ops.pytorch.cross_entropy_layer import LSCrossEntropyLayer
  from lightseq.training.ops.pytorch.quant_linear_layer import LSQuantLinearLayer
  from lightseq.training.cli.fs_modules.ls_fs_transformer_decoder_layer import LSFSTransformerDecoderLayer
  from lightseq.training.ops.pytorch.quantization import enable_quant, disable_quant, qat_mode, ptq_mode
label_desc: Use image node_id 2 for calling a global function with example usage: gen_enc_layer_pair() and returns: fairseq_enc_layer,  custom_enc_layer