TENSORRT工作流程:
下表列出了TensorRT功能及其支持的API。

下列表显示TensorRT支持的平台

关键词:
UFF:
通用框架格式(UFF)是描述DNN(深度神经网络)的执行图的数据格式,并且从该执行图与其输入和输出进行绑定。 它有一个明确的核心语言,但也将支持对其核心操作和完全自定义操作的扩展。
格式包括:

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

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

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模型中读取权重。

TensorRT学习笔记(三)相关推荐

  1. J2EE学习笔记三:EJB基础概念和知识 收藏

    J2EE学习笔记三:EJB基础概念和知识 收藏 EJB正是J2EE的旗舰技术,因此俺直接跳到这一章来了,前面的几章都是讲Servlet和JSP以及JDBC的,俺都懂一些.那么EJB和通常我们所说的Ja ...

  2. tensorflow学习笔记(三十二):conv2d_transpose (解卷积)

    tensorflow学习笔记(三十二):conv2d_transpose ("解卷积") deconv解卷积,实际是叫做conv_transpose, conv_transpose ...

  3. Ethernet/IP 学习笔记三

    Ethernet/IP 学习笔记三 原文为硕士论文: 工业以太网Ethernet/IP扫描器的研发 知网网址: http://kns.cnki.net/KCMS/detail/detail.aspx? ...

  4. iView学习笔记(三):表格搜索,过滤及隐藏列操作

    iView学习笔记(三):表格搜索,过滤及隐藏某列操作 1.后端准备工作 环境说明 python版本:3.6.6 Django版本:1.11.8 数据库:MariaDB 5.5.60 新建Django ...

  5. 吴恩达《机器学习》学习笔记三——多变量线性回归

    吴恩达<机器学习>学习笔记三--多变量线性回归 一. 多元线性回归问题介绍 1.一些定义 2.假设函数 二. 多元梯度下降法 1. 梯度下降法实用技巧:特征缩放 2. 梯度下降法的学习率 ...

  6. Python基础学习笔记三

    Python基础学习笔记三 print和import print可以用,分割变量来输出 import copy import copy as co from copy import deepcopy ...

  7. Mr.J-- jQuery学习笔记(三十二)--jQuery属性操作源码封装

    扫码看专栏 jQuery的优点 jquery是JavaScript库,能够极大地简化JavaScript编程,能够更方便的处理DOM操作和进行Ajax交互 1.轻量级 JQuery非常轻巧 2.强大的 ...

  8. MYSQL学习笔记三:日期和时间函数

    MYSQL学习笔记三:日期和时间函数 1. 获取当前日期的函数和获取当前时间的函数 /*获取当前日期的函数和获取当前时间的函数.将日期以'YYYY-MM-DD'或者'YYYYMMDD'格式返回 */ ...

  9. ROS学习笔记三:创建ROS软件包

    ,# ROS学习笔记三:创建ROS软件包 catkin软件包的组成 一个软件包必须满足如下条件才能被称之为catkin软件包: 这个软件包必须包含一个catkin编译文件package.xml(man ...

  10. Python学习笔记三之编程练习:循环、迭代器与函数

    Python学习笔记三之编程练习 1. 编程第一步 # 求解斐波纳契数列 #/user/bin/python3#Fibonacci series:斐波那契数列 #两个元素的总和确定了下一个数 a,b= ...

最新文章

  1. Bash脚本: 根据关键字做替换
  2. less及编译工具介绍
  3. python语言需要英语非常好吗-Python用不好英语水平不够?这里有官方中文文档你看不看...
  4. 计算机与USB沟通方式
  5. SQL 语句使用关键字错误
  6. WPF 中如何使用第三方控件 ,可以使用WindowsFormsHost 类
  7. Kafka的常见错误分析
  8. Nand Flash VS Nor Flash
  9. 全新的membership框架Asp.net Identity(1)——.Net membership的历史
  10. 大数据之-Hadoop3.x_生产调优手册_HDFS读写压测---大数据之hadoop3.x工作笔记0162
  11. [转]C#操作注册表
  12. python创建虚拟环境jupyter_创建 python 虚拟环境以及对应的 jupyter notebook kernel
  13. 【转载】完全手册 Flex 3.0 RIA开发详解(光盘内容)(书下载以及书的源代码下载)...
  14. 关于struts框架的优缺点
  15. 联想服务器无线网卡被禁用,无线网卡被禁用怎么办
  16. 自然语言处理(NLP):国内会议
  17. 湖南省中职计算机应用教资笔试+面试心得
  18. 打造个性QQ,适合网吧做自己安全的QQ
  19. 解决‘adb‘ 不是内部或外部命令,也不是可运行的程序或批处理文件。
  20. golang元转分、分转元

热门文章

  1. Powershell 邮件发送
  2. 亲测SQLServer的最大连接数
  3. Window平台下的Android的环境配置
  4. MspEmu W.I.P
  5. 2020-11-05 关于前端‘古董‘dojo的树结构如何默认展开根节点
  6. java生成横向的pdf,java – 如何生成横向跨越多个页面的PDF报告
  7. caffe安装_keras/tensorflow1.x模型转换为caffe推理模型
  8. 华为mate40怎么用鸿蒙,怎么使用鸿蒙系统?
  9. c语言p gt name,c语言中strcmp(p-name,s)是什么意思?
  10. python requests cookies请求_python的requests库怎么发送带cookies的请求