# generate_proposals — GPU cuda error 700
# 根因: im_shape 第二维为 0

# case 1
vision.ops.generate_proposals(scores=Tensor.float32((1, 15, 40, 60)), bbox_deltas=Tensor.float32((1, 60, 40, 60)), im_shape=Tensor.float32((1, 0)), anchors=Tensor.float32((36000, 4)), variances=Tensor.float32((36000, 4)), pre_nms_top_n=12000, post_nms_top_n=2000, nms_thresh=0.7, min_size=0.0, eta=1.0, return_rois_num=True)

# case 2
vision.ops.generate_proposals(scores=Tensor.float32((1, 15, 42, 63)), bbox_deltas=Tensor.float32((1, 60, 42, 63)), im_shape=Tensor.float32((1, 0)), anchors=Tensor.float32((39690, 4)), variances=Tensor.float32((39690, 4)), pre_nms_top_n=12000, post_nms_top_n=2000, nms_thresh=0.7, min_size=0.0, eta=1.0, return_rois_num=True)

# case 3
vision.ops.generate_proposals(scores=Tensor.float32((1, 3, 10, 14)), bbox_deltas=Tensor.float32((1, 12, 10, 14)), im_shape=Tensor.float32((1, 0)), anchors=Tensor.float32((420, 4)), variances=Tensor.float32((420, 4)), pre_nms_top_n=2000, post_nms_top_n=2000, nms_thresh=0.7, min_size=0.0, eta=1.0, return_rois_num=True)

# case 4
vision.ops.generate_proposals(scores=Tensor.float32((1, 3, 10, 15)), bbox_deltas=Tensor.float32((1, 12, 10, 15)), im_shape=Tensor.float32((1, 0)), anchors=Tensor.float32((450, 4)), variances=Tensor.float32((450, 4)), pre_nms_top_n=2000, post_nms_top_n=2000, nms_thresh=0.7, min_size=0.0, eta=1.0, return_rois_num=True)

# case 5
vision.ops.generate_proposals(scores=Tensor.float32((1, 4, 16, 16)), bbox_deltas=Tensor.float32((1, 16, 16, 16)), im_shape=Tensor.float32((1, 0)), anchors=Tensor.float32((16, 16, 4, 4)), variances=Tensor.float32((16, 16, 4, 4)), pre_nms_top_n=12000, post_nms_top_n=5000, nms_thresh=0.7, min_size=3.0, eta=1.0, pixel_offset=True, return_rois_num=True)

# case 6
vision.ops.generate_proposals(scores=Tensor.float32((1, 9, 10, 8)), bbox_deltas=Tensor.float32((1, 36, 10, 8)), im_shape=Tensor.float32((1, 0)), anchors=Tensor.float32((720, 4)), variances=Tensor.float32((720, 4)), pre_nms_top_n=4000, post_nms_top_n=4000, nms_thresh=0.7, min_size=0.0, eta=1.0, return_rois_num=True)

# case 7
vision.ops.generate_proposals(scores=Tensor.float32((1, 9, 12, 9)), bbox_deltas=Tensor.float32((1, 36, 12, 9)), im_shape=Tensor.float32((1, 0)), anchors=Tensor.float32((972, 4)), variances=Tensor.float32((972, 4)), pre_nms_top_n=4000, post_nms_top_n=4000, nms_thresh=0.7, min_size=0.0, eta=1.0, return_rois_num=True)

# case 8
vision.ops.generate_proposals(scores=Tensor.float32((2, 3, 4, 4)), bbox_deltas=Tensor.float32((2, 12, 4, 4)), im_shape=Tensor.float32((2, 0)), anchors=Tensor.float32((4, 4, 3, 4)), variances=Tensor.float32((4, 4, 3, 4)), pre_nms_top_n=10, post_nms_top_n=5, return_rois_num=True)
