TensorRT学习笔记(三)

简介:

TENSORRT工作流程:
下表列出了TensorRT功能及其支持的API。
2
下列表显示TensorRT支持的平台
2
关键词:
UFF:
通用框架格式(UFF)是描述DNN(深度神经网络)的执行图的数据格式,并且从该执行图与其输入和输出进行绑定。 它有一个明确的核心语言,但也将支持对其核心操作和完全自定义操作的扩展。
格式包括:

  • 序列化格式的具体语法,采用protobuf模式。
  • 每个操作符的有效性定义,表示为一组python描述符。
  • 记录每个核心操作的行为(以便将来交付)。

PLAN文件:
PLAN文件是运行时引擎用来执行网络的序列化数据。 它包括权重,内核执行网络的时间表,以及应用程序可以查询的网络信息,以确定如何绑定输入和输出缓冲区。
工作流程图:
下图展示了一个典型的开发工作流程,用户通过训练数据模型来生成训练有素的网络。 训练好的网络可以用于推断。
正在将网络导入TensorRT。 用户将训练好的网络导入TensorRT,TensorRT优化网络以生成PLAN。 例如,该PLAN被用于推断,以验证优化是否已正确执行。
PLAN也可以被序列化到磁盘,以便稍后重新加载到TensorRT运行时,而不必再次执行优化步骤。
4
NVCaffe C ++工作流程:
TensorRT可以通过NvCaffeParser界面直接导入NVCaffe模型。
使用NvCaffeParser解析器的示例可以在SampleMNIST中找到。 在那里,TensorRT网络定义结构使用NvCaffeParser库从NVCaffe模型直接填充:

INetworkDefinition* network = builder->createNetwork();
CaffeParser* parser = createCaffeParser();
std::unordered_map<std::string, infer1::Tensor> blobNameToTensor;
const IBlobNameToTensor* blobNameToTensor =
parser->parse(locateFile(deployFile).c_str(),
    locateFile(modelFile).c_str(),
    *network,
    DataType::kFLOAT);

指示NvCaffeParser生成一个权重为32位浮点数的网络,但我们可以通过DataType :: kHALF生成一个16位权重的模型。
除填充网络定义外,解析器还会返回一个从NVCaffe blob名称映射到TensorRT张量的字典。
TensorRT网络定义没有就地操作的概念,例如,ReLU的输入和输出张量是不同的。 当NVCaffe网络使用就地操作时,字典中返回的TensorRT张量对应于最后一次写入该blob。 例如,如果卷积创建了一个blob,然后是一个就地的ReLU,那么该Blob的名称将映射到作为ReLU输出的TensorRT张量。
由于NVCaffe模型不会告诉哪些张量是网络的输出,需要在解析后明确指定这些张量:

for (auto& s : outputs)
      network->markOutput(*blobNameToTensor->find(s.c_str()));

对输出张量的数量没有限制,但是,将张量标记为输出,可能禁止对张量进行一些优化。
不要立即释放解析器对象,因为网络定义通过引用NVCaffe模型来保存权重,而不是按值。 只有在构建过程中才会从NVCaffe模型中读取权重。
timg

目录
相关文章
|
3月前
|
机器学习/深度学习 并行计算 PyTorch
TensorRT部署系列 | 如何将模型从 PyTorch 转换为 TensorRT 并加速推理?
TensorRT部署系列 | 如何将模型从 PyTorch 转换为 TensorRT 并加速推理?
155 0
|
机器学习/深度学习 缓存 PyTorch
PyTorch 2.0 推理速度测试:与 TensorRT 、ONNX Runtime 进行对比
PyTorch 2.0 于 2022 年 12 月上旬在 NeurIPS 2022 上发布,它新增的 torch.compile 组件引起了广泛关注,因为该组件声称比 PyTorch 的先前版本带来更大的计算速度提升。
679 0
|
28天前
|
存储 机器学习/深度学习 PyTorch
|
4月前
|
机器学习/深度学习 算法 PyTorch
Pytorch学习笔记(1)
PyTorch是一个基于Python的开源机器学习库,广泛应用于深度学习和人工智能领域。它提供了丰富的工具和函数,方便我们构建、训练和部署神经网络模型。 本文将围绕以下几个关键主题展开: 张量(Tensors):PyTorch中的数据基本单位。 自动求导(Automatic Differentiation):PyTorch中的自动求导机制。 神经网络的构建和训练:使用PyTorch构建和训练神经网络的基本步骤。
|
10月前
|
机器学习/深度学习 API TensorFlow
TensorRT综述
TensorRT综述
142 0
|
11月前
|
机器学习/深度学习 人工智能 并行计算
【PyTorch】Pytorch基础第0章
【PyTorch】Pytorch基础第0章
61 0
|
11月前
|
机器学习/深度学习 并行计算 API
TensorRT安装
TensorRT安装
827 0
|
机器学习/深度学习 PyTorch 算法框架/工具
Pytorch学习笔记-07 模型finetune
Pytorch学习笔记-07 模型finetune
150 0
Pytorch学习笔记-07 模型finetune
|
数据可视化 Linux 计算机视觉
|
机器学习/深度学习 存储 人工智能
深度学习模型部署综述(ONNX/NCNN/OpenVINO/TensorRT)(上)
今天自动驾驶之心很荣幸邀请到逻辑牛分享深度学习部署的入门介绍,带大家盘一盘ONNX、NCNN、OpenVINO等框架的使用场景、框架特点及代码示例。
深度学习模型部署综述(ONNX/NCNN/OpenVINO/TensorRT)(上)

热门文章

最新文章