1. 本际云推荐 - 专业推荐VPS、服务器,IDC点评首页
  2. 云主机运维
  3. VPS运维

如何使用Pytorch-LSTM输出参数

介绍Pytorch-LSTM中的输入输出参数

小编写这篇文章的主要目的,主要是给大家做一个介绍,介绍关于Pytorch-LSTM是如何去输出参数,有哪一些步骤呢?下面小编就以代码和图片给大家做出一个介绍。

如何使用Pytorch-LSTM输出参数

Pytorch-LSTM输入数据(以batch_first=True,双层双向为例)

假如输入数据信息如下:
输入维度为28,batch_first=True,双层双向(num_layers=2,bidirectional=True)

下面是对应的代码:

num_layers=2
bidirectional_set=True
bidirectional=2 if bidirectional_set else 1
input_size=28
hidden_size=4
lstm_seq=nn.LSTM(input_size,hidden_size,num_layers=num_layers,bidirectional=bidirectional_set,batch_first=True)
lstm_input=Variable(torch.randn(10,3,28))
h_init=Variable(torch.randn(num_layers*bidirectional,lstm_input.size(0),hidden_size))
c_init=Variable(torch.randn(num_layers*bidirectional,lstm_input.size(0),hidden_size))
out,(h,c)=lstm_seq(lstm_input,(h_init,c_init))
print(lstm_seq.weight_ih_l0.shape)
print(lstm_seq.weight_hh_l0.shape)
print(out.shape,h.shape,c.shape)

Pytorch-LSTM函数参数解释图解

以下是LSTM函数的部分参数和含义解释:

  • input_size-输入的特征维度
  • hidden_size-隐状态的特征维度
  • num_layers-层数
  • bias-如果为False,那么LSTM将不会使用偏置,默认为True
  • batch_first-如果为True,那么输入和输出Tensor的形状为(batch,seq_len,input_size)
  • dropout-如果非零的话,将会在RNN的输出上加个dropout,最后一层除外
  • bidirectional-如果为True,将会变成一个双向RNN,默认为False

以下是LSTM函数的输入和输出维度:

  • 输入维度为(seq_len, batch, input_size)(如果batch_first为True,则输入形状为(batch,seq_len,input_size))
  • 输出维度为(seq_len, batch, hidden_size*num_directions)(num_direction指的是如果是普通LSTM,则为1;Bi-LSTM则为2)

接下来我们用图片对LSTM的函数参数进行详细解释:

如何使用Pytorch-LSTM输出参数

在这张图片中:

  • input_size对应图1中xi,绿色节点对应图2中的绿色节点,绿色节点的长度等于input_size(一般是每个字/单词的向量表示)
  • hidden_size对应图2中黄色节点的数量
  • num_layers对应图2中黄色节点的层数

以上就是小编为大家总结的资料,希望可以为大家带来更多的帮助。

原创文章,作者:小编小本本,如若转载,请注明出处:https://www.benjiyun.com/yunzhujiyunwei/vps-yunwei/7386.html