'KeyError' : TAO4 AutoML with PeopleNet

• Hardware (T4/V100/Xavier/Nano/etc) RTX4090
• Network Type (Detectnet_v2/Faster_rcnn/Yolo_v4/LPRnet/Mask_rcnn/Classification/etc) Detectnet_v2
• TLT Version (Please run “tlt info --verbose” and share “docker_tag” here) TAO4 Baremetal
• Training spec file(If have, please share here) /notebooks/tao_api_starter_kit/client/automl/object_detection.ipynb
• How to reproduce the issue ? (This is for errors. Please share the command line and the detailed log here.)

Continuation of this other failure. Same use case, same configuration.

Loading the custom dataset and select the pretrained network based on peoplenet (detectnet_v2)
pretrained_map = {“detectnet_v2” : “peoplenet:trainable_v2.6”}

Launch the AutoMl process and nothing happend.

Not logs generated, no compute movement.

Error found in the container:

AutoML pipeline
Exception in thread Thread-9 (AutoMLPipeline):
Traceback (most recent call last):
File “/usr/local/lib/python3.11/threading.py”, line 1038, in _bootstrap_inner
self.run()
File “/usr/local/lib/python3.11/threading.py”, line 975, in run
self._target(*self._args, **self._kwargs)
File “/opt/api/handlers/actions.py”, line 747, in AutoMLPipeline
complete_specs, handler_metadata = convert_automl_recommendations_to_spec(job_context,recommended_values,job_context.network)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/opt/api/handlers/actions.py”, line 723, in convert_automl_recommendations_to_spec
spec = process_classwise_config(spec)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/opt/api/handlers/utilities.py”, line 457, in process_classwise_config
bbox_dict = {“key”:class_name[“key”],“value:”:class_name[“value”][“bbox_rasterizer_config”]}
~~~~~~~~~~^^^^^^^
KeyError: ‘key’

Try also to manual modify the specs/train.json to include all the labels, only appear “person”. Bag and face is not defined.

Dataset generated correctly with the images and without warnings.
(Also mention that when the tfrecords have problems with the labels, generate a warning.json, that is automatic deleted when finish the job).

classes.json generated:

["person", "face", "xxxx", "bag", "zzzz", "yyyy"]

datasets/79a50be1-26c0-4c26-976e-1247bed5df62/jobs_metadata/c4a16018-01a6-4d46-9b95-8b6e174038de.json

{
    "id": "c4a16018-01a6-4d46-9b95-8b6e174038de",
    "parent_id": null,
    "action": "convert",
    "created_on": "2023-04-21T11:41:10.313023",
    "last_modified": "2023-04-21T11:41:50.081030",
    "status": "Done",
    "result": {
        "detailed_status": {
            "date": "4/21/2023",
            "time": "11:41:39",
            "status": "SUCCESS",
            "message": "Dataset convert finished successfully."
        },
        "categorical": [
            {
                "metric": "num_objects",
                "category_wise_values": [
                    {
                        "category": "person",
                        "value": 25104.0
                    },
                    {
                        "category": "face",
                        "value": 9537.0
                    },
                    {
                        "category": "xxxx",
                        "value": 1551.0
                    },
                    {
                        "category": "bag",
                        "value": 3295.0
                    },
                    {
                        "category": "yyyy",
                        "value": 3176.0
                    },
                    {
                        "category": "zzzz",
                        "value": 1569.0
                    }
                ]
            }
        ],
        "kpi": [
            {
                "metric": "num_images",
                "value": 11955.0
            }
        ],
        "graphical": [],
        "cur_epoch": null,
        "epoch": null,
        "max_epoch": null,
        "eta": null,
        "time_per_epoch": null
    }
}

dataset job / datasets/79a50be1-26c0-4c26-976e-1247bed5df62/c4a16018-01a6-4d46-9b95-8b6e174038de/status.json

