神经网络 torch.nn---nn.RNN()

torch.nn - PyTorch中文文档 (pytorch-cn.readthedocs.io)

RNN --- PyTorch 2.3 documentation

torch.nn---nn.RNN()

python 复制代码
nn.RNN(input_size=input_x,
       hidden_size=hidden_num,
       num_layers=1,
       nonlinearity='tanh', #默认'tanh'
       bias=True,  #默认是True
       batch_first=False,
       dropout=0,
       bidirectional=False  #默认为False
       )

参数说明:

  • input_size -- 输入x的特征数量。

  • hidden_size -- 隐层的特征数量。

  • num_layers -- RNN的层数。

  • nonlinearity -- 激活函数。指定非线性函数使用tanh还是relu。默认是tanh

  • bias -- 是否使用偏置。

  • batch_first -- 如果True的话,那么输入Tensor的shape应该是[batch_size, time_step, feature],输出也是这样。默认是 False,就是这样形式,(seq(num_step), batch, input_dim),也就是将序列长度放在第一位,batch 放在第二位

  • dropout -- 默认不使用,如若使用将其设置成一个0-1的数字即可。如果值非零,那么除了最后一层外,其它层的输出都会套上一个dropout层。

  • 是否使用双向的 rnn,默认是 False

输入输出shape

  1. RNN的输入:input_shape = [时间步数, 批量大小, 特征维度] = [num_steps(seq_length), batch_size, input_dim]=input (seq_len, batch, input_size)保存输入序列特征的tensor。
  2. RNN的隐藏层:h_0 (num_layers * num_directions, batch, hidden_size): 保存着初始隐状态的tensor。
  3. RNN的输出: (output, h_n)。 在前向计算后会分别返回输出和隐藏状态h,其中输出指的是隐藏层在各个时间步上计算并输出的隐藏状态,它们通常作为后续输出层的输⼊。
  4. output (seq_len, batch, hidden_size * num_directions) 形状为**(时间步数, 批量大小, 隐藏单元个数)** : 保存着RNN最后一层的输出特征。如果输入是被填充过的序列,那么输出也是被填充的序列。
  5. 隐藏状态h的形状为(层数, 批量大小,隐藏单元个数)=h_n (num_layers * num_directions, batch, hidden_size) : 保存着最后一个时刻隐状态。隐藏状态指的是隐藏层在最后时间步的隐藏状态:当隐藏层有多层时,每⼀层的隐藏状态都会记录在该变量中。

RNN模型参数:

  • weight_ih_l[k] -- 第k层的 input-hidden 权重, 可学习,形状是(input_size x hidden_size)

  • weight_hh_l[k] -- 第k层的 hidden-hidden 权重, 可学习,形状是(hidden_size x hidden_size)

  • bias_ih_l[k] -- 第k层的 input-hidden 偏置, 可学习,形状是(hidden_size)

  • bias_hh_l[k] -- 第k层的 hidden-hidden 偏置, 可学习,形状是(hidden_size)

计算过程

​h_t是时刻t的隐状态。

x_t是上一层时刻t的隐状态,或者是第一层在时刻t的输入。

如果nonlinearity='relu',那么将使用relu代替tanh作为激活函数。

相关推荐
时序之心33 分钟前
覆盖Transformer、GAN:掩码重建正在重塑时间序列领域!
人工智能·深度学习·生成对抗网络·transformer·时间序列
惯导马工1 小时前
【论文导读】AI-Assisted Fatigue and Stamina Control for Performance Sports on IMU-Gene
深度学习·算法
鲸鱼在dn1 小时前
Transformer 架构的演进与未来方向(RNN → Self-Attention → Mamba)——李宏毅大模型2025第四讲笔记
rnn·深度学习·transformer
小胖墩有点瘦1 小时前
【基于深度学习的中草药识别系统】
人工智能·python·深度学习·课程设计·计算机毕业设计·中草药识别
CoovallyAIHub1 小时前
推理提速一倍!SegDT:轻量化扩散 Transformer,医学图像分割的技术跨越
深度学习·算法·计算机视觉
CoovallyAIHub2 小时前
无人机方案如何让桥梁监测更安全、更智能?融合RTK与超高分辨率成像,优于毫米精度
深度学习·算法·计算机视觉
addaduvyhup2 小时前
【RNN-LSTM-GRU】第三篇 LSTM门控机制详解:告别梯度消失,让神经网络拥有长期记忆
rnn·gru·lstm
Deng_Xian_Sheng3 小时前
有哪些任务可以使用无监督的方式训练深度学习模型?
人工智能·深度学习·无监督
CV缝合救星7 小时前
【Arxiv 2025 预发行论文】重磅突破!STAR-DSSA 模块横空出世:显著性+拓扑双重加持,小目标、大场景统统拿下!
人工智能·深度学习·计算机视觉·目标跟踪·即插即用模块
蓝桉80210 小时前
如何进行神经网络的模型训练(视频代码中的知识点记录)
人工智能·深度学习·神经网络