class_docstr: This class computes an assignment between the targets and the predictions of the network
  For efficiency reasons, the targets don't include the no_object. Because of this, in general,
  there are more predictions than targets. In this case, we do a 1-to-1 matching of the best predictions,
  while the others are un-matched (and thus treated as non-objects).
class_docstr_tok: ["This","class","computes","an","assignment","between","the","targets","and","the","predictions","of","the","network","For","efficiency","reasons",",","the","targets","do","n't","include","the","no_object",".","Because","of","this",",","in","general",",","there","are","more","predictions","than","targets",".","In","this","case",",","we","do","a","1-to-1","matching","of","the","best","predictions",",","while","the","others","are","un-matched","(","and","thus","treated","as","non-objects",")","."]
docstr: Creates the matcher
  Params:
      cost_class: This is the relative weight of the classification error in the matching cost
      cost_bbox: This is the relative weight of the L1 error of the bounding box coordinates in the matching cost
      cost_giou: This is the relative weight of the giou loss of the bounding box in the matching cost
docstr_tok: ["Creates","the","matcher","Params",":","cost_class",":","This","is","the","relative","weight","of","the","classification","error","in","the","matching","cost","cost_bbox",":","This","is","the","relative","weight","of","the","L1","error","of","the","bounding","box","coordinates","in","the","matching","cost","cost_giou",":","This","is","the","relative","weight","of","the","giou","loss","of","the","bounding","box","in","the","matching","cost"]
code: def __init__(
      self,
      cost_class: float = 1,
      cost_bbox: float = 1,
      cost_giou: float = 1,
  ):
      """Creates the matcher
      Params:
          cost_class: This is the relative weight of the classification error in the matching cost
          cost_bbox: This is the relative weight of the L1 error of the bounding box coordinates in the matching cost
          cost_giou: This is the relative weight of the giou loss of the bounding box in the matching cost
      """
      super().__init__()
      self.cost_class = cost_class
      self.cost_bbox = cost_bbox
      self.cost_giou = cost_giou
      assert (
          cost_class != 0 or cost_bbox != 0 or cost_giou != 0
      ), "all costs cant be 0"
  
imports: from collections import OrderedDict
  import torch
  from torch import nn
  from torch.jit.annotations import Dict
  from torch.nn import functional
label_desc: Use image node_id 1 to create a new HungarianMatcher object from inherited base classes: nn with example: obj = HungarianMatcher(cost_class, cost_bbox, cost_giou)