class_docstr: A class implements tf.keras.Model.
  
  Reference: https://arxiv.org/abs/1807.11626
class_docstr_tok: ["A","class","implements","tf.keras.Model",".","Reference",":","https",":","\/\/arxiv.org\/abs\/1807.11626"]
docstr: Implementation of call().
  
  Args:
    inputs: input tensors.
    training: boolean, whether the model is constructed for training.
    features_only: build the base feature network only.
    pooled_features_only: build the base network for features extraction
      (after 1x1 conv layer and global pooling, but before dropout and fc
      head).
  
  Returns:
    output tensors.
docstr_tok: ["Implementation","of","call","(",")",".","Args",":","inputs",":","input","tensors",".","training",":","boolean",",","whether","the","model","is","constructed","for","training",".","features_only",":","build","the","base","feature","network","only",".","pooled_features_only",":","build","the","base","network","for","features","extraction","(","after","1x1","conv","layer","and","global","pooling",",","but","before","dropout","and","fc","head",")",".","Returns",":","output","tensors","."]
code: def call(
      self,
      inputs,
      training,
      features_only=None,
      pooled_features_only=False,
  ):
      """Implementation of call().
  
      Args:
        inputs: input tensors.
        training: boolean, whether the model is constructed for training.
        features_only: build the base feature network only.
        pooled_features_only: build the base network for features extraction
          (after 1x1 conv layer and global pooling, but before dropout and fc
          head).
  
      Returns:
        output tensors.
      """
      outputs = None
      self.endpoints = {}
      reduction_idx = 0
  
      # Calls Stem layers
      outputs = self._stem(inputs, training)
      logging.info("Built stem %s : %s", self._stem.name, outputs.shape)
      self.endpoints["stem"] = outputs
  
      # Calls blocks.
      for idx, block in enumerate(self._blocks):
          is_reduction = (
              False  # reduction flag for blocks after the stem layer
          )
          # If the first block has super-pixel (space-to-depth) layer, then stem is
          # the first reduction point.
          if block.block_args.super_pixel == 1 and idx == 0:
              reduction_idx += 1
              self.endpoints["reduction_%s" % reduction_idx] = outputs
  
          elif (idx == len(self._blocks) - 1) or self._blocks[
              idx + 1
          ].block_args.strides[0] > 1:
              is_reduction = True
              reduction_idx += 1
  
          survival_prob = self._global_params.survival_prob
          if survival_prob:
              drop_rate = 1.0 - survival_prob
              survival_prob = 1.0 - drop_rate * float(idx) / len(
                  self._blocks
              )
              logging.info(
                  "block_%s survival_prob: %s", idx, survival_prob
              )
          outputs = block(
              outputs, training=training, survival_prob=survival_prob
          )
          self.endpoints["block_%s" % idx] = outputs
          if is_reduction:
              self.endpoints["reduction_%s" % reduction_idx] = outputs
          if block.endpoints:
              for k, v in six.iteritems(block.endpoints):
                  self.endpoints["block_%s/%s" % (idx, k)] = v
                  if is_reduction:
                      self.endpoints[
                          "reduction_%s/%s" % (reduction_idx, k)
                      ] = v
      self.endpoints["features"] = outputs
  
      if not features_only:
          # Calls final layers and returns logits.
          outputs = self._head(outputs, training, pooled_features_only)
          self.endpoints.update(self._head.endpoints)
  
      return [outputs] + list(
          filter(
              lambda endpoint: endpoint is not None,
              [
                  self.endpoints.get("reduction_1"),
                  self.endpoints.get("reduction_2"),
                  self.endpoints.get("reduction_3"),
                  self.endpoints.get("reduction_4"),
                  self.endpoints.get("reduction_5"),
              ],
          )
      )
  
imports: import collections
  import itertools
  import math
  from absl import logging
  import numpy
  import six
  from six.moves import xrange
  import tensorflow
  import utils
label_desc: Use image node_id 4 for calling the Model obj's underlying member method code with example usage: obj.call(inputs, training, features_only, pooled_features_only) and returns: unknown