def __init__()

in iep/models/module_net.py [0:0]


  def __init__(self, vocab, feature_dim=(1024, 14, 14),
               stem_num_layers=2,
               stem_batchnorm=False,
               module_dim=128,
               module_residual=True,
               module_batchnorm=False,
               classifier_proj_dim=512,
               classifier_downsample='maxpool2',
               classifier_fc_layers=(1024,),
               classifier_batchnorm=False,
               classifier_dropout=0,
               verbose=True):
    super(ModuleNet, self).__init__()


    self.stem = build_stem(feature_dim[0], module_dim,
                           num_layers=stem_num_layers,
                           with_batchnorm=stem_batchnorm)
    if verbose:
      print('Here is my stem:')
      print(self.stem)

    num_answers = len(vocab['answer_idx_to_token'])
    module_H, module_W = feature_dim[1], feature_dim[2]
    self.classifier = build_classifier(module_dim, module_H, module_W, num_answers,
                                       classifier_fc_layers,
                                       classifier_proj_dim,
                                       classifier_downsample,
                                       with_batchnorm=classifier_batchnorm,
                                       dropout=classifier_dropout)
    if verbose:
      print('Here is my classifier:')
      print(self.classifier)
    self.stem_times = []
    self.module_times = []
    self.classifier_times = []
    self.timing = False

    self.function_modules = {}
    self.function_modules_num_inputs = {}
    self.vocab = vocab
    for fn_str in vocab['program_token_to_idx']:
      num_inputs = iep.programs.get_num_inputs(fn_str)
      self.function_modules_num_inputs[fn_str] = num_inputs
      if fn_str == 'scene' or num_inputs == 1:
        mod = ResidualBlock(module_dim,
                with_residual=module_residual,
                with_batchnorm=module_batchnorm)
      elif num_inputs == 2:
        mod = ConcatBlock(module_dim,
                with_residual=module_residual,
                with_batchnorm=module_batchnorm)
      self.add_module(fn_str, mod)
      self.function_modules[fn_str] = mod

    self.save_module_outputs = False