I am wondering if this is due to the fact that jetson-inference is a slimmed down or jetson device dedicated version of it. And maybe thats why the implementation is simpler
Hi @a428tm, the jetson-inference project is open-source and licensed under the permissive MIT license, so you are welcome to use it in production if desired.
I think since jetson-inference is organized into libraries and high-level primitives (like imageNet/detectNet/ect) that may have simplified the API somewhat. Also much of the heavy-lifting is done in C++ which makes the Python bindings simpler (and of nearly equal performance to the base C++ implementation)
Other than the project name, there isn’t much on the inferencing side that is particular to Jetson (as opposed to PC/dGPU). In jetson-utils, a bunch of the multimedia stuff (like camera and encoder/decoder) is particular to Jetson however.
Sorry, yes I have been meaning to improve the Python API docs. If you look at the examples or C++ docs, those are better documented. Or when in doubt, you can look at the Python bindings which call the C++ functions.
That is correct, there isn’t yet support for the TLT models inside jetson-inference. I hope to add it at some point, however you can currently use DeepStream for inferencing of TLT models.
The PyTorch training workflow from jetson-inference uses ONNX (PyTorch->ONNX->TensorRT) as opposed to torch2trt (which goes from PyTorch->TensorRT directly). torch2trt handles the inferencing when using torch2trt.
Similarly, TF-TRT goes from Tensorflow->TensorRT, and TF-TRT handles the inferencing. You would probably want to export your TensorFlow model to ONNX if you wanted to try to run it with jetson-inference. Running new models in jetson-inference typically requires adjusting the pre/post-processing code (like found in jetson-inference/c/detectNet.cpp) so that it knows how to format the input tensors and how the output tensors should be interpreted for that model.
Hi Jae, I haven’t personally tried TensorFlow->ONNX before (as I use PyTorch to ONNX), but it looks like you could try that tf2onnx tool used in the blog. Then you would want to see if the trtexec utility could parse/load that ONNX file (you can find trtexec under /usr/src/tensorrt/bin on your Jetson).
If the ONNX way doesn’t work, there is another TensorFlow->UFF->TensorRT way that you can find demonstrated here for object detection model (SSD-Mobilenet): https://github.com/AastaNV/TRT_object_detection
The UFF conversion can require some additional steps / configuration of the model however.
The fallback from there would then be to use TF-TRT for the inferencing.