code: def mine_examples(self, matches):
      num_matches = self.count_matches(matches)
  
      # go through each image in the batch
      all_neg_inds = {}
      for batch in range(self.be.bsz):
          # loss  = conf_loss + loc_loss but loc_loss for max_negative is 0
  
          # loop over the matches
          # we have only implemented share_location = True so the matches
          # are not done by location, BBs are shared across all classes
          match_inds = matches[batch]["inds"]
          match_ovlp = matches[batch]["overlap"]
          sel_inds = set()
          num_sel = 0
          loss_inds = []
          loss = matches[batch]["conf_loss"]
          num_pos = np.count_nonzero(match_inds > -1)
  
          linds = np.where(
              (match_inds == -1) & (match_ovlp < self.neg_overlap)
          )[0]
          loss_inds = np.vstack([loss[linds], linds]).T
          num_sel = min(
              [int(num_pos * self.neg_pos_ratio), linds.shape[0]]
          )
  
          # sort the losses
          sort_inds = np.argsort(loss_inds[:, 0])
  
          sel_inds = np.unique(
              loss_inds[sort_inds[-num_sel:], 1].astype(np.int)
          )
          cnt = num_sel + 1
          # the loop below should seldom run i think
          while len(sel_inds) < num_sel:
              if cnt > sort_inds.shape[0]:
                  break
              sel_inds = np.union1d(
                  sel_inds, [np.int(loss_inds[sort_inds[-cnt], 1])]
              )
              cnt += 1
  
          assert np.all(match_inds[sel_inds] == -1)
          all_neg_inds[batch] = sel_inds
      return (all_neg_inds, num_matches)
  
imports: from neon import NervanaObject
  import numpy
  from util import util
  from neon.transforms import Softmax
label_desc: Use image node_id 9 for calling the MBoxLoss obj's underlying member method code with example usage: obj.mine_examples(matches) and returns: all_neg_inds,  num_matches