class_docstr: EfficientDet keras network with train and test step.
code: def test_step(self, inputs):
      features, _, gt_boxes, gt_classes, *_ = inputs
      # tf.print(gt_boxes, gt_classes)
      # gt_boxes = tf.stack(
      #    [
      #        gt_boxes[..., 0] * self.config.image_size[0],
      #        gt_boxes[..., 1] * self.config.image_size[1],
      #        gt_boxes[..., 2] * self.config.image_size[0],
      #        gt_boxes[..., 3] * self.config.image_size[1],
      #    ],
      #    axis=-1,
      # )
  
      cls_out_list, box_out_list = self.call(features, training=False)
      ltrb, scores, classes, _ = postprocess.postprocess_per_class(
          self.config, cls_out_list, box_out_list
      )
      classes = tf.cast(classes, dtype=tf.int32)
  
      ap = tf.py_function(
          func=self._calc_mAP,
          inp=[ltrb, scores, classes, gt_boxes, gt_classes],
          Tout=tf.float64,
      )
      self.mAP_tracker.update_state(ap)
  
      return {m.name: m.result() for m in [self.mAP_tracker]}
  
imports: import functools
  from absl import logging
  import tensorflow
  import hparams_config
  import utils
  from .backbone import efficientnet_builder
  from .utils import postprocess
  from .utils import layers
  from .utils import losses
  import re
label_desc: Use image node_id 9 for calling the EfficientDetNet obj's underlying member method code with example usage: obj.test_step(inputs) and returns: unknown