旧版笔记本¶
存在许多笔记本,展示了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 是一种在大量英语数据上以自监督方式预训练的变压器模型。 通过这种方式,模型学习到英语的内部表示,然后可以用于提取对下游任务有用的特征:例如,如果你有一个带标签的句子数据集,你可以使用 BERT 模型生成的特征作为输入来训练一个标准的分类器。”(https://huggingface.co/bert-base-uncased)
本笔记本演示了如何使用Torch-TensorRT在Hugging Face预训练的BERT转换器上编译TorchScript模块,并运行它以测试所获得的速度提升。
使用Torch-TensorRT在C++中服务模型¶
此示例展示了如何加载预训练的ResNet-50模型,将其转换为Torch-TensorRT优化模型(通过Torch-TensorRT Python API),将模型保存为torchscript模块,最后使用PyTorch C++ API加载并提供模型服务。
使用Torch-TensorRT编译ResNet50¶
本笔记本演示了在预训练的ResNet-50网络上使用Torch-TensorRT编译TorchScript模块的步骤,并运行它以测试获得的速度提升。
使用动态形状与Torch-TensorRT¶
在Torch TensorRT中使用动态形状张量非常简单。假设你正在使用torch_tensorrt.compile(...)函数来编译一个torchscript模块。这个函数中的一个参数是input:它定义了模块的输入,包括预期的形状、数据类型和张量格式:torch_tensorrt.Input.
在本教程中,我们只需要三个kwargs: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的使用。
使用FX前端与Torch-TensorRT¶
本示例的目的是展示使用FX方便地将PyTorch模型降低到TensorRT的整体流程。
使用Torch-TensorRT的FX前端编译PyTorch模型¶
本示例的目的是展示通过FX将PyTorch模型降级到TensorRT的整体流程,使用现有的基于FX的工具。
使用Torch-TensorRT编译LeNet¶
本笔记本演示了在简单的LeNet网络上使用Torch-TensorRT编译TorchScript模块的步骤。
使用Torch-TensorRT中的量化加速深度学习模型¶
模型量化是一种流行的优化方式,它通过减少模型的大小来加速推理,同时也为在计算能力较低的设备(如Jetson)上部署模型提供了可能性。简单来说,量化是一个将输入值映射的过程
从一个较大的集合到一个较小的集合输出值。在本笔记本中,我们展示了在Torch-TensorRT中对深度学习模型进行量化时可以采用的工作流程。本笔记本通过一个Mobilenetv2的例子,带你了解在Imagenet数据集的子集Imagenette上进行分类任务的过程,该子集包含10个类别。
使用Torch-TensorRT进行目标检测(SSD)¶
本笔记本演示了在预训练的SSD网络上使用Torch-TensorRT编译TorchScript模块的步骤,并运行它以测试获得的速度提升。
使用Torch-TensorRT在INT8中部署量化感知训练模型¶
量化感知训练(QAT)通过在训练期间量化权重和激活层来模拟量化。这将有助于减少在我们将FP32训练的网络转换为INT8以进行更快推理时的精度损失。QAT在图中引入了额外的节点,这些节点将用于学习权重和激活层的动态范围。在本笔记本中,我们展示了从训练到推理的QAT模型在Torch-TensorRT中的以下步骤。