{"date": "4/21/2023", "time": "11:41:27", "status": "STARTED", "verbosity": "INFO", "message": "Starting Object Detection Dataset Convert."}
{"date": "4/21/2023", "time": "11:41:27", "status": "STARTED", "verbosity": "INFO", "message": "Instantiating a kitti converter"}
{"date": "4/21/2023", "time": "11:41:27", "status": "RUNNING", "verbosity": "INFO", "message": "Generating partitions"}
{"date": "4/21/2023", "time": "11:41:27", "status": "RUNNING", "verbosity": "INFO", "message": "Num images in\nTrain: 11955\tVal: 0", "kpi": {"num_images": 11955}}
{"date": "4/21/2023", "time": "11:41:27", "status": "RUNNING", "verbosity": "INFO", "message": "Skipped validation data.", "kpi": {"num_images": 11955}}
{"date": "4/21/2023", "time": "11:41:27", "status": "RUNNING", "verbosity": "INFO", "message": "Writing partition 0, shard 0", "kpi": {"num_images": 11955}}
{"date": "4/21/2023", "time": "11:41:28", "status": "RUNNING", "verbosity": "INFO", "message": "Writing partition 0, shard 1", "kpi": {"num_images": 11955}}
{"date": "4/21/2023", "time": "11:41:29", "status": "RUNNING", "verbosity": "INFO", "message": "Writing partition 0, shard 2", "kpi": {"num_images": 11955}}
{"date": "4/21/2023", "time": "11:41:30", "status": "RUNNING", "verbosity": "INFO", "message": "Writing partition 0, shard 3", "kpi": {"num_images": 11955}}
{"date": "4/21/2023", "time": "11:41:31", "status": "RUNNING", "verbosity": "INFO", "message": "Writing partition 0, shard 4", "kpi": {"num_images": 11955}}
{"date": "4/21/2023", "time": "11:41:33", "status": "RUNNING", "verbosity": "INFO", "message": "Writing partition 0, shard 5", "kpi": {"num_images": 11955}}
{"date": "4/21/2023", "time": "11:41:34", "status": "RUNNING", "verbosity": "INFO", "message": "Writing partition 0, shard 6", "kpi": {"num_images": 11955}}
{"date": "4/21/2023", "time": "11:41:35", "status": "RUNNING", "verbosity": "INFO", "message": "Writing partition 0, shard 7", "kpi": {"num_images": 11955}}
{"date": "4/21/2023", "time": "11:41:36", "status": "RUNNING", "verbosity": "INFO", "message": "Writing partition 0, shard 8", "kpi": {"num_images": 11955}}
{"date": "4/21/2023", "time": "11:41:37", "status": "RUNNING", "verbosity": "INFO", "message": "Writing partition 0, shard 9", "kpi": {"num_images": 11955}}
{"date": "4/21/2023", "time": "11:41:39", "status": "RUNNING", "verbosity": "INFO", "message": "Cumulative object statistics", "categorical": {"num_objects": {"person": 25104, "face": 9537, "xxxx": 1551, "bag": 3295, "yyyy": 3176, "zzzz": 1569}}, "kpi": {"num_images": 11955}}
{"date": "4/21/2023", "time": "11:41:39", "status": "RUNNING", "verbosity": "INFO", "message": "Class map. \nLabel in GT: Label in tfrecords file \nb'person': b'person'\nb'face': b'face'\nb'xxxx': b'xxxx'\nb'bag': b'bag'\nb'yyyy': b'yyyy'\nb'zzzz': b'zzzz'", "categorical": {"num_objects": {"person": 25104, "face": 9537, "xxxx": 1551, "bag": 3295, "yyyy": 3176, "zzzz": 1569}}, "kpi": {"num_images": 11955}}
{"date": "4/21/2023", "time": "11:41:39", "status": "RUNNING", "verbosity": "INFO", "message": "For the dataset_config in the experiment_spec, please use labels in the tfrecords file, while writing the classmap.\n", "categorical": {"num_objects": {"person": 25104, "face": 9537, "xxxx": 1551, "bag": 3295, "yyyy": 3176, "zzzz": 1569}}, "kpi": {"num_images": 11955}}
{"date": "4/21/2023", "time": "11:41:39", "status": "SUCCESS", "verbosity": "INFO", "message": "TFRecords generation complete.", "categorical": {"num_objects": {"person": 25104, "face": 9537, "xxxx": 1551, "bag": 3295, "yyyy": 3176, "zzzz": 1569}}, "kpi": {"num_images": 11955}}
{"date": "4/21/2023", "time": "11:41:39", "status": "SUCCESS", "verbosity": "INFO", "message": "Dataset convert finished successfully.", "categorical": {"num_objects": {"person": 25104, "face": 9537, "xxxx": 1551, "bag": 3295, "yyyy": 3176, "zzzz": 1569}}, "kpi": {"num_images": 11955}}

models/5688544b-c272-48f6-b315-6cdd852302b5/metadata.json

