舊版筆記本¶
存在許多筆記本,展示了 Torch-TensorRT 中可用的不同模型轉換/功能/前端
筆記本¶
使用 Torch-TensorRT 編譯 CitriNet¶
Citrinet 是一種用於語音轉文字辨識任務的聲學模型。它是 QuartzNet 的一個版本,擴展了 ContextNet,利用子字編碼(透過 Word Piece 標記化)和 Squeeze-and-Excitation (SE) 機制,因此比 QuartzNet 模型更小。 CitriNet 模型接收音訊片段並將它們轉錄成字母、字節對或字詞片段序列。
此筆記本示範了使用 Torch-TensorRT 最佳化預訓練的 CitriNet 模型並執行它以測試獲得的加速的步驟。
使用 Torch-TensorRT 編譯 EfficientNet¶
EfficientNet 是一種前饋 CNN,旨在透過使用「一種統一縮放深度/寬度/解析度所有維度的縮放方法,使用一個簡單但非常有效的複合係數」來實現比替代架構更好的效能和準確性。
此筆記本示範了使用 Torch-TensorRT 最佳化預訓練的 EfficientNet 模型並執行它以測試獲得的加速的步驟。
使用 Torch-TensorRT 加速的 Hugging Face BERT Transformer 進行遮罩語言建模 (MLM)¶
「BERT 是一個 Transformer 模型,以自監督的方式在大量的英文語料庫上進行預訓練。這樣,該模型學習了英語的內部表示,然後可用於提取對下游任務有用的特徵:例如,如果您有一個標記句子的數據集,您可以使用 BERT 模型生成的特徵作為輸入來訓練一個標準分類器。」(https://huggingface.co/bert-base-uncased)
這個筆記本演示了使用 Torch-TensorRT 在 Hugging Face 的預訓練 BERT Transformer 上編譯 TorchScript 模組,並運行它以測試獲得的加速效果的步驟。
在 C++ 中使用 Torch-TensorRT 提供模型服務¶
這個例子展示了如何加載一個預訓練的 ResNet-50 模型,將其轉換為 Torch-TensorRT 優化模型(透過 Torch-TensorRT Python API),將模型儲存為 torchscript 模組,然後最終使用 PyTorch C++ API 加載並提供模型服務。
使用 Torch-TensorRT 編譯 ResNet50¶
這個筆記本演示了使用 Torch-TensorRT 在預訓練的 ResNet-50 網絡上編譯 TorchScript 模組,並運行它以測試獲得的加速效果的步驟。
使用 Torch-TensorRT 的動態形狀 (Dynamic Shapes)¶
在 Torch TensorRT 中使用動態形狀張量非常簡單。假設您正在使用 torch_tensorrt.compile(...)
函數來編譯一個 torchscript 模組。這個函數的其中一個參數是 input
:它根據預期的形狀、數據類型和張量格式來定義模組的輸入:torch_tensorrt.Input.
為了本教學的目的,我們只需要三個關鍵字參數:min_shape、opt_shape 和 max_shape。
torch_tensorrt.Input(
min_shape=(1, 224, 224, 3),
opt_shape=(1, 512, 512, 3),
max_shape=(1, 1024, 1024, 3),
dtype=torch.int32
format=torch.channel_last
)
...
在這個範例中,我們將使用一個簡單的 ResNet 模型來演示 API 的使用。
使用 Torch-TensorRT 的 FX 前端¶
這個例子的目的是演示使用 FX 方便地將 PyTorch 模型降低到 TensorRT 的整體流程。
使用 FX 前端與 Torch-TensorRT 編譯 PyTorch 模型¶
這個例子的目的是演示透過 FX 將 PyTorch 模型降低到 TensorRT 的整體流程,並結合現有的基於 FX 的工具。
使用 Torch-TensorRT 編譯 LeNet¶
這個筆記本演示了使用 Torch-TensorRT 在一個簡單的 LeNet 網絡上編譯 TorchScript 模組的步驟。
使用 Torch-TensorRT 中的量化加速深度學習模型¶
模型量化是一種流行的優化方式,可以減小模型的大小,從而加速推論,同時也開啟了在計算能力較低的設備(例如 Jetson)上進行部署的可能性。簡而言之,量化是將輸入值從較大的集合映射到較小集合中的輸出值的過程。
在這個筆記本中,我們說明了您在 Torch-TensorRT 中量化深度學習模型時可以採用的工作流程。筆記本將帶您完成 Mobilenetv2 的範例,該範例針對 Imagenet 數據集的一個子集(稱為 Imagenette)執行分類任務,該數據集有 10 個類別。
使用 Torch-TensorRT 進行物件偵測 (SSD)¶
這個筆記本演示了使用 Torch-TensorRT 在預訓練的 SSD 網絡上編譯 TorchScript 模組,並運行它以測試獲得的加速效果的步驟。
使用 Torch-TensorRT 在 INT8 中部署量化感知訓練模型¶
量化感知訓練 (QAT) 透過量化權重和激活層來模擬訓練期間的量化。這將有助於減少將在 FP32 中訓練的網路轉換為 INT8 以實現更快推論時的準確性損失。QAT 在圖中引入額外的節點,這些節點將用於學習權重和激活層的動態範圍。在這個筆記本中,我們說明了從 Torch-TensorRT 中 QAT 模型的訓練到推論的以下步驟。