-
RNN Layer
torch.nn.RNN(input_size,hidden_size,num_layers,batch_first)
input_size
: 输入的编码维度hidden_size
: 隐含层的维数num_layers
: 隐含层的层数batch_first:
·True
指定输入的参数顺序为:- x:[batch, seq_len, input_size]
- h0:[batch, num_layers, hidden_size]
-
RNN 的输入:
- x:[seq_len, batch, input_size]
seq_len
: 输入的序列长度batch
: batch size 批大小
- h0:[num_layers, batch, hidden_size]
- x:[seq_len, batch, input_size]
-
RNN 的输出:
- y: [seq_len, batch, hidden_size]
- 实战之预测
正弦曲线
:以下会以此为例,演示RNN
预测任务的部署
-
步骤一:确定 RNN Layer 相关参数值并基于此创建
Net
import numpy as np from matplotlib import pyplot as plt import torch import torch.nn as nn import torch.optim as optim seq_len = 50 batch = 1 num_time_steps = seq_len input_size = 1 output_size = input_size hidden_size = 10 num_layers = 1 batch_first = True class Net(nn.Module): ## model 定义 def __init__(self): super(Net, self).__init__() self.rnn = nn.RNN( input_size=input_size, hidden_size=hidden_size, num_layers=num_layers, batch_first=batch_first) # for p in self.rnn.parameters(): # nn.init.normal_(p, mean=0.0, std=0.001) self.linear = nn.Linear(hidden_size, output_size) def forward(self, x, hidden_prev): out, hidden_prev = self.rnn(<
-