| 173 | self.train_optimizer.step() |
| 174 | |
| 175 | def test_epoch(self, data_loader): |
| 176 | self.LSTM_model.eval() |
| 177 | |
| 178 | scores = [] |
| 179 | losses = [] |
| 180 | |
| 181 | for data, weight in data_loader: |
| 182 | feature = data[:, :, 0:-1].to(self.device) |
| 183 | # feature[torch.isnan(feature)] = 0 |
| 184 | label = data[:, -1, -1].to(self.device) |
| 185 | |
| 186 | pred = self.LSTM_model(feature.float()) |
| 187 | loss = self.loss_fn(pred, label, weight.to(self.device)) |
| 188 | losses.append(loss.item()) |
| 189 | |
| 190 | score = self.metric_fn(pred, label) |
| 191 | scores.append(score.item()) |
| 192 | |
| 193 | return np.mean(losses), np.mean(scores) |
| 194 | |
| 195 | def fit( |
| 196 | self, |