今天细致聊下循环神经网络(RNN):之前也提到过RNN是用来处理序列数据及一些相关的应用场景.现在来聊聊其API和一些其他的东西.torch.nn.RNN(input_size,hidden_size,num_layers)参数分别表示输入的特征维度,输出特征维度,隐藏层数.输入的Xt=(seq_len,batch_size,input_size).参数分别表示样本的token数,批次,指定词向量的维度.实际情况Xt是一个张量,形状根据你自己拿到的数据.需要注意:通常情况拿到的数据是:批次,token数......这时可以进行张量的维度转换.transpose(dim=),permute(dim=)也可直接在RNN的那个地方传入参数:batch_size=True.在隐藏层还有一个h0一般进行全0初始化.然后设置两个变量用来接收RNN模型的Yt,Ht..打印结果即可.在实际情况.RNN在进行长句子分析的时候容易梯度消失和梯度爆炸.短句子的分析效果较好.为缓解长句子处理的问题.于是提出LSTM模型.它是在RNN模型的基础上引入了Ct和门控机制还增加了许多激活函数.具体是:Ct是细胞状态.同样对传入的Ht-1和Xt进行拼接传给sigmoid得到遗忘系数,记忆系数,输出门系数(不是同一个东西).Ht-1和Xt进行拼接传给tanh得到Ct1.Ct-1乘以遗忘系数+Ht-1乘以记忆系数得到当前细胞状态Ct(记录的所有历史信息).将Ct投给tanh然后乘以输出门系数得到Ht(记录的是下一个时间步的输入状态).LSTM基本原理也很简单.通过门控机制.遗忘部分历史信息,记住现在多数信息.以此来缓解长句的梯度消失和爆炸问题.更长句的处理得用到Transformer的自注意力机制来解决.
相关推荐
TTGGGFF3 小时前
把 TeXstudio / LaTeX 工程交给 AI:texstudio-mcp 功能详解学习中.........3 小时前
多目标优化:遗传算法详解AI创界者3 小时前
LTX-Video 2.3 最新渐变版整合包!文生视频/图生视频双重进化,解压即用(附超详细避坑指南)Roselind_Yi4 小时前
池化对比:CNN池化 VS Java线程池动物园猫4 小时前
人群计数行人检测数据集分享(适用于YOLO系列深度学习检测任务)心中有国也有家4 小时前
hixl:昇腾分布式推理的「快递专线」创世宇图5 小时前
【AI入门知识点】Harness 是什么?为什么 DeepSeek 要组建 Harness 团队?Henry-SAP5 小时前
SAP MRP核心概念与学习路线解析Terrence Shen7 小时前
Agent面试八股文(系列之二)