'Set up mock SSD model.
Here we set up a simple mock SSD model that will always predict 4
detections that happen to always be exactly the anchors that are set up
in the above MockAnchorGenerator.  Because we let max_detections=5,
we will also always end up with an extra padded row in the detection
results.'

def setUp(self):

    is_training = False
    self._num_classes = 1
    mock_anchor_generator = MockAnchorGenerator2x2()
    mock_box_predictor = test_utils.MockBoxPredictor(is_training, self._num_classes)
    mock_box_coder = test_utils.MockBoxCoder()
    fake_feature_extractor = FakeSSDFeatureExtractor()
    mock_matcher = test_utils.MockMatcher()
    region_similarity_calculator = sim_calc.IouSimilarity()
    def image_resizer_fn(image):
        return tf.identity(image)
    classification_loss = losses.WeightedSigmoidClassificationLoss(anchorwise_output=True)
    localization_loss = losses.WeightedSmoothL1LocalizationLoss(anchorwise_output=True)
    non_max_suppression_fn = functools.partial(post_processing.batch_multiclass_non_max_suppression, score_thresh=(-20.0), iou_thresh=1.0, max_size_per_class=5, max_total_size=5)
    classification_loss_weight = 1.0
    localization_loss_weight = 1.0
    normalize_loss_by_num_matches = False
    hard_example_miner = losses.HardExampleMiner(num_hard_examples=None, iou_threshold=1.0)
    self._num_anchors = 4
    self._code_size = 4
    self._model = ssd_meta_arch.SSDMetaArch(is_training, mock_anchor_generator, mock_box_predictor, mock_box_coder, fake_feature_extractor, mock_matcher, region_similarity_calculator, image_resizer_fn, non_max_suppression_fn, tf.identity, classification_loss, localization_loss, classification_loss_weight, localization_loss_weight, normalize_loss_by_num_matches, hard_example_miner)
