NVIDIA Jetson Nano — 03 轉換各種模型框架到 ONNX 模型

張家銘
Jul 23, 2020

--

ONNX(Open Neural Network Exchange)是一套開放神經網路交換格式,由 Facebook、Microsoft 一起推出 。 神經網路框架格式間的互通性, 讓不同標準的深度學習模型可以互相轉換,加快AI人工智慧的發展。目前已有許多 Training Framework,如 Google 的 TensorFlow/Keras、Facebook 的 Caffe2/PyTorch、Microsoft 的 CNTK、Amazon 的 MXNet 等等。

當我們需要在我們的 NVIDIA Jetson Nano 進行 inference (推論) 時會先將已經訓練好的模型轉成 TensorRT 的格式 (trt檔) ,這是設計來補充 Training Framework (TensorFlow, Keras, Caffe2, PyTorch, CNTK, MXNet, etc) 於 inference上的不足,特別專注於如何讓已經訓練好的模型更快且有效率的在一個GPU上產出結果。

轉換成 NVIDIA 所需的 TensorRT 推論引擎時,官方支援三種轉換格式 Caffe ParserUFF ParserONNX Parser,這篇文章我們將根據 ONNX Tutorials 去實現各種模型框架到 ONNX 的轉換,另外可以在 netron 上開啟轉好的onnx,以便讓我們查看模型架構。

下列各種框架的轉換詳細 code 可以查看:
Tutorial jupyter notebook

1. Caffe to ONNX

2. Keras to ONNX

3. TensorFlow to ONNX

4. PyTorch to ONNX

5. Caffe2 to ONNX

6. MXNet to ONNX

--

--