• Hardware: TAO transfer training on NVIDIA L4 and Deploy target is Jetson Xavier NX and Nvidia Jetson TX2 NX (with Xavier NX Devkit)
• Network Type: Detectnet_v2
• TLT Version: format_version: 3.0, toolkit_version: 5.1.0, published_date: 10/10/2023
• Training spec file(If have, please share here).
• Pre-trained model: Downloaded from ngc registry model download-version nvidia/tao/pretrained_detectnet_v2:resnet18.
Background:
Prior to switching to TAO 5.1.0, I was using an earlier version of TAO, which generated a .etlt file.
tao detectnet_v2 export
-m $USER_EXPERIMENT_DIR/experiment_dir_retrain/weights/resnet18_detector_pruned.tlt
-o $USER_EXPERIMENT_DIR/experiment_dir_final/resnet18_detector.etlt
-k $KEY
I then moved the .etlt file over to my Jetson physical device and ran the tao-converter to generate the engine files. The .etlt file and engine files worked fine in my DeepStream based detection program for my Jetson devices.
I recently migrated my training over to TAO 5.1.0. My training process works fine and this is how I exported the model:
Remove a pre-existing copy of the onnx if there is one
rm --force $LOCAL_RESULTS_DIR/experiment_dir_final/resnet18_detector.onnx &&
tao model detectnet_v2 export
-k $KEY
-e $CONTAINER_SPECS_DIR/detectnet_v2_retrain_resnet18_kitti.txt
-m $CONTAINER_EXPERIMENT_DIR/experiment_dir_retrain/weights/resnet18_detector_pruned.hdf5
-o $CONTAINER_EXPERIMENT_DIR/experiment_dir_final/resnet18_detector.onnx
–onnx_route tf2onnx
–gen_ds_config
(I also tried it with “–onnx_route keras2onnx”.)
Instead of generating an .etlt model, it now generates an .onyx model. When I perform the same process to build the engine files on my Jetson hardware by substituting the prior .etlt file with the new .onnx file, it would not work. It generated the standard error that said to check the key, which I know is okay.
How do I take the .onnx file generated on my L4 TAO training server and run it on my Jetson device? Ideally, I would like to generate my engine files for my Jetson target devices on the same L4 architecture. It would greatly simply our workflow. Is this at all possible?
Note that I have searched and read many articles on how to do this under TAO 5 and tried many of the often conflicting instructions without success.
2 posts - 2 participants