def locality_aware_nms(bboxes, scores, score_threshold, nms_top_k, keep_top_k, nms_threshold=0.3, normalized=True, nms_eta=1.0, background_label=(- 1), name=None):
    "\n    **Local Aware NMS**\n    \n    `Local Aware NMS <https://arxiv.org/abs/1704.03155>`_ is to do locality-aware non maximum\n    suppression (LANMS) on boxes and scores.\n\n    Firstly, this operator merge box and score according their IOU\n    (intersection over union). In the NMS step, this operator greedily selects a\n    subset of detection bounding boxes that have high scores larger than score_threshold,\n    if providing this threshold, then selects the largest nms_top_k confidences scores\n    if nms_top_k is larger than -1. Then this operator pruns away boxes that have high\n    IOU overlap with already selected boxes by adaptive threshold NMS based on parameters\n    of nms_threshold and nms_eta.\n\n    Aftern NMS step, at most keep_top_k number of total bboxes are to be kept\n    per image if keep_top_k is larger than -1.\n\n    Args:\n        bboxes (Variable): A 3-D Tensor with shape [N, M, 4 or 8 16 24 32]\n                           represents the predicted locations of M bounding\n                           bboxes, N is the batch size. Each bounding box\n                           has four coordinate values and the layout is\n                           [xmin, ymin, xmax, ymax], when box size equals to 4.\n                           The data type is float32 or float64.\n        scores (Variable): A 3-D Tensor with shape [N, C, M] represents the\n                           predicted confidence predictions. N is the batch\n                           size, C is the class number, M is number of bounding\n                           boxes. Now only support 1 class. For each category\n                           there are total M scores which corresponding M bounding\n                           boxes. Please note, M is equal to the 2nd dimension of\n                           BBoxes. The data type is float32 or float64.\n        background_label (int): The index of background label, the background\n                                label will be ignored. If set to -1, then all\n                                categories will be considered. Default: -1\n        score_threshold (float): Threshold to filter out bounding boxes with\n                                 low confidence score. If not provided,\n                                 consider all boxes.\n        nms_top_k (int): Maximum number of detections to be kept according to\n                         the confidences after the filtering detections based\n                         on score_threshold.\n        keep_top_k (int): Number of total bboxes to be kept per image after NMS\n                          step. -1 means keeping all bboxes after NMS step.\n        nms_threshold (float): The threshold to be used in NMS. Default: 0.3\n        nms_eta (float): The threshold to be used in NMS. Default: 1.0\n        normalized (bool): Whether detections are normalized. Default: True\n        name(str): Name of the locality aware nms op, please refer to :ref:`api_guide_Name` .\n                          Default: None.\n\n    Returns:\n        Variable: A 2-D LoDTensor with shape [No, 6] represents the detections.\n             Each row has 6 values: [label, confidence, xmin, ymin, xmax, ymax]\n             or A 2-D LoDTensor with shape [No, 10] represents the detections.\n             Each row has 10 values:\n             [label, confidence, x1, y1, x2, y2, x3, y3, x4, y4]. No is the\n             total number of detections. If there is no detected boxes for all\n             images, lod will be set to {1} and Out only contains one value\n             which is -1.\n             (After version 1.3, when no boxes detected, the lod is changed\n             from {0} to {1}). The data type is float32 or float64.\n\n\n    Examples:\n        .. code-block:: python\n\n\n            import paddle.fluid as fluid\n            boxes = fluid.data(name='bboxes', shape=[None, 81, 8],\n                                      dtype='float32')\n            scores = fluid.data(name='scores', shape=[None, 1, 81],\n                                      dtype='float32')\n            out = fluid.layers.locality_aware_nms(bboxes=boxes,\n                                              scores=scores,\n                                              score_threshold=0.5,\n                                              nms_top_k=400,\n                                              nms_threshold=0.3,\n                                              keep_top_k=200,\n                                              normalized=False)\n    "
    check_variable_and_dtype(bboxes, 'bboxes', ['float32', 'float64'], 'locality_aware_nms')
    check_variable_and_dtype(scores, 'scores', ['float32', 'float64'], 'locality_aware_nms')
    check_type(background_label, 'background_label', int, 'locality_aware_nms')
    check_type(score_threshold, 'score_threshold', float, 'locality_aware_nms')
    check_type(nms_top_k, 'nms_top_k', int, 'locality_aware_nms')
    check_type(nms_eta, 'nms_eta', float, 'locality_aware_nms')
    check_type(nms_threshold, 'nms_threshold', float, 'locality_aware_nms')
    check_type(keep_top_k, 'keep_top_k', int, 'locality_aware_nms')
    check_type(normalized, 'normalized', bool, 'locality_aware_nms')
    shape = scores.shape
    assert (len(shape) == 3), 'dim size of scores must be 3'
    assert (shape[1] == 1), 'locality_aware_nms only support one class, Tensor score shape must be [N, 1, M]'
    helper = LayerHelper('locality_aware_nms', **locals())
    output = helper.create_variable_for_type_inference(dtype=bboxes.dtype)
    out = {'Out': output}
    helper.append_op(type='locality_aware_nms', inputs={'BBoxes': bboxes, 'Scores': scores}, attrs={'background_label': background_label, 'score_threshold': score_threshold, 'nms_top_k': nms_top_k, 'nms_threshold': nms_threshold, 'nms_eta': nms_eta, 'keep_top_k': keep_top_k, 'nms_eta': nms_eta, 'normalized': normalized}, outputs={'Out': output})
    output.stop_gradient = True
    return output
