docs: def _build(self, input_modules, middle_modules, head_modules):
          """
          TBD
          """
          self.input_layer = self._build_input_layer(input_modules)
          self.middle_layers = self._build_middle_layers(middle_modules)
          self.heads = self._build_task_heads(head_modules)
  
          # Construct loss module
          reduction = self.config["train_config"]["loss_fn_reduction"]
          self.criteria = SoftCrossEntropyLoss(reduction=reduction)