TensorRT IRNNv2Layer

IRNNv2Layer层实现递归层,如递归神经网络(RNN)、门控递归单元(GRU)和长短期记忆(LSTM)。支持的类型有RNN、GRU和LSTM。它执行一个递归操作,其中操作由几个著名的递归神经网络(RNN)“单元”之一定义。

图层说明

该层接受输入序列X,初始隐藏状态H0,如果该单元是长短期存储器(LSTM)单元,则为初始单元状态C0,并产生一个输出Y,该输出Y表示跨T个时间步计算的最终RNN“子层”的输出(见下文)。可选地,该层还可以产生表示最终隐藏状态的输出hT,并且,如果单元是LSTM单元,则输出cT表示最终单元状态。

将单元的操作定义为函数G(x,h,c)。此函数接受向量输入x、h和c,并产生最多两个向量输出h'和c',表示执行单元操作后的隐藏状态和单元状态。

在默认(单向)配置中,RNNv2层应用如下图所示的Gas:

another layer are dropped.

network->markOutput(*pred->getOutput(1));

pred->getOutput(1)->setType(DataType::kINT32);

rnn->getOutput(1)->setName(HIDDEN_OUT_BLOB_NAME);

network->markOutput(*rnn->getOutput(1));

if (rnn->getOperation() == RNNOperation::kLSTM)

{

rnn->getOutput(2)->setName(CELL_OUT_BLOB_NAME);

network->markOutput(*rnn->getOutput(2));

};

See the C++ class IRNNv2Layer or the Python class IRNNv2Layer for further details.

  1. RNNv2 Layer Setup

网络的第一层是RNN层。这是在addRNNv2Layer()函数中添加和配置的。该层由以下配置参数组成。

操作

这定义了RNN单元的操作。支持的操作目前有relu、LSTM、GRU和tanh。

方向

这定义了RNN是单向的还是双向的(BiRNN)。

输入模式

这定义了RNN的第一层是执行矩阵乘法(线性模式),还是跳过矩阵乘法(跳过模式)。

例如,在sampleCharRNN中使用的网络中,我们使用了一个线性的、单向的LSTM单元,其中包含层数为层数的层数。下面的代码显示了如何创建这个RNNv2层。

auto rnn = network->addRNNv2(*data, LAYER_COUNT, HIDDEN_SIZE, SEQ_SIZE, RNNOperation::kLSTM);

注:对于RNNv2层,需要单独设置权重和偏差。有关详细信息,请参见RNNv2层-可选输入。

有关更多信息,请参阅TensorRT API文档。

  1. RNNv2 Layer - Optional Inputs

如果存在需要将hidden和cell状态预初始化为非零值的情况,那么可以通过setHiddenState和setCellState调用对它们进行预初始化。这些是RNN的可选输入。

C++ code snippet

rnn->setHiddenState(*hiddenIn);

if (rnn->getOperation() == RNNOperation::kLSTM)

rnn->setCellState(*cellIn);

Python code snippet

rnn.hidden_state = hidden_in

if rnn.op == trt.RNNOperation.LSTM:

rnn.cell_state = cell_in

