class_docstr: Generate SSD target tensors for both probabilities and bounding boxes.
  
  There are two types of targets, anchor_label and bounding box targets.
  
  Anchor labels are just the label which best fits each anchor, and therefore
  are the target for that anchor, they are used both for background and
  foreground labels.
  
  Bounding box targets are just the encoded coordinates that anchors labeled
  as foreground should target.
docstr: Args:
      num_classes: Number of possible classes.
      config: Configuration object for RCNNTarget.
docstr_tok: ["Args",":","num_classes",":","Number","of","possible","classes",".","config",":","Configuration","object","for","RCNNTarget","."]
code: def __init__(
      self, num_classes, config, variances, seed=None, name="ssd_target"
  ):
      """
      Args:
          num_classes: Number of possible classes.
          config: Configuration object for RCNNTarget.
      """
      super(SSDTarget, self).__init__(name=name)
      self._num_classes = num_classes
      self._hard_negative_ratio = config.hard_negative_ratio
      self._foreground_threshold = config.foreground_threshold
      self._background_threshold_high = config.background_threshold_high
      self._variances = variances
      self._seed = seed
  
file_path: luminoth/luminoth/models/ssd/target.py
imports: import tensorflow
  import sonnet
  from luminoth.utils.bbox_transform_tf import encode
  from luminoth.utils.bbox_overlap import bbox_overlap_tf
label_desc: Use image node_id 1 to create a new SSDTarget object from inherited base classes: snt with example: obj = SSDTarget(num_classes, config, variances, seed, name)