旧笔记本 ¶
存在许多笔记本,这些笔记本演示了 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://hugging-face.cn/bert-base-uncased)
此笔记本演示了使用 Torch-TensorRT 在来自 Hugging Face 的预训练 BERT Transformer 上编译 TorchScript 模块的步骤,以及运行它以测试获得的加速。
使用 Torch-TensorRT 在 C++ 中提供模型 ¶
此示例展示了如何加载预训练的 ResNet-50 模型,将其转换为 Torch-TensorRT 优化的模型(通过 Torch-TensorRT Python API),将模型保存为 torchscript 模块,然后最终使用 PyTorch C++ API 加载和提供模型。
使用 Torch-TensorRT 编译 ResNet50 ¶
此笔记本演示了使用 Torch-TensorRT 在预训练的 ResNet-50 网络上编译 TorchScript 模块的步骤,以及运行它以测试获得的加速。
使用 Torch-TensorRT 的动态形状 ¶
在 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 的总体流程。
使用 Torch-TensorRT 的 FX 前端编译 PyTorch 模型 ¶
此示例的目的是演示使用现有 FX 基于工具的 FX 通过 FX 将 PyTorch 模型降低到 TensorRT 的总体流程
使用 Torch-TensorRT 编译 LeNet ¶
此笔记本演示了使用 Torch-TensorRT 在简单的 LeNet 网络上编译 TorchScript 模块的步骤。
使用 Torch-TensorRT 中的量化加速深度学习模型 ¶
模型量化是一种流行的优化方法,它可以减小模型的大小,从而加速推理,也为在计算能力较低的设备(如 Jetson)上部署提供了可能性。简而言之,量化是将输入值
从较大的集合映射到较小集合中的输出值。在此笔记本中,我们将说明在 Torch-TensorRT 中量化深度学习模型时可以采用的工作流程。笔记本将引导你完成在 Imagenette(这是一个包含 10 个类别的 Imagenet 数据集子集)上执行分类任务的 Mobilenetv2 示例。
使用 Torch-TensorRT (SSD) 进行目标检测 ¶
此笔记本演示了使用 Torch-TensorRT 在预训练的 SSD 网络上编译 TorchScript 模块的步骤,以及运行它以测试获得的加速。
使用 Torch-TensorRT 在 INT8 中部署量化感知训练模型 ¶
量化感知训练 (QAT) 通过量化权重和激活层来模拟训练期间的量化。这将有助于在将以 FP32 训练的网络转换为 INT8 以进行更快推理时减少精度损失。QAT 在图中引入了额外的节点,这些节点将用于学习权重和激活层的动态范围。在本笔记本中,我们将说明从在 Torch-TensorRT 中训练 QAT 模型到推理的以下步骤。