pytorch中RNN参数

放几个官方的图片:
pytorch中RNN参数_第1张图片
pytorch中RNN参数_第2张图片
pytorch中RNN参数_第3张图片

输入

RNN中的参数必须要的是input_size和hidden_size

首先看input_size
input_size的维度是(seq_len, batch_size, input_dim)

  1. seq_len:输入的序列长度,比如我爱中国,这就是4
  2. batch_size:一轮处理多少个样本
  3. inpu_dim:每一个单词的维度

在看hidden_size

hidden_size的维度是(num_layers * directions, batch_size, hidden_dim),这个是为每一层提供一个初始的 h 0 h_0 h0(不懂的去看看RNN的结构)

  1. num_layers * directions:很明显,后面的那个参数是单向还是双向,如果是单向,当然是有多少层就需要提供多少个初始 h 0 h_0 h0
  2. batch_size:和上面一样,不说了
  3. hidden_dim:隐藏层的节点数

输出

共有两个输出,一个是output,一个是hidden

先看output

output的维度是(seq_len, batch_size, hidden_dim * directions)

  1. seq_len:输入几个单词,输出几个单词
  2. batch_size;---------
  3. hidden_dim*directions:这里我也不太明白,为什么output的维度要和hidden的维度一样,我在运行RNN的时候,并没有发现从hidden到output的权重矩阵,所以一样也是正常的,但是为什么会没有从hidden到output的权重矩阵呢,我也霸知道

再看 hidden

hidden的维度是(num_layers * directions, batch_size, hidden_dim),这个和输入时候的初始 h 0 h_0 h0一样,霸说了

你可能感兴趣的:(深度学习,python,nlp)