code: def base_architecture(args):
      # encoder
      args.encoder_dropout = getattr(args, "encoder_dropout", 0.5)
      args.encoder_embed_dim = getattr(args, "encoder_embed_dim", 512)
      args.encoder_conv_layers = getattr(args, "encoder_conv_layers", 3)
      args.encoder_conv_kernel_size = getattr(
          args, "encoder_conv_kernel_size", 5
      )
      args.encoder_lstm_layers = getattr(args, "encoder_lstm_layers", 1)
      # decoder
      args.attention_dim = getattr(args, "attention_dim", 128)
      args.attention_conv_dim = getattr(args, "attention_conv_dim", 32)
      args.attention_conv_kernel_size = getattr(
          args, "attention_conv_kernel_size", 15
      )
      args.prenet_dropout = getattr(args, "prenet_dropout", 0.5)
      args.prenet_layers = getattr(args, "prenet_layers", 2)
      args.prenet_dim = getattr(args, "prenet_dim", 256)
      args.postnet_dropout = getattr(args, "postnet_dropout", 0.5)
      args.postnet_layers = getattr(args, "postnet_layers", 5)
      args.postnet_conv_dim = getattr(args, "postnet_conv_dim", 512)
      args.postnet_conv_kernel_size = getattr(
          args, "postnet_conv_kernel_size", 5
      )
      args.init_attn_c = getattr(args, "init_attn_c", "zero")
      args.attention_use_cumprob = getattr(
          args, "attention_use_cumprob", True
      )
      args.zoneout = getattr(args, "zoneout", 0.1)
      args.decoder_lstm_layers = getattr(args, "decoder_lstm_layers", 2)
      args.decoder_lstm_dim = getattr(args, "decoder_lstm_dim", 1024)
      args.output_frame_dim = getattr(args, "output_frame_dim", 80)
  
imports: import logging
  import torch
  from torch import nn
  from torch.nn import functional
  from fairseq.models import FairseqEncoder, FairseqEncoderDecoderModel, FairseqIncrementalDecoder, register_model, register_model_architecture
  from fairseq.modules import LSTMCellWithZoneOut, LocationAttention
label_desc: Use image node_id 3 for calling a global function with example usage: base_architecture(args) without return types