{
    "id": "5688544b-c272-48f6-b315-6cdd852302b5",
    "created_on": "2023-04-21T11:58:23.335331",
    "last_modified": "2023-04-21T14:10:05.286848",
    "name": "My Model",
    "description": "My TAO Model",
    "version": "1.0.0",
    "logo": "https://www.nvidia.com",
    "ngc_path": "",
    "encryption_key": "tlt_encode",
    "read_only": false,
    "public": false,
    "network_arch": "detectnet_v2",
    "dataset_type": "object_detection",
    "actions": [
        "train",
        "evaluate",
        "prune",
        "retrain",
        "export",
        "convert",
        "inference"
    ],
    "train_datasets": [
        "79a50be1-26c0-4c26-976e-1247bed5df62"
    ],
    "eval_dataset": "b5a65f17-4129-48fe-9468-15aebebf590a",
    "inference_dataset": null,
    "additional_id_info": null,
    "calibration_dataset": null,
    "ptm": "00e8bc75-c346-489d-ac31-e6f0e30389db",
    "automl_enabled": true,
    "automl_algorithm": "HyperBand",
    "metric": "map",
    "automl_add_hyperparameters": "[]",
    "automl_remove_hyperparameters": "[]",
    "automl_max_recommendations": 10
}

Specs file, only modify the next parameters:

specs["model_config"]["num_layers"] = 34
specs["model_config"]["freeze_blocks"] = [0,1]
specs["training_config"]["batch_size_per_gpu"] = 64

Have a good monday!
Best regards.

Can you print the “class_name” for debug use?

BTW, can hdf5/ngc pretrained weights work? You can try hdf5 file from ngc. TAO Pretrained DetectNet V2 | NVIDIA NGC

What container need to touch to modify the code?

I try to modify the tao-toolkit-api-workflow-pod-854f868db6-qcrw8 and tao-toolkit-api-app-pod-84f6894b6f-xxp8 Kubernetes pods, but not print anything.

Try to print a message inside the def process_classwise_config(data): and nothing happends.

type orkubectl exec -n gpu-operator --stdin --tty tao-toolkit-api-app-pod-84f6894b6f-xxp8q -- /bin/bash paste code here

With the pretrained_map = {"detectnet_v2" : "pretrained_detectnet_v2:resnet34"} the same result:

AutoML pipeline
Exception in thread Thread-13 (AutoMLPipeline):
Traceback (most recent call last):
  File "/usr/local/lib/python3.11/threading.py", line 1038, in _bootstrap_inner
    self.run()
  File "/usr/local/lib/python3.11/threading.py", line 975, in run
    self._target(*self._args, **self._kwargs)
  File "/opt/api/handlers/actions.py", line 747, in AutoMLPipeline
    complete_specs, handler_metadata = convert_automl_recommendations_to_spec(job_context,recommended_values,job_context.network)
                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/api/handlers/actions.py", line 723, in convert_automl_recommendations_to_spec
    spec = process_classwise_config(spec)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/api/handlers/utilities.py", line 457, in process_classwise_config
    bbox_dict = {"key":class_name["key"],"value:":class_name["value"]["bbox_rasterizer_config"]}
                       ~~~~~~~~~~^^^^^^^
KeyError: 'key'

May I know that if you can reproduce with the default notebook? If yes, please share the .ipynb with us or save the .ipnb to .html file then share with us.

We are using the default notebooks provide by us.

Quick question: In this intermediates updates of the TAO API, you update the examples?

How can attach the file? a PM? or in this chat.

The latest 4.0.2 notebook is TAO Toolkit Getting Started | NVIDIA NGC

You can upload the file via button
image

1 Like

Good to know… maybe have changes between version.

Also attach the actual notebook, and at the same time will double check the differences.
nvidia_automl_client.ipynb (41.4 KB)

Could you share the .ipynb you was running? Your attached file does not contain the result inside most of the cells.

ª, OK.

Want to see also how the files are uploaded? I’m working at home, and maybe delay it so much.

No problem. It is fine.

Thank you for the support.

I send to you a private message with the file. It contains personal keys.

OK, it is fine.

Also attach the fully workflow api LOG of the process:
note: I remove the user folder name. I don’t know if have relationship with the API key.

