TENSORRT工作流程:
下表列出了TensorRT功能及其支援的API。

下清單顯示TensorRT支援的平台
關鍵詞:
UFF:
通用架構格式(UFF)是描述DNN(深度神經網絡)的執行圖的資料格式,并且從該執行圖與其輸入和輸出進行綁定。 它有一個明确的核心語言,但也将支援對其核心操作和完全自定義操作的擴充。
格式包括:
序列化格式的具體文法,采用protobuf模式。
每個操作符的有效性定義,表示為一組python描述符。
記錄每個核心操作的行為(以便将來傳遞)。
PLAN檔案:
PLAN檔案是運作時引擎用來執行網絡的序列化資料。 它包括權重,核心執行網絡的時間表,以及應用程式可以查詢的網絡資訊,以确定如何綁定輸入和輸出緩沖區。
工作流程圖:
下圖展示了一個典型的開發工作流程,使用者通過訓練資料模型來生成訓練有素的網絡。 訓練好的網絡可以用于推斷。
正在将網絡導入TensorRT。 使用者将訓練好的網絡導入TensorRT,TensorRT優化網絡以生成PLAN。 例如,該PLAN被用于推斷,以驗證優化是否已正确執行。
PLAN也可以被序列化到磁盤,以便稍後重新加載到TensorRT運作時,而不必再次執行優化步驟。
NVCaffe C ++工作流程:
TensorRT可以通過NvCaffeParser界面直接導入NVCaffe模型。
使用NvCaffeParser解析器的示例可以在SampleMNIST中找到。 在那裡,TensorRT網絡定義結構使用NvCaffeParser庫從NVCaffe模型直接填充:
訓示NvCaffeParser生成一個權重為32位浮點數的網絡,但我們可以通過DataType :: kHALF生成一個16位權重的模型。
除填充網絡定義外,解析器還會傳回一個從NVCaffe blob名稱映射到TensorRT張量的字典。
TensorRT網絡定義沒有就地操作的概念,例如,ReLU的輸入和輸出張量是不同的。 當NVCaffe網絡使用就地操作時,字典中傳回的TensorRT張量對應于最後一次寫入該blob。 例如,如果卷積建立了一個blob,然後是一個就地的ReLU,那麼該Blob的名稱将映射到作為ReLU輸出的TensorRT張量。
由于NVCaffe模型不會告訴哪些張量是網絡的輸出,需要在解析後明确指定這些張量:
對輸出張量的數量沒有限制,但是,将張量标記為輸出,可能禁止對張量進行一些優化。
不要立即釋放解析器對象,因為網絡定義通過引用NVCaffe模型來儲存權重,而不是按值。 隻有在建構過程中才會從NVCaffe模型中讀取權重。