docstr: Build a new (multi-)encoder instance.
docstr_tok: ["Build","a","new","(","multi-",")","encoder","instance","."]
code: def build_encoder(cls, args, src_dict, embed_tokens):
      """Build a new (multi-)encoder instance."""
      if args.multi_encoder is not None:
          encoders = [
              RNNModel.build_single_encoder(
                  args, src_dict, embed_tokens=embed_tokens
              )
              for _ in range(args.multi_encoder)
          ]
          encoder = MultiEncoder(
              src_dict,
              encoders,
              training_schedule=args.multi_model_training_schedule,
          )
      else:
          encoder = RNNModel.build_single_encoder(
              args, src_dict, embed_tokens=embed_tokens
          )
      return encoder
  
imports: import numpy
  import torch
  import torch.nn
  import torch.nn.functional
  import torch.onnx.operators
  from fairseq import options, utils
  from fairseq.models import FairseqEncoder, FairseqEncoderDecoderModel, register_model, register_model_architecture
  from fairseq.modules import AdaptiveSoftmax
  from pytorch_translate import attention, rnn_cell, utils, vocab_reduction
  from pytorch_translate.common_layers import ContextEmbedding, DecoderWithOutputProjection, Embedding, Linear, RNNLayer, VariableTracker
  from pytorch_translate.data import data
  from pytorch_translate.multi_model import MultiDecoder, MultiEncoder
  from pytorch_translate.multilingual import MultilingualDecoder, MultilingualEncoder
  from pytorch_translate.ngram import NGramDecoder
  from pytorch_translate.semi_supervised import SemiSupervisedModel
  from pytorch_translate.utils import maybe_cat, maybe_cuda, torch_find
  from torch.nn.utils.rnn import pack_padded_sequence, PackedSequence, pad_packed_sequence
label_desc: Use image node_id 6 for calling the RNNModel obj's underlying member method code with example usage: obj.build_encoder(cls, args, src_dict, embed_tokens) and returns: encoder