# 处理不定长输入
# 时间序列任务(输入数据具有前后关系)
1、RNN
# input_size:输入x的特征数量
# hidden_size:隐藏层的特征数量
# num_layers:RNN层数
# nonlinearity:默认tanh,非线性函数使用tanh还是relu
# bias:默认True,是否使用偏置
# batch_first:默认False[即(序列长度seq,批大小batch,特征维度feature)];若True则(batch,seq,feature)
# dropout:缺省值为0,表示不使用dropout层;若为1,则除最后一层外,其它层的输出都会加dropout层
# bidirectional:默认False;True表示使用双向rnn
self.rnn = torch.nn.RNN(input_size,hidden_size,num_layers,
nonlinearity='tanh',bias=True,batch_first=False,dropout=0,bidirectional=False)
# output,h_n = self.rnn(X)
2、LSTM
self.lstm = torch.nn.LSTM(input_size,hidden_size,num_layers)
# output,h_n = self.lstm(X)
# output,(h_n,h_c) = self.lstm(X)
3、GRU
self.gru = torch.nn.GRUCell(input_size,hidden_size,num_layers)
# output,h_n = self.gru(X)