File size: 842 Bytes
fae0184
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# model.py
import torch
import torch.nn as nn
import torch.nn.functional as F

class LSTMModel(nn.Module):
    def __init__(self, input_size):
        super(LSTMModel, self).__init__()
        hidden1 = 64
        hidden2 = 256
        self.lstm1 = nn.LSTM(input_size=input_size, hidden_size=hidden1, batch_first=True, dropout=0.2, bidirectional=True)
        self.ln1 = nn.LayerNorm(hidden1 * 2)
        self.lstm2 = nn.LSTM(input_size=hidden1 * 2, hidden_size=hidden2, batch_first=True, dropout=0.2, bidirectional=True)
        self.ln2 = nn.LayerNorm(hidden2 * 2)
        self.fc = nn.Linear(hidden2 * 2, 1)

    def forward(self, x):
        x, _ = self.lstm1(x)
        x = self.ln1(x)
        x = F.relu(x)
        x, _ = self.lstm2(x)
        x = self.ln2(x)
        x = F.relu(x)
        out = self.fc(x[:, -1, :])
        return out