pytorch——RNN,LSTM,GRU层

声明层:

    要用一个层,首先的声明一个层。

    参数:

         pytorch——RNN,LSTM,GRU层_第1张图片

         input_size:就是词向量的维度,每一个词的词向量直接怼进RNN的cell里。

         hidden_size:隐层张量维度,一般等于input_size。

使用层:

    输入张量形状:

          如果只有一句话,就可以把这一整句话,当作一个序列全部输入到RNN中,pytorch的RNN会自动迭代。如果有不止一句话,RNN也会并行运算,就是说也是可以直接把这多句话传进去。

          input:在默认的情况下,输入张量形状是(seq_len,batch_size,embedding_size)。

正常来说,应该是有batch_size个句子,每个句子有seq_len个词也就是说句子的长度是seq_len,每个词的词向量是embedding_size维。那seq_len和batch_size是怎么换的位置?

example:现在有两个句子,每个句子有三个词。[ [1,2,3],[4,5,6] ]  它的形状就应该是:batch_size*seq_len。把所有句子里相同位置的词,依次组成tensor  => [ [1,4],[2,5],[3,6] ] 这样形状变成了seq_len*batch_size。把单词变成对应的词向量,就得到了(seq_len,batch_size,embedding_size)的张量。

如果参数batch_first = True,输入张量的形状就是(batch_size,seq_len,embedding_size)。

        hidden:初始隐层张量可以不设置,默认为0。

                pytorch——RNN,LSTM,GRU层_第2张图片

    输出张量形状:

     RNN:

           pytorch——RNN,LSTM,GRU层_第3张图片

 

 LSTM:

       pytorch——RNN,LSTM,GRU层_第4张图片

  pytorch——RNN,LSTM,GRU层_第5张图片

你可能感兴趣的:(pytorch)