C4 (CNN) W3 LAB Programming Assignment: Car detection with YOLO v2.1

Good day,

After reading most of the post and reference to tensorflow material, I am requesting assistance with the code related to GRADED FUNCTION: yolo_non_max_suppression

I have the following error after running the unit test:

iou:    	0.22780233025311375
---------------------------------------------------------------------------
InvalidArgumentError                      Traceback (most recent call last)
<ipython-input-132-11f8efabc036> in <module>
      8 print(f"iou:    \t{iou(boxes[0], boxes[1])}")
      9 
---> 10 scores2, boxes2, classes2 = yolo_non_max_suppression(scores, boxes, classes, iou_threshold = 0.9)
     11 
     12 assert np.allclose(scores2.numpy(), [0.855, 0.828]), f"Wrong value on scores {scores2.numpy()}"

<ipython-input-131-7d5107f0b27e> in yolo_non_max_suppression(scores, boxes, classes, max_boxes, iou_threshold)
     56             # Append the resulting boxes into the partial result
     57             # Use tf.gather() with 'selected_indices' and `nms_indices_label`
---> 58             nms_indices.append(tf.gather(selected_indices, nms_indices_label))
     59 
     60     # Flatten the list of indices and concatenate

/opt/conda/lib/python3.7/site-packages/tensorflow/python/util/dispatch.py in wrapper(*args, **kwargs)
    199     """Call target, and fall back on dispatchers if there is a TypeError."""
    200     try:
--> 201       return target(*args, **kwargs)
    202     except (TypeError, ValueError):
    203       # Note: convert_to_eager_tensor currently raises a ValueError, not a

/opt/conda/lib/python3.7/site-packages/tensorflow/python/ops/array_ops.py in gather_v2(params, indices, validate_indices, axis, batch_dims, name)
   4693       name=name,
   4694       axis=axis,
-> 4695       batch_dims=batch_dims)
   4696 
   4697 

/opt/conda/lib/python3.7/site-packages/tensorflow/python/util/dispatch.py in wrapper(*args, **kwargs)
    199     """Call target, and fall back on dispatchers if there is a TypeError."""
    200     try:
--> 201       return target(*args, **kwargs)
    202     except (TypeError, ValueError):
    203       # Note: convert_to_eager_tensor currently raises a ValueError, not a

/opt/conda/lib/python3.7/site-packages/tensorflow/python/ops/array_ops.py in gather(***failed resolving arguments***)
   4676     return params.sparse_read(indices, name=name)
   4677   except AttributeError:
-> 4678     return gen_array_ops.gather_v2(params, indices, axis, name=name)
   4679 
   4680 

/opt/conda/lib/python3.7/site-packages/tensorflow/python/ops/gen_array_ops.py in gather_v2(params, indices, axis, batch_dims, name)
   3843       return _result
   3844     except _core._NotOkStatusException as e:
-> 3845       _ops.raise_from_not_ok_status(e, name)
   3846     except _core._FallbackException:
   3847       pass

/opt/conda/lib/python3.7/site-packages/tensorflow/python/framework/ops.py in raise_from_not_ok_status(e, name)
   6841   message = e.message + (" name: " + name if name is not None else "")
   6842   # pylint: disable=protected-access
-> 6843   six.raise_from(core._status_to_exception(e.code, message), None)
   6844   # pylint: enable=protected-access
   6845 

/opt/conda/lib/python3.7/site-packages/six.py in raise_from(value, from_value)

InvalidArgumentError: indices[1] = 1 is not in [0, 1) [Op:GatherV2]

I will appreciate getting some assistance to help me go in the right direction.

(Coursera | Online Courses & Credentials From Top Educators. Join for Free | Coursera)

Hello @jagomlv,

Your error message looks the same as this one and I have a response followed that explained how to lead us from the error to clues of spotting the problem.

It will take some time to read and understand, but please give it a try :wink:

Cheers,
Raymond

PS: I wrapped the error message in your post with a pair of ``` to make it display like how a notebook will.

2 Likes