**Local Aware NMS**

`Local Aware NMS <https://arxiv.org/abs/1704.03155>`_ is to do locality-aware non maximum
suppression (LANMS) on boxes and scores.

Firstly, this operator merge box and score according their IOU
(intersection over union). In the NMS step, this operator greedily selects a
subset of detection bounding boxes that have high scores larger than score_threshold,
if providing this threshold, then selects the largest nms_top_k confidences scores
if nms_top_k is larger than -1. Then this operator pruns away boxes that have high
IOU overlap with already selected boxes by adaptive threshold NMS based on parameters
of nms_threshold and nms_eta.

Aftern NMS step, at most keep_top_k number of total bboxes are to be kept
per image if keep_top_k is larger than -1.

Args:
    bboxes (Variable): A 3-D Tensor with shape [N, M, 4 or 8 16 24 32]
                       represents the predicted locations of M bounding
                       bboxes, N is the batch size. Each bounding box
                       has four coordinate values and the layout is
                       [xmin, ymin, xmax, ymax], when box size equals to 4.
                       The data type is float32 or float64.
    scores (Variable): A 3-D Tensor with shape [N, C, M] represents the
                       predicted confidence predictions. N is the batch
                       size, C is the class number, M is number of bounding
                       boxes. Now only support 1 class. For each category
                       there are total M scores which corresponding M bounding
                       boxes. Please note, M is equal to the 2nd dimension of
                       BBoxes. The data type is float32 or float64.
    background_label (int): The index of background label, the background
                            label will be ignored. If set to -1, then all
                            categories will be considered. Default: -1
    score_threshold (float): Threshold to filter out bounding boxes with
                             low confidence score. If not provided,
                             consider all boxes.
    nms_top_k (int): Maximum number of detections to be kept according to
                     the confidences after the filtering detections based
                     on score_threshold.
    keep_top_k (int): Number of total bboxes to be kept per image after NMS
                      step. -1 means keeping all bboxes after NMS step.
    nms_threshold (float): The threshold to be used in NMS. Default: 0.3
    nms_eta (float): The threshold to be used in NMS. Default: 1.0
    normalized (bool): Whether detections are normalized. Default: True
    name(str): Name of the locality aware nms op, please refer to :ref:`api_guide_Name` .
                      Default: None.

Returns:
    Variable: A 2-D LoDTensor with shape [No, 6] represents the detections.
         Each row has 6 values: [label, confidence, xmin, ymin, xmax, ymax]
         or A 2-D LoDTensor with shape [No, 10] represents the detections.
         Each row has 10 values:
         [label, confidence, x1, y1, x2, y2, x3, y3, x4, y4]. No is the
         total number of detections. If there is no detected boxes for all
         images, lod will be set to {1} and Out only contains one value
         which is -1.
         (After version 1.3, when no boxes detected, the lod is changed
         from {0} to {1}). The data type is float32 or float64.


Examples:
    .. code-block:: python


        import paddle.fluid as fluid
        boxes = fluid.data(name='bboxes', shape=[None, 81, 8],
                                  dtype='float32')
        scores = fluid.data(name='scores', shape=[None, 1, 81],
                                  dtype='float32')
        out = fluid.layers.locality_aware_nms(bboxes=boxes,
                                          scores=scores,
                                          score_threshold=0.5,
                                          nms_top_k=400,
                                          nms_threshold=0.3,
                                          keep_top_k=200,
                                          normalized=False)
