zoukankan      html  css  js  c++  java
  • TensorRT IRNNv2Layer

    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

    人工智能芯片与自动驾驶
  • 相关阅读:
    selenium产生的垃圾文件清理
    英语学习词根法
    ecommerce学习
    tfs2012安装
    转载文件,英语学习
    Mishka and Divisors CodeForces
    Codeforces Round #364 (Div. 1) (差一个后缀自动机)
    莫比乌斯反演练习
    bzoj 1267 Kth Number I (点分治,堆)
    程序员的绘图利器 — Gnuplot
  • 原文地址:https://www.cnblogs.com/wujianming-110117/p/13919777.html
Copyright © 2011-2022 走看看