~$ kubectl logs -n gpu-operator tao-toolkit-api-workflow-pod-854f868db6-qcrw8
NGC CLI 3.19.0
detectnet_v2 dataset_convert --results_dir /shared/users//datasets/79a50be1-26c0-4c26-976e-1247bed5df62/ca1f55e7-0760-4c6e-8c03-e6048f856867 --output_filename /shared/users//datasets/79a50be1-26c0-4c26-976e-1247bed5df62/tfrecords/tfrecords --verbose --dataset_export_spec /shared/users//datasets/79a50be1-26c0-4c26-976e-1247bed5df62/specs/ca1f55e7-0760-4c6e-8c03-e6048f856867.yaml  > /shared/users//datasets/79a50be1-26c0-4c26-976e-1247bed5df62/logs/ca1f55e7-0760-4c6e-8c03-e6048f856867.txt 2>&1 >> /shared/users//datasets/79a50be1-26c0-4c26-976e-1247bed5df62/logs/ca1f55e7-0760-4c6e-8c03-e6048f856867.txt; find /shared/users//datasets/79a50be1-26c0-4c26-976e-1247bed5df62/ca1f55e7-0760-4c6e-8c03-e6048f856867 -type d | xargs chmod 777; find /shared/users//datasets/79a50be1-26c0-4c26-976e-1247bed5df62/ca1f55e7-0760-4c6e-8c03-e6048f856867 -type f | xargs chmod 666 /shared/users//datasets/79a50be1-26c0-4c26-976e-1247bed5df62/ca1f55e7-0760-4c6e-8c03-e6048f856867/status.json
nvcr.io/nvidia/tao/tao-toolkit:4.0.1-tf1.15.5
Job created ca1f55e7-0760-4c6e-8c03-e6048f856867
Post running
Job Done: ca1f55e7-0760-4c6e-8c03-e6048f856867 Final status: Done
detectnet_v2 dataset_convert --results_dir /shared/users//datasets/b5a65f17-4129-48fe-9468-15aebebf590a/3ce67af2-ebd1-4314-ab60-cc30eb9735bf --output_filename /shared/users//datasets/b5a65f17-4129-48fe-9468-15aebebf590a/tfrecords/tfrecords --verbose --dataset_export_spec /shared/users//datasets/b5a65f17-4129-48fe-9468-15aebebf590a/specs/3ce67af2-ebd1-4314-ab60-cc30eb9735bf.yaml  > /shared/users//datasets/b5a65f17-4129-48fe-9468-15aebebf590a/logs/3ce67af2-ebd1-4314-ab60-cc30eb9735bf.txt 2>&1 >> /shared/users//datasets/b5a65f17-4129-48fe-9468-15aebebf590a/logs/3ce67af2-ebd1-4314-ab60-cc30eb9735bf.txt; find /shared/users//datasets/b5a65f17-4129-48fe-9468-15aebebf590a/3ce67af2-ebd1-4314-ab60-cc30eb9735bf -type d | xargs chmod 777; find /shared/users//datasets/b5a65f17-4129-48fe-9468-15aebebf590a/3ce67af2-ebd1-4314-ab60-cc30eb9735bf -type f | xargs chmod 666 /shared/users//datasets/b5a65f17-4129-48fe-9468-15aebebf590a/3ce67af2-ebd1-4314-ab60-cc30eb9735bf/status.json
nvcr.io/nvidia/tao/tao-toolkit:4.0.1-tf1.15.5
Job created 3ce67af2-ebd1-4314-ab60-cc30eb9735bf
Post running
Job Done: 3ce67af2-ebd1-4314-ab60-cc30eb9735bf Final status: Done
AutoML pipeline
Exception in thread Thread-4 (AutoMLPipeline):
Traceback (most recent call last):
  File "/usr/local/lib/python3.11/threading.py", line 1038, in _bootstrap_inner
    self.run()
  File "/usr/local/lib/python3.11/threading.py", line 975, in run
    self._target(*self._args, **self._kwargs)
  File "/opt/api/handlers/actions.py", line 747, in AutoMLPipeline
    complete_specs, handler_metadata = convert_automl_recommendations_to_spec(job_context,recommended_values,job_context.network)
                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/api/handlers/actions.py", line 723, in convert_automl_recommendations_to_spec
    spec = process_classwise_config(spec)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/api/handlers/utilities.py", line 457, in process_classwise_config
    bbox_dict = {"key":class_name["key"],"value:":class_name["value"]["bbox_rasterizer_config"]}
                       ~~~~~~~~~~^^^^^^^
KeyError: 'key'

As mentioned above, if you have time, please run with the default 4.0.2 notebook to check if the issue still happens . Thanks a lot.

1 Like

Same Issue, i don’t see any sustancial difference between the notebooks.

This time avoid the layers freeze, and use the “pretrained_detectnet_v2:resnet34”.