def locality_aware_nms(bboxes, scores, score_threshold, nms_top_k, keep_top_k, nms_threshold=0.3, normalized=True, nms_eta=1.0, background_label=(- 1), name=None):
    "\n    **Local Aware NMS**\n    \n    `Local Aware NMS <https://arxiv.org/abs/1704.03155>`_ is to do locality-aware non maximum\n    suppression (LANMS) on boxes and scores.\n\n    Firstly, this operator merge box and score according their IOU\n    (intersection over union). In the NMS step, this operator greedily selects a\n    subset of detection bounding boxes that have high scores larger than score_threshold,\n    if providing this threshold, then selects the largest nms_top_k confidences scores\n    if nms_top_k is larger than -1. Then this operator pruns away boxes that have high\n    IOU overlap with already selected boxes by adaptive threshold NMS based on parameters\n    of nms_threshold and nms_eta.\n\n    Aftern NMS step, at most keep_top_k number of total bboxes are to be kept\n    per image if keep_top_k is larger than -1.\n\n    Args:\n        bboxes (Variable): A 3-D Tensor with shape [N, M, 4 or 8 16 24 32]\n                           represents the predicted locations of M bounding\n                           bboxes, N is the batch size. Each bounding box\n                           has four coordinate values and the layout is\n                           [xmin, ymin, xmax, ymax], when box size equals to 4.\n                           The data type is float32 or float64.\n        scores (Variable): A 3-D Tensor with shape [N, C, M] represents the\n                           predicted confidence predictions. N is the batch\n                           size, C is the class number, M is number of bounding\n                           boxes. Now only support 1 class. For each category\n                           there are total M scores which corresponding M bounding\n                           boxes. Please note, M is equal to the 2nd dimension of\n                           BBoxes. The data type is float32 or float64.\n        background_label (int): The index of background label, the background\n                                label will be ignored. If set to -1, then all\n                                categories will be considered. Default: -1\n        score_threshold (float): Threshold to filter out bounding boxes with\n                                 low confidence score. If not provided,\n                                 consider all boxes.\n        nms_top_k (int): Maximum number of detections to be kept according to\n                         the confidences after the filtering detections based\n                         on score_threshold.\n        keep_top_k (int): Number of total bboxes to be kept per image after NMS\n                          step. -1 means keeping all bboxes after NMS step.\n        nms_threshold (float): The threshold to be used in NMS. Default: 0.3\n        nms_eta (float): The threshold to be used in NMS. Default: 1.0\n        normalized (bool): Whether detections are normalized. Default: True\n        name(str): Name of the locality aware nms op, please refer to :ref:`api_guide_Name` .\n                          Default: None.\n\n    Returns:\n        Variable: A 2-D LoDTensor with shape [No, 6] represents the detections.\n             Each row has 6 values: [label, confidence, xmin, ymin, xmax, ymax]\n             or A 2-D LoDTensor with shape [No, 10] represents the detections.\n             Each row has 10 values:\n             [label, confidence, x1, y1, x2, y2, x3, y3, x4, y4]. No is the\n             total number of detections. If there is no detected boxes for all\n             images, lod will be set to {1} and Out only contains one value\n             which is -1.\n             (After version 1.3, when no boxes detected, the lod is changed\n             from {0} to {1}). The data type is float32 or float64.\n\n\n    Examples:\n        .. code-block:: python\n\n\n            import paddle.fluid as fluid\n            boxes = fluid.data(name='bboxes', shape=[None, 81, 8],\n                                      dtype='float32')\n            scores = fluid.data(name='scores', shape=[None, 1, 81],\n                                      dtype='float32')\n            out = fluid.layers.locality_aware_nms(bboxes=boxes,\n                                              scores=scores,\n                                              score_threshold=0.5,\n                                              nms_top_k=400,\n                                              nms_threshold=0.3,\n                                              keep_top_k=200,\n                                              normalized=False)\n    "
    check_variable_and_dtype(bboxes, 'bboxes', ['float32', 'float64'], 'locality_aware_nms')
    check_variable_and_dtype(scores, 'scores', ['float32', 'float64'], 'locality_aware_nms')
    check_type(background_label, 'background_label', int, 'locality_aware_nms')
    check_type(score_threshold, 'score_threshold', float, 'locality_aware_nms')
    check_type(nms_top_k, 'nms_top_k', int, 'locality_aware_nms')
    check_type(nms_eta, 'nms_eta', float, 'locality_aware_nms')
    check_type(nms_threshold, 'nms_threshold', float, 'locality_aware_nms')
    check_type(keep_top_k, 'keep_top_k', int, 'locality_aware_nms')
    check_type(normalized, 'normalized', bool, 'locality_aware_nms')
    shape = scores.shape
    assert (len(shape) == 3), 'dim size of scores must be 3'
    assert (shape[1] == 1), 'locality_aware_nms only support one class, Tensor score shape must be [N, 1, M]'
    helper = LayerHelper('locality_aware_nms', **locals())
    output = helper.create_variable_for_type_inference(dtype=bboxes.dtype)
    out = {'Out': output}
    helper.append_op(type='locality_aware_nms', inputs={'BBoxes': bboxes, 'Scores': scores}, attrs={'background_label': background_label, 'score_threshold': score_threshold, 'nms_top_k': nms_top_k, 'nms_threshold': nms_threshold, 'nms_eta': nms_eta, 'keep_top_k': keep_top_k, 'nms_eta': nms_eta, 'normalized': normalized}, outputs={'Out': output})
    output.stop_gradient = True
    return output