遗留笔记本¶
存在一些笔记本,它们演示了 Torch-TensorRT 中提供的各种模型转换/功能/前端。
笔记本¶
使用 Torch-TensorRT 编译 CitriNet¶
Citrinet 是一种用于语音转文本识别任务的声学模型。它是 QuartzNet 的一个版本,扩展了 ContextNet,使用了子词编码(通过 Word Piece 分词)和 Squeeze-and-Excitation(SE)机制,因此比 QuartzNet 模型更小。Citrinet 模型接收音频片段并将其转录为字母、字节对或词片段序列。
此笔记本演示了使用 Torch-TensorRT 优化预训练 CitriNet 模型并运行以测试速度提升的步骤。
使用 Torch-TensorRT 编译 EfficientNet¶
EfficientNet 是一种前馈卷积神经网络,旨在通过使用一种“均匀缩放深度/宽度/分辨率所有维度的缩放方法,并使用一个简单但非常有效的复合系数”来达到比替代架构更好的性能和准确性。
此笔记本演示了使用 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 的整个流程。
使用 FX 前端和 Torch-TensorRT 编译 PyTorch 模型¶
此示例的目的是演示使用现有的基于 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 模型的训练到推理的以下步骤。