class_docstr: A simple object to capture a task head (tower).
code: def call(self, inputs, training):
      if self._construct_architecture.size:
          return super(Task, self).call(inputs, training)
  
      # No architecture
      logits = self._add_projection_if_needed(
          inputs, self._logits_dimension
      )
  
      # Load the kernel of the additional layer if it is already trained model
      if (
          not tf.train.latest_checkpoint(self._model_directory)
          and hasattr(self, "_prev_model_dir")
          and hasattr(self, "_prev_tower_name")
      ):
          architecture_utils.init_variables(
              tf.train.latest_checkpoint(self._prev_model_dir),
              "Phoenix/{}".format(self._prev_tower_name),
              "Phoenix/{}".format(self._tower_name),
          )
      self._logits_spec = architecture_utils.LogitsSpec(logits=logits)
      self._architecture = [
          block_builder.BlockType(block).name
          for block in self._construct_architecture
      ]
      self._layer_tensors = None  # We don't need the tensors here
      return logits
  
imports: import collections
  import functools
  import inspect
  from absl import logging
  from model_search import block_builder
  from model_search import ensembler
  from model_search.architecture import architecture_utils
  from model_search.architecture import tower
  from model_search.ensembler import EnsembleLogits
  from model_search.generators import base_tower_generator
  from model_search.generators import trial_utils
  from model_search.meta import distillation
  import numpy
  import tensorflow.compat.v2
label_desc: Use image node_id 3 for calling the Task obj's underlying member method code with example usage: obj.call(inputs, training) and returns: logits, super