mirror of
https://github.com/microsoft/qlib.git
synced 2026-07-16 17:12:20 +08:00
Add torch.no_grad for evaluation
This commit is contained in:
@@ -208,12 +208,13 @@ class ALSTM(Model):
|
|||||||
feature = torch.from_numpy(x_values[indices[i : i + self.batch_size]]).float().to(self.device)
|
feature = torch.from_numpy(x_values[indices[i : i + self.batch_size]]).float().to(self.device)
|
||||||
label = torch.from_numpy(y_values[indices[i : i + self.batch_size]]).float().to(self.device)
|
label = torch.from_numpy(y_values[indices[i : i + self.batch_size]]).float().to(self.device)
|
||||||
|
|
||||||
pred = self.ALSTM_model(feature)
|
with torch.no_grad():
|
||||||
loss = self.loss_fn(pred, label)
|
pred = self.ALSTM_model(feature)
|
||||||
losses.append(loss.item())
|
loss = self.loss_fn(pred, label)
|
||||||
|
losses.append(loss.item())
|
||||||
|
|
||||||
score = self.metric_fn(pred, label)
|
score = self.metric_fn(pred, label)
|
||||||
scores.append(score.item())
|
scores.append(score.item())
|
||||||
|
|
||||||
return np.mean(losses), np.mean(scores)
|
return np.mean(losses), np.mean(scores)
|
||||||
|
|
||||||
@@ -295,10 +296,7 @@ class ALSTM(Model):
|
|||||||
x_batch = torch.from_numpy(x_values[begin:end]).float().to(self.device)
|
x_batch = torch.from_numpy(x_values[begin:end]).float().to(self.device)
|
||||||
|
|
||||||
with torch.no_grad():
|
with torch.no_grad():
|
||||||
if self.use_gpu:
|
pred = self.ALSTM_model(x_batch).detach().cpu().numpy()
|
||||||
pred = self.ALSTM_model(x_batch).detach().cpu().numpy()
|
|
||||||
else:
|
|
||||||
pred = self.ALSTM_model(x_batch).detach().numpy()
|
|
||||||
|
|
||||||
preds.append(pred)
|
preds.append(pred)
|
||||||
|
|
||||||
|
|||||||
@@ -195,12 +195,13 @@ class ALSTM(Model):
|
|||||||
# feature[torch.isnan(feature)] = 0
|
# feature[torch.isnan(feature)] = 0
|
||||||
label = data[:, -1, -1].to(self.device)
|
label = data[:, -1, -1].to(self.device)
|
||||||
|
|
||||||
pred = self.ALSTM_model(feature.float())
|
with torch.no_grad():
|
||||||
loss = self.loss_fn(pred, label)
|
pred = self.ALSTM_model(feature.float())
|
||||||
losses.append(loss.item())
|
loss = self.loss_fn(pred, label)
|
||||||
|
losses.append(loss.item())
|
||||||
|
|
||||||
score = self.metric_fn(pred, label)
|
score = self.metric_fn(pred, label)
|
||||||
scores.append(score.item())
|
scores.append(score.item())
|
||||||
|
|
||||||
return np.mean(losses), np.mean(scores)
|
return np.mean(losses), np.mean(scores)
|
||||||
|
|
||||||
|
|||||||
@@ -208,12 +208,13 @@ class GRU(Model):
|
|||||||
feature = torch.from_numpy(x_values[indices[i : i + self.batch_size]]).float().to(self.device)
|
feature = torch.from_numpy(x_values[indices[i : i + self.batch_size]]).float().to(self.device)
|
||||||
label = torch.from_numpy(y_values[indices[i : i + self.batch_size]]).float().to(self.device)
|
label = torch.from_numpy(y_values[indices[i : i + self.batch_size]]).float().to(self.device)
|
||||||
|
|
||||||
pred = self.gru_model(feature)
|
with torch.no_grad():
|
||||||
loss = self.loss_fn(pred, label)
|
pred = self.gru_model(feature)
|
||||||
losses.append(loss.item())
|
loss = self.loss_fn(pred, label)
|
||||||
|
losses.append(loss.item())
|
||||||
|
|
||||||
score = self.metric_fn(pred, label)
|
score = self.metric_fn(pred, label)
|
||||||
scores.append(score.item())
|
scores.append(score.item())
|
||||||
|
|
||||||
return np.mean(losses), np.mean(scores)
|
return np.mean(losses), np.mean(scores)
|
||||||
|
|
||||||
|
|||||||
@@ -195,12 +195,13 @@ class GRU(Model):
|
|||||||
# feature[torch.isnan(feature)] = 0
|
# feature[torch.isnan(feature)] = 0
|
||||||
label = data[:, -1, -1].to(self.device)
|
label = data[:, -1, -1].to(self.device)
|
||||||
|
|
||||||
pred = self.GRU_model(feature.float())
|
with torch.no_grad():
|
||||||
loss = self.loss_fn(pred, label)
|
pred = self.GRU_model(feature.float())
|
||||||
losses.append(loss.item())
|
loss = self.loss_fn(pred, label)
|
||||||
|
losses.append(loss.item())
|
||||||
|
|
||||||
score = self.metric_fn(pred, label)
|
score = self.metric_fn(pred, label)
|
||||||
scores.append(score.item())
|
scores.append(score.item())
|
||||||
|
|
||||||
return np.mean(losses), np.mean(scores)
|
return np.mean(losses), np.mean(scores)
|
||||||
|
|
||||||
@@ -280,10 +281,7 @@ class GRU(Model):
|
|||||||
feature = data[:, :, 0:-1].to(self.device)
|
feature = data[:, :, 0:-1].to(self.device)
|
||||||
|
|
||||||
with torch.no_grad():
|
with torch.no_grad():
|
||||||
if self.use_gpu:
|
pred = self.GRU_model(feature.float()).detach().cpu().numpy()
|
||||||
pred = self.GRU_model(feature.float()).detach().cpu().numpy()
|
|
||||||
else:
|
|
||||||
pred = self.GRU_model(feature.float()).detach().numpy()
|
|
||||||
|
|
||||||
preds.append(pred)
|
preds.append(pred)
|
||||||
|
|
||||||
|
|||||||
@@ -219,7 +219,7 @@ class TabnetModel(Model):
|
|||||||
self.logger.info("best score: %.6lf @ %d" % (best_score, best_epoch))
|
self.logger.info("best score: %.6lf @ %d" % (best_score, best_epoch))
|
||||||
self.tabnet_model.load_state_dict(best_param)
|
self.tabnet_model.load_state_dict(best_param)
|
||||||
torch.save(best_param, save_path)
|
torch.save(best_param, save_path)
|
||||||
|
|
||||||
if self.use_gpu:
|
if self.use_gpu:
|
||||||
torch.cuda.empty_cache()
|
torch.cuda.empty_cache()
|
||||||
|
|
||||||
@@ -272,12 +272,12 @@ class TabnetModel(Model):
|
|||||||
label = y_values[indices[i : i + self.batch_size]].float().to(self.device)
|
label = y_values[indices[i : i + self.batch_size]].float().to(self.device)
|
||||||
priors = torch.ones(self.batch_size, self.d_feat).to(self.device)
|
priors = torch.ones(self.batch_size, self.d_feat).to(self.device)
|
||||||
with torch.no_grad():
|
with torch.no_grad():
|
||||||
pred = self.tabnet_model(feature, priors)
|
pred = self.tabnet_model(feature, priors)
|
||||||
loss = self.loss_fn(pred, label)
|
loss = self.loss_fn(pred, label)
|
||||||
losses.append(loss.item())
|
losses.append(loss.item())
|
||||||
|
|
||||||
score = self.metric_fn(pred, label)
|
score = self.metric_fn(pred, label)
|
||||||
scores.append(score.item())
|
scores.append(score.item())
|
||||||
|
|
||||||
return np.mean(losses), np.mean(scores)
|
return np.mean(losses), np.mean(scores)
|
||||||
|
|
||||||
@@ -361,10 +361,10 @@ class TabnetModel(Model):
|
|||||||
S_mask = S_mask.to(self.device)
|
S_mask = S_mask.to(self.device)
|
||||||
priors = 1 - S_mask
|
priors = 1 - S_mask
|
||||||
with torch.no_grad():
|
with torch.no_grad():
|
||||||
(vec, sparse_loss) = self.tabnet_model(feature, priors)
|
(vec, sparse_loss) = self.tabnet_model(feature, priors)
|
||||||
f = self.tabnet_decoder(vec)
|
f = self.tabnet_decoder(vec)
|
||||||
|
|
||||||
loss = self.pretrain_loss_fn(label, f, S_mask)
|
loss = self.pretrain_loss_fn(label, f, S_mask)
|
||||||
losses.append(loss.item())
|
losses.append(loss.item())
|
||||||
|
|
||||||
return np.mean(losses)
|
return np.mean(losses)
|
||||||
|
|||||||
Reference in New Issue
Block a user