Spaces:
Sleeping
Sleeping
| # 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 | |