Ejemplo n.º 1
0
    def forward(self, input_seq):
        lstm_out, self.hidden_cell = self.lstm(
            input_seq.view(len(input_seq), 1, -1), self.hidden_cell)
        predictions = self.linear(lstm_out.view(len(input_seq), -1))
        return predictions[-1]


epochs = 50
model = LSTM(1, 100, 1)
loss = nn.MSELoss()
optimizer = torch.optim.Adam(model.parameters(), lr=0.001)

for i in range(epochs + 1):
    for seq, label in train_inout_seq:
        optimizer.zero_grad()
        model.hidden_cell = (torch.zeros(1, 1, model.hidden_layer),
                             torch.zeros(1, 1, model.hidden_layer))
        predictions = model(seq)
        single_loss = loss(predictions, label)
        single_loss.backward()
        optimizer.step()

    if i % 10 == 0:
        print("Epoch: {0} Loss: {1:10.10f}".format(i, single_loss))

to_pred = 9128
test_inputs = target_norm[-train_window:].tolist()

for i in range(to_pred):
    seq = torch.FloatTensor(test_inputs[-train_window:])
    with torch.no_grad():
        model.hidden = (torch.zeros(1, 1, model.hidden_layer),