The same error. Nothing changes.
Attach in a PM the notebook with the outputs.

Thanks in advance.

News?

Today try to launch a NO automl training process using the client notebook. And I’m stuck in the same point.

Login, dataset creation, tfrecords generation, specs modification, load pretained network. All ok.

X.X.X.X - - [03/May/2023:11:14:47 +0000] "POST /api/v1/user//dataset HTTP/1.1" 201 448 "-" "python-requests/2.28.2"
X.X.X.X - - [03/May/2023:11:26:24 +0000] "POST /api/v1/user//dataset HTTP/1.1" 201 448 "-" "python-requests/2.28.2"
X.X.X.X - - [03/May/2023:11:34:45 +0000] "POST /api/v1/user//dataset/960a75b8-4176-4b6e-8aed-bd85ba810796/job HTTP/1.1" 201 117 "-" "python-requests/2.28.2"
X.X.X.X - - [03/May/2023:11:38:49 +0000] "POST /api/v1/user//dataset/1d7fb7cc-939b-48a6-8610-91438b08117c/job HTTP/1.1" 201 117 "-" "python-requests/2.28.2"
X.X.X.X - - [03/May/2023:11:39:30 +0000] "POST /api/v1/user//model HTTP/1.1" 201 795 "-" "python-requests/2.28.2"
X.X.X.X - - [03/May/2023:12:02:14 +0000] "POST /api/v1/user//model/a3a0995c-f8a5-4798-a2a5-2e1f647b4783/job HTTP/1.1" 201 117 "-" "python-requests/2.28.2"

detectnet_v2 dataset_convert --results_dir /shared/users//datasets/960a75b8-4176-4b6e-8aed-bd85ba810796/f85d94de-b09b-4578-b05c-e0f3b17893b3 --output_filename /shared/users//datasets/960a75b8-4176-4b6e-8aed-bd85ba810796/tfrecords/tfrecords --verbose --dataset_export_spec /shared/users//datasets/960a75b8-4176-4b6e-8aed-bd85ba810796/specs/f85d94de-b09b-4578-b05c-e0f3b17893b3.yaml  > /shared/users//datasets/960a75b8-4176-4b6e-8aed-bd85ba810796/logs/f85d94de-b09b-4578-b05c-e0f3b17893b3.txt 2>&1 >> /shared/users//datasets/960a75b8-4176-4b6e-8aed-bd85ba810796/logs/f85d94de-b09b-4578-b05c-e0f3b17893b3.txt; find /shared/users//datasets/960a75b8-4176-4b6e-8aed-bd85ba810796/f85d94de-b09b-4578-b05c-e0f3b17893b3 -type d | xargs chmod 777; find /shared/users//datasets/960a75b8-4176-4b6e-8aed-bd85ba810796/f85d94de-b09b-4578-b05c-e0f3b17893b3 -type f | xargs chmod 666 /shared/users//datasets/960a75b8-4176-4b6e-8aed-bd85ba810796/f85d94de-b09b-4578-b05c-e0f3b17893b3/status.json
nvcr.io/nvidia/tao/tao-toolkit:4.0.1-tf1.15.5
Job created f85d94de-b09b-4578-b05c-e0f3b17893b3
Post running
Job Done: f85d94de-b09b-4578-b05c-e0f3b17893b3 Final status: Done
detectnet_v2 dataset_convert --results_dir /shared/users//datasets/1d7fb7cc-939b-48a6-8610-91438b08117c/6ce2fd09-151a-49f1-8892-c8c291a2c032 --output_filename /shared/users//datasets/1d7fb7cc-939b-48a6-8610-91438b08117c/tfrecords/tfrecords --verbose --dataset_export_spec /shared/users//datasets/1d7fb7cc-939b-48a6-8610-91438b08117c/specs/6ce2fd09-151a-49f1-8892-c8c291a2c032.yaml  > /shared/users//datasets/1d7fb7cc-939b-48a6-8610-91438b08117c/logs/6ce2fd09-151a-49f1-8892-c8c291a2c032.txt 2>&1 >> /shared/users//datasets/1d7fb7cc-939b-48a6-8610-91438b08117c/logs/6ce2fd09-151a-49f1-8892-c8c291a2c032.txt; find /shared/users//datasets/1d7fb7cc-939b-48a6-8610-91438b08117c/6ce2fd09-151a-49f1-8892-c8c291a2c032 -type d | xargs chmod 777; find /shared/users//datasets/1d7fb7cc-939b-48a6-8610-91438b08117c/6ce2fd09-151a-49f1-8892-c8c291a2c032 -type f | xargs chmod 666 /shared/users//datasets/1d7fb7cc-939b-48a6-8610-91438b08117c/6ce2fd09-151a-49f1-8892-c8c291a2c032/status.json
nvcr.io/nvidia/tao/tao-toolkit:4.0.1-tf1.15.5
Job created 6ce2fd09-151a-49f1-8892-c8c291a2c032
Post running
Job Done: 6ce2fd09-151a-49f1-8892-c8c291a2c032 Final status: Done
Loaded specs
Loaded dataset
'key'
Job 4fef81f5-49a0-41cb-a6d8-1a2d8f46f60e did not start

