You should figure out where your negative dimensions come from. I had a similar error; it turned out that the box type was not specified in the config, which is why the size was set to -1. Change the config type passed here (https://github.com/PJLab-ADG/DetZero/blob/12c1358de8bcd0a0f5d51312a0a976e388a4d2ba/detection/detzero_det/datasets/waymo/waymo_eval_detection.py#L87) to the one you need
You should figure out where your negative dimensions come from. I had a similar error; it turned out that the box type was not specified in the config, which is why the size was set to -1. Change the config type passed here (
https://github.com/PJLab-ADG/DetZero/blob/12c1358de8bcd0a0f5d51312a0a976e388a4d2ba/detection/detzero_det/datasets/waymo/waymo_eval_detection.py#L87
) to the one you need
Hello, may I ask where the specific configuration needs to be changed. thank.
Traceback (most recent call last):
File "test.py", line 203, in
main()
File "test.py", line 199, in main
eval_single_ckpt(model, test_loader, args, eval_output_dir, logger, epoch_id, dist_test=dist_test)
File "test.py", line 64, in eval_single_ckpt
eval_utils.eval_one_epoch(
File "/home/ubt-346/devdata1/llz/DetZero/detection/tools/eval_utils.py", line 141, in eval_one_epoch
result_str, result_dict = dataset.evaluation(
File "/home/ubt-346/devdata1/llz/DetZero/detection/detzero_det/datasets/waymo/waymo_dataset.py", line 126, in evaluation
ap_result_str, ap_dict = waymo_eval(eval_det_annos, eval_gt_annos)
File "/home/ubt-346/devdata1/llz/DetZero/detection/detzero_det/datasets/waymo/waymo_dataset.py", line 112, in waymo_eval
ap_dict = eval.waymo_evaluation(
File "/home/ubt-346/devdata1/llz/DetZero/detection/detzero_det/datasets/waymo/waymo_eval_detection.py", line 256, in waymo_evaluation
metrics = self.build_graph(graph, config_type)
File "/home/ubt-346/devdata1/llz/DetZero/detection/detzero_det/datasets/waymo/waymo_eval_detection.py", line 159, in build_graph
metrics = detection_metrics.get_detection_metric_ops(
File "/home/ubt-346/anaconda3/envs/detzero/lib/python3.8/site-packages/waymo_open_dataset/metrics/python/detection_metrics.py", line 154, in get_detection_metric_ops
variable_and_update_ops[name] = _update(name, update, init_shape, dtype)
File "/home/ubt-346/anaconda3/envs/detzero/lib/python3.8/site-packages/waymo_open_dataset/metrics/python/detection_metrics.py", line 40, in _update
v = tf.compat.v1.get_local_variable(
File "/home/ubt-346/anaconda3/envs/detzero/lib/python3.8/site-packages/tensorflow/python/ops/variable_scope.py", line 1727, in get_local_variable
return get_variable(
File "/home/ubt-346/anaconda3/envs/detzero/lib/python3.8/site-packages/tensorflow/python/ops/variable_scope.py", line 1579, in get_variable
return get_variable_scope().get_variable(
File "/home/ubt-346/anaconda3/envs/detzero/lib/python3.8/site-packages/tensorflow/python/ops/variable_scope.py", line 1322, in get_variable
return var_store.get_variable(
File "/home/ubt-346/anaconda3/envs/detzero/lib/python3.8/site-packages/tensorflow/python/ops/variable_scope.py", line 578, in get_variable
return _true_getter(
File "/home/ubt-346/anaconda3/envs/detzero/lib/python3.8/site-packages/tensorflow/python/ops/variable_scope.py", line 531, in _true_getter
return self._get_single_variable(
File "/home/ubt-346/anaconda3/envs/detzero/lib/python3.8/site-packages/tensorflow/python/ops/variable_scope.py", line 952, in _get_single_variable
v = variables.VariableV1(
File "/home/ubt-346/anaconda3/envs/detzero/lib/python3.8/site-packages/tensorflow/python/ops/variables.py", line 260, in call
return cls._variable_v1_call(*args, **kwargs)
File "/home/ubt-346/anaconda3/envs/detzero/lib/python3.8/site-packages/tensorflow/python/ops/variables.py", line 206, in _variable_v1_call
return previous_getter(
File "/home/ubt-346/anaconda3/envs/detzero/lib/python3.8/site-packages/tensorflow/python/ops/variables.py", line 199, in
previous_getter = lambda **kwargs: default_variable_creator(None, **kwargs)
File "/home/ubt-346/anaconda3/envs/detzero/lib/python3.8/site-packages/tensorflow/python/ops/variable_scope.py", line 2612, in default_variable_creator
return resource_variable_ops.ResourceVariable(
File "/home/ubt-346/anaconda3/envs/detzero/lib/python3.8/site-packages/tensorflow/python/ops/variables.py", line 264, in call
return super(VariableMetaclass, cls).call(*args, **kwargs)
File "/home/ubt-346/anaconda3/envs/detzero/lib/python3.8/site-packages/tensorflow/python/ops/resource_variable_ops.py", line 1584, in init
self._init_from_args(
File "/home/ubt-346/anaconda3/envs/detzero/lib/python3.8/site-packages/tensorflow/python/ops/resource_variable_ops.py", line 1722, in _init_from_args
initial_value = initial_value()
File "/home/ubt-346/anaconda3/envs/detzero/lib/python3.8/site-packages/waymo_open_dataset/metrics/python/detection_metrics.py", line 39, in
initializer = lambda: tf.constant([], shape=init_shape, dtype=dtype)
File "/home/ubt-346/anaconda3/envs/detzero/lib/python3.8/site-packages/tensorflow/python/framework/constant_op.py", line 264, in constant
return _constant_impl(value, dtype, shape, name, verify_shape=False,
File "/home/ubt-346/anaconda3/envs/detzero/lib/python3.8/site-packages/tensorflow/python/framework/constant_op.py", line 281, in _constant_impl
tensor_util.make_tensor_proto(
File "/home/ubt-346/anaconda3/envs/detzero/lib/python3.8/site-packages/tensorflow/python/framework/tensor_util.py", line 455, in make_tensor_proto
nparray = np.empty(shape, dtype=np_dt)
ValueError: negative dimensions are not allowed
Is this related to data sets? Instead of using the complete waymo dataset, I downloaded only part of v1.4.0, and then modified the contents of train.txt, val.txt, and text.txt. During the training, there was an error report of "AttributeError:'str 'object has no attribute' exists'". I solved it by modifying waymo_utils. At the test step, the error occurred again in the evaluation part.
When I use the pre training model:
Traceback (most recent call last):
File "test.py", line 203, in
main()
File "test.py", line 199, in main
eval_single_ckpt(model, test_loader, args, eval_output_dir, logger, epoch_id, dist_test=dist_test)
File "test.py", line 64, in eval_single_ckpt
eval_utils.eval_one_epoch(
File "/home/ubt-346/devdata1/llz/DetZero/detection/tools/eval_utils.py", line 141, in eval_one_epoch
result_str, result_dict = dataset.evaluation(
File "/home/ubt-346/devdata1/llz/DetZero/detection/detzero_det/datasets/waymo/waymo_dataset.py", line 126, in evaluation
ap_result_str, ap_dict = waymo_eval(eval_det_annos, eval_gt_annos)
File "/home/ubt-346/devdata1/llz/DetZero/detection/detzero_det/datasets/waymo/waymo_dataset.py", line 112, in waymo_eval
ap_dict = eval.waymo_evaluation(
File "/home/ubt-346/devdata1/llz/DetZero/detection/detzero_det/datasets/waymo/waymo_eval_detection.py", line 223, in waymo_evaluation
print(f"Prediction boxes3d min values: {pd_boxes3d.min(axis=0)}")
File "/home/ubt-346/anaconda3/envs/detzero/lib/python3.8/site-packages/numpy/core/_methods.py", line 43, in _amin
return umr_minimum(a, axis, None, out, keepdims, initial, where)
ValueError: zero-size array to reduction operation minimum which has no identity
Traceback (most recent call last):
File "train.py", line 215, in
main()
File "train.py", line 205, in main
repeat_eval_ckpt(
File "/root/DetZero/detection/tools/test.py", line 122, in repeat_eval_ckpt
tb_dict = eval_utils.eval_one_epoch(
File "/root/DetZero/detection/tools/eval_utils.py", line 140, in eval_one_epoch
result_str, result_dict = dataset.evaluation(
File "/root/DetZero/detection/detzero_det/datasets/waymo/waymo_dataset.py", line 126, in evaluation
ap_result_str, ap_dict = waymo_eval(eval_det_annos, eval_gt_annos)
File "/root/DetZero/detection/detzero_det/datasets/waymo/waymo_dataset.py", line 112, in waymo_eval
ap_dict = eval.waymo_evaluation(
File "/root/DetZero/detection/detzero_det/datasets/waymo/waymo_eval_detection.py", line 232, in waymo_evaluation
metrics = self.build_graph(graph, config_type)
File "/root/DetZero/detection/detzero_det/datasets/waymo/waymo_eval_detection.py", line 148, in build_graph
metrics = detection_metrics.get_detection_metric_ops(
File "/root/miniconda3/envs/detzero/lib/python3.8/site-packages/waymo_open_dataset/metrics/python/detection_metrics.py", line 154, in get_detection_metric_ops
variable_and_update_ops[name] = _update(name, update, init_shape, dtype)
File "/root/miniconda3/envs/detzero/lib/python3.8/site-packages/waymo_open_dataset/metrics/python/detection_metrics.py", line 40, in _update
v = tf.compat.v1.get_local_variable(
File "/root/miniconda3/envs/detzero/lib/python3.8/site-packages/tensorflow/python/ops/variable_scope.py", line 1727, in get_local_variable
return get_variable(
File "/root/miniconda3/envs/detzero/lib/python3.8/site-packages/tensorflow/python/ops/variable_scope.py", line 1579, in get_variable
return get_variable_scope().get_variable(
File "/root/miniconda3/envs/detzero/lib/python3.8/site-packages/tensorflow/python/ops/variable_scope.py", line 1322, in get_variable
return var_store.get_variable(
File "/root/miniconda3/envs/detzero/lib/python3.8/site-packages/tensorflow/python/ops/variable_scope.py", line 578, in get_variable
return _true_getter(
File "/root/miniconda3/envs/detzero/lib/python3.8/site-packages/tensorflow/python/ops/variable_scope.py", line 531, in _true_getter
return self._get_single_variable(
File "/root/miniconda3/envs/detzero/lib/python3.8/site-packages/tensorflow/python/ops/variable_scope.py", line 952, in _get_single_variable
v = variables.VariableV1(
File "/root/miniconda3/envs/detzero/lib/python3.8/site-packages/tensorflow/python/ops/variables.py", line 260, in call
return cls._variable_v1_call(*args, **kwargs)
File "/root/miniconda3/envs/detzero/lib/python3.8/site-packages/tensorflow/python/ops/variables.py", line 206, in _variable_v1_call
return previous_getter(
File "/root/miniconda3/envs/detzero/lib/python3.8/site-packages/tensorflow/python/ops/variables.py", line 199, in
previous_getter = lambda **kwargs: default_variable_creator(None, **kwargs)
File "/root/miniconda3/envs/detzero/lib/python3.8/site-packages/tensorflow/python/ops/variable_scope.py", line 2612, in default_variable_creator
return resource_variable_ops.ResourceVariable(
File "/root/miniconda3/envs/detzero/lib/python3.8/site-packages/tensorflow/python/ops/variables.py", line 264, in call
return super(VariableMetaclass, cls).call(*args, **kwargs)
File "/root/miniconda3/envs/detzero/lib/python3.8/site-packages/tensorflow/python/ops/resource_variable_ops.py", line 1584, in init
self._init_from_args(
File "/root/miniconda3/envs/detzero/lib/python3.8/site-packages/tensorflow/python/ops/resource_variable_ops.py", line 1722, in _init_from_args
initial_value = initial_value()
File "/root/miniconda3/envs/detzero/lib/python3.8/site-packages/waymo_open_dataset/metrics/python/detection_metrics.py", line 39, in
initializer = lambda: tf.constant([], shape=init_shape, dtype=dtype)
File "/root/miniconda3/envs/detzero/lib/python3.8/site-packages/tensorflow/python/framework/constant_op.py", line 264, in constant
return _constant_impl(value, dtype, shape, name, verify_shape=False,
File "/root/miniconda3/envs/detzero/lib/python3.8/site-packages/tensorflow/python/framework/constant_op.py", line 281, in _constant_impl
tensor_util.make_tensor_proto(
File "/root/miniconda3/envs/detzero/lib/python3.8/site-packages/tensorflow/python/framework/tensor_util.py", line 455, in make_tensor_proto
nparray = np.empty(shape, dtype=np_dt)
ValueError: negative dimensions are not allowed