开发者社区> night李> 正文

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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
PyTorch 深度学习实战 | PyTorch 环境搭建
PyTorch 是当前主流深度学习框架之一,其设计追求最少的封装、最直观的设计,其简洁优美的特性使得 PyTorch 代码更易理解,对新手非常友好。 本文主要介绍 PyTorch 环境搭建!
55 0
Pytorch学习笔记-07 模型finetune
Pytorch学习笔记-07 模型finetune
19 0
Linux安装cuda10.1,cudnn7.6.4 (深度学习) MindSporeGPU计算框架
Linux安装cuda10.1,cudnn7.6.4 (深度学习) MindSporeGPU计算框架
92 0
PyTorch 2.0 推理速度测试:与 TensorRT 、ONNX Runtime 进行对比
PyTorch 2.0 于 2022 年 12 月上旬在 NeurIPS 2022 上发布,它新增的 torch.compile 组件引起了广泛关注,因为该组件声称比 PyTorch 的先前版本带来更大的计算速度提升。
219 0
TensorRT 基础笔记
TensorRT 基础笔记
63 0
TensorFlow还是PyTorch?哪一个才更适合编写深度神经网络?
TensorFlow还是PyTorch?哪一个才更适合编写深度神经网络?
44 0
TensorFlow 实现图像分类|学习笔记
快速学习 TensorFlow 实现图像分类。
48 0
Pytorch学习笔记总结
它是一个基于python的科学计算包,针对两类受众: 可以代替Numpy从而利用GPU的强大功能; 是一个可以提供最大灵活性和速度的深度学习研究平台。
94 0
PyTorch学习笔记(三):PyTorch主要组成模块
(1)数据预处理:通过专门的数据加载,通过批训练提高模型表现,每次训练读取固定数量的样本输入到模型中进行训练 (2)深度神经网络搭建:逐层搭建,实现特定功能的层(如积层、池化层、批正则化层、LSTM层等) (3)损失函数和优化器的设定:保证反向传播能够在用户定义的模型结构上实现 (4)模型训练:使用并行计算加速训练,将数据按批加载,放入GPU中训练,对损失函数反向传播回网络最前面的层,同时使用优化器调整网络参数
62 0
+关注
night李
对机器视觉 图像处理有一定的兴趣 要做一条有梦想的咸鱼
文章
问答
文章排行榜
最热
最新
相关电子书
更多
深度学习框架实战-Tensorflow
立即下载
TensorRT Introduction
立即下载
TensorRT Introduction
立即下载