File models/a3a0995c-f8a5-4798-a2a5-2e1f647b4783/jobs_metadata/4fef81f5-49a0-41cb-a6d8-1a2d8f46f60e.json

{
    "id": "4fef81f5-49a0-41cb-a6d8-1a2d8f46f60e",
    "parent_id": null,
    "action": "train",
    "created_on": "2023-05-03T12:02:14.617471",
    "last_modified": "2023-05-03T12:02:25.578011",
    "status": "Error",
    "result": {
        "detailed_status": {
            "message": "Error due to unmet dependencies"
        }
    }
}

I’m totally lost…

Sorry for late reply due to OOTO.
From the log you shared,

“classwise_config”: {
“value”: {
“evaluation_config”: {
“minimum_detection_ground_truth_overlap”: 0.5,
“evaluation_box_config”: {
“minimum_width”: 10,
“minimum_height”: 20,
“maximum_width”: 9999,
“maximum_height”: 9999
}
},
“cost_function_config”: {
“objectives”: [
{
“name”: “cov”,
“initial_weight”: 1.0,
“weight_target”: 1.0
},
{
“name”: “bbox”,
“initial_weight”: 10.0,
“weight_target”: 10.0
}
],
“coverage_foreground_weight”: 0.050000001,
“class_weight”: 4.0
},
“bbox_rasterizer_config”: {
“cov_radius_y”: 1.0,
“cov_radius_x”: 1.0,
“cov_center_y”: 0.5,
“cov_center_x”: 0.5,
“bbox_min_radius”: 1.0
}
},
“postprocessing_config”: {
“clustering_config”: {
“nms_iou_threshold”: 0.2,
“nms_confidence_threshold”: 0.0,
“minimum_bounding_box_height”: 20,
“dbscan_min_samples”: 0.050000001,
“dbscan_eps”: 0.230000004,
“dbscan_confidence_threshold”: 0.1,
“coverage_threshold”: 0.0075,
“clustering_algorithm”: “DBSCAN
}
}
},

I find that there is not “key”.
So, below will meet error because there is no data["classwise_config"]["key"].

455     for class_name in data["classwise_config"]:
456
457         bbox_dict = {"key":class_name["key"],"value:":class_name["value"]["bbox_rasterizer_config"]}

Please double check your original spec file. I am afraid the “key” is missing.
For example, below is expected.

  evaluation_box_config {
    key: "car"
    value {
      minimum_height: 20
      maximum_height: 9999
      minimum_width: 10
      maximum_width: 9999
    }
  }
  evaluation_box_config {
    key: "cyclist"
    value {
      minimum_height: 20
      maximum_height: 9999
      minimum_width: 10
      maximum_width: 9999
    }
  }
  evaluation_box_config {
    key: "pedestrian"
    value {
      minimum_height: 20
      maximum_height: 9999
      minimum_width: 10
      maximum_width: 9999
    }
  }

Yes, this is one of my initial questions. In any part of the standard template not appear nothing to include the keys.

The only point is:

  "dataset_config": {
    "target_class_mapping": {
      "value": "person",
      "key": "person"
    }

But reading at high level the API code, you include it automatically from the extracted TFRECORDS information, and add this information in all the specific point of the Spec file. ¿Or I’m wrong?

Can you add below into ~/shared/users/{os.environ[‘USER’]}/models/{model_id}/specs/train.json ?

“classwise_config”: {
“key”: “person”,
“value”: {

Added this line, and WORKS!

For now only add one label. It’s necessary replicate the KEY, with all the parameters to the other labels? or automatically replicate to others?

I think, that with this missing line, automl start working! need more test to confirm.

Thanks! Now have other failures in the spec configuration. But the process start, and generate a log.