关于pytorch中LSTM的参数及输入数据的维度问题

LSTM为处理序列问题的RNN网络结构的变种,在此记录记录一下关于LSTM的参数和输入维度问题:
1,pytorch中的LSTM的参数:

model = torch.nn.LSTM(input_size, hidden_size, num_layers, bias, 
		batch_first, dropout, bidirectional)

参数解析:
input_size: 输入数据最后一维的大小,比如输入一个句子,句子中每个单词都是5个字母, 则input_size = 5.
hidden_size: 一个LSTM内部中神经元的个数.
num_layers: LSTM的层数.
bias: 每个神经元是否具有偏置.
batch_first: 该参数是影响输入数据的格式问题,若batch_first = True, 则输入数据的格式应为:(Batch_size, Length, input_dim),否则为(Length, Batch_size, input_dim).
dropout: LSTM模块内神经元的舍弃率.
bidirectional: 是否是双向的LSTM网络.

2.输入数据的参数:

input = torch.randn(len, bach_size, input_dim)
h_0 = torch.randn(len, batch_size, hidden_size)
c_0 = torch.randn(len, batch_size, hidden_size)

其中 h_0,c_0为相应的参数的初始值。

3.输入实例:

import torch
model = torch.nn.LSTM(input_size = 5, hidden_size = 32, num_layers = 1)
input = torch.randn(len, batch_size, input_dim)
h_0 = torch.randn(len, batch_size, hidden_size)
c_0  = torch.randn(len, batch_size, hidden_size)
output, (h, c) = model(input,(h_0, c_0))

你可能感兴趣的:(lstm,pytorch,深度学习)