def get_bbox_corners(center_bbox_repr):
    """
    Function converts bounding box representation from 
        (center_x, center_y, height, width) to (x1, y1, x2, y2)
    
    Args:
        center_box_repr(tensor) - shape (..., 4)
    returns:
        tensor - shape (..., 4)
    """
    if center_bbox_repr.shape[-1] != 4:
        raise ValueError("The center representation of bounding box"
            f"must have 4 values. Received {center_bbox_repr.shape[-1]}")

    center_x = center_bbox_repr[...,0]
    center_y = center_bbox_repr[...,1]
    half_height = center_bbox_repr[...,2] / 2
    half_width = center_bbox_repr[...,3] / 2

    #get new placeholder tensor on same device of same dtype
    box_preds = center_bbox_repr.new_empty(center_bbox_repr.shape) 
    box_preds[...,0] =  center_x - half_height
    box_preds[...,1] = center_y - half_width
    box_preds[...,2] = center_x + half_height
    box_preds[...,3] = center_y + half_width 

    return box_preds