💻 源码
import torch
import torch.nn as nn

def rnn_demo(num_layers):
    # 1- 创建RNN循环网络层
    """
        参数解释:
            input_size:输入数据的向量维度
            hidden_size:隐藏状态向量维度
            num_layers:隐藏层的层数
    """
    rnn = nn.RNN(input_size=4,hidden_size=5,num_layers=num_layers)

    # 2- 准备数据
    # 2.1- 本次输入数据
    input = torch.randn(size=(3,2,4))
    # 2.2- 上一个时间步的隐藏状态。
    h0 = torch.randn(size=(num_layers,2,5))

    # 3- 调用RNN
    """
        输入参数的张量形状:
            本次输入数据input:[seq_len每条句子中词的个数, batch_size每个批次中样本的条数, input_size词向量维度]
            上一个时间步的隐藏状态h0:[num_layers隐藏层的层数, batch_size每个批次中样本的条数, hidden_size隐藏状态向量维度]
        
        返回值的张量形状:
            本次时间步的预测结果output:[seq_len每条句子中词的个数, batch_size每个批次中样本的条数, hidden_size隐藏状态向量维度]
            本次更新后的隐藏状态hidden:[num_layers隐藏层的层数, batch_size每个批次中样本的条数, hidden_size隐藏状态向量维度]
    """
    output,hidden = rnn(input,h0)

    # 4- 打印结果
    print(f"output的形状-->{output.shape}")    # [3,2,5]
    print(f"hidden的形状-->{hidden.shape}")    # [num_layers,2,5]

    print(f"output的内容-->\n{output}")
    print(f"hidden的内容-->\n{hidden}")


if __name__ == '__main__':
    # rnn_demo(num_layers=1)
    rnn_demo(num_layers=2)