资讯动态

高级RNNCell

发布时间:2026/9/24 19:03:19 来源:尧图企业网站定制
目录1.LSTM2.GRU在RNN中RNNCell是指在每个时间步基于当前的输入和上一个时间步的隐藏层输出来计算。传统RNNCell的计算公式为可见对任何时间步传统RNNCell用同一种方式将中所包含的信息传递给但在实际应用中序列中各个时刻的输入数据它们所起到的作用可能会非常不同。序列中重要的信息 (元素) 应该更多地传递下去而不重要的或者是无关的信息则不应该传递。例如我们考虑一个比较极端的学习任务时间序列中的每个元素是一个数值需要对序列进行二分类分类标签实际是基于与是否相等来设定的。在这种情况下我们需要给第一个元素一个较大的权重同时忽略中间其他时间步的输入。显然传统RNN是没有办法区别处理序列信息的传递方式的。1.LSTMLSTM的全称是Long-Short Term Memory即长短时记忆。通过计算一系列的门控向量可以有选择地利用长时记忆特征和短时记忆特征。首先来看一下LSTM中的各个门控的定义输入门 (input gate)遗忘门 (forget gate) :输出门 (output gate)σ sigmoid 函数专门用来把任意数压到(0,1)实现 “开关” 效果。每个gate的输出都是一个向量长度与LSTMCell的输出长度相同。什么叫gate?它是一个向量是通过一个模型函数计算出来的。元素的取值范围为(0, 1)。在使用的时候和其他的向量做按元素的乘法。接下来我们来看LSTM Cell的计算逻辑首先对和进行集成对Memory Cell进行更新 (是LSTM Cell内部追踪的状态)其中符号表示按元素相乘运算。计算LSTMCell在当前时间步的输出输出门决定当前状态向量各个维度输出的强度。有的信息虽然可能在当前时间步输出幅度弱但仍然保存在状态中向后传递可能在后续时间步中输出。PyTorch的相关模块LSTMCell — PyTorch 2.14 documentationLSTM — PyTorch 2.14 documentation2.GRUGRU的全称为Gated Recurrent Unit即门控循环单元。GRU定义了两个门控重置门 (reset gate)更新门 (update gate)GRUCell的计算过程如下集成上一步的隐藏层输出和当前步的输入其中控制被集成的程度如果为0则说明信息被重置了与序列之前的输入无关。计算当前步隐藏层的输出Pytorch相关模块GRUCell — PyTorch 2.14 documentationGRU — PyTorch 2.14 documentation

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价