TensorRT IRNNv2Layer的更多相关文章

  1. TensorRT学习总结

    TensorRT是什么 建议先看看这篇https://zhuanlan.zhihu.com/p/35657027 深度学习 训练 部署 平常自学深度学习的时候关注的更多是训练的部分,即得到一个模型.而 ...

  2. TensorRT&Sample&Python[yolov3_onnx]

    本文是基于TensorRT 5.0.2基础上,关于其内部的yolov3_onnx例子的分析和介绍. 本例子展示一个完整的ONNX的pipline,在tensorrt 5.0的ONNX-TensorRT ...

  3. TensorRT&Sample&Python[uff_custom_plugin]

    本文是基于TensorRT 5.0.2基础上,关于其内部的uff_custom_plugin例子的分析和介绍. 本例子展示如何使用cpp基于tensorrt python绑定和UFF解析器进行编写pl ...

  4. TensorRT&Sample&Python[fc_plugin_caffe_mnist]

    本文是基于TensorRT 5.0.2基础上,关于其内部的fc_plugin_caffe_mnist例子的分析和介绍. 本例子相较于前面例子的不同在于,其还包含cpp代码,且此时依赖项还挺多.该例子展 ...

  5. TensorRT&Sample&Python[network_api_pytorch_mnist]

    本文是基于TensorRT 5.0.2基础上,关于其内部的network_api_pytorch_mnist例子的分析和介绍. 本例子直接基于pytorch进行训练,然后直接导出权重值为字典,此时并未 ...

  6. TensorRT&Sample&Python[end_to_end_tensorflow_mnist]

    本文是基于TensorRT 5.0.2基础上,关于其内部的end_to_end_tensorflow_mnist例子的分析和介绍. 1 引言 假设当前路径为: TensorRT-5.0.2.6/sam ...

  7. TensorRT&Sample&Python[introductory_parser_samples]

    本文是基于TensorRT 5.0.2基础上,关于其内部的introductory_parser_samples例子的分析和介绍. 1 引言 假设当前路径为: TensorRT-5.0.2.6/sam ...

  8. 模型加速[tensorflow&tensorrt]

    在tensorflow1.8之后的版本中,tensorflow.contrib部分都有tensorrt的组件,该组件存在的意义在于,你可以读取pb文件,并调用tensorrt的方法进行subgraph ...

  9. TensorRT层和每个层支持的精度模式

    下表列出了TensorRT层和每个层支持的精确模式.它还列出了该层在深度学习加速器(DLA)上运行的能力.有关附加约束的更多信息,请参见 DLA Supported Layershttps://doc ...

随机推荐

  1. hdu1435 稳定婚姻问题

    题意: Stable Match Special Judge Problem Description Network 公司的BOSS 说现在他们公司建立的信号发射站和接收站经常出现信号发送接收不稳定的 ...

  2. Linux中的网络配置

    目录 网卡的配置 NetworkManager的使用 Team网卡绑定 Centos6.5.Redhat7.Kali网卡配置的不同 Kali桥接模式配置静态ip 网卡的配置 网卡命名的不同: Rhel ...

  3. POJ2195费用流+BFS建图

    题意:       给你一个n*m的地图,上面有w个人,和w个房子,每个人都要进房子,每个房子只能进一个人,问所有人都进房子的路径总和最少是多少? 思路:       比较简单的最大流,直接建立两排, ...

  4. 关于 C/C++ 函数调用约定

    关于 C/C++ 函数调用约定,大多数时候并不会影响程序逻辑,但遇到跨语言编程时,了解一下还是有好处的. VC 中默认调用是 __cdecl 方式,Windows API 使用 __stdcall 调 ...

  5. Mac FTP 安装与使用

    安装ftp brew install telnet brew install inetutils brew link --overwrite inetutils 使用ftp 1. 登录 #方式一 $ ...

  6. 【实用小技巧】Access denied for user 'root'@'localhost' 报错解决

    到mysql安装目录修改my.ini文件,在文件末尾追加一句 skip-grant-tables 然后重启mysql服务即可

  7. CCNA 第四章 轻松划分子网

    1:划分子网的的好处: (1):减少网络流量 (2):优化网络性能 (3):简化管理 (4):有助于覆盖大型地理区域 2:CIDR和ISP的概念 (1):CIDR:Classless Inter-Do ...

  8. Django(2)python虚拟环境virtualenvwrapper

    python虚拟环境 虚拟环境(virtual environment),它是一个虚拟化,从电脑独立开辟出来的环境.通俗的来讲,虚拟环境就是借助虚拟机来把一部分内容独立出来,我们把这部分独立出来的东西 ...

  9. Java枚举类、注解和反射

    本文主要介绍的是枚举类,注解和反射.还有一些基础知识:static,基本数据类型,运算符优先级放在文中,以便查阅复习. 其中牵扯到泛型的部分,可参考本人的另一篇博客:(Collection, List ...

  10. 03.21 ICPC训练联盟周赛:UCF Local Programming Contest 2018正式赛

    B Breaking Branches 题意:两个人比赛折枝,谁剩下最后1,无法折出整数即为输 思路:树枝长n,若是奇数,则Bob胜出,若是偶数,则Alice胜出,且需要输出1: 1 #include ...