1
0
mirror of https://github.com/microsoft/qlib.git synced 2026-06-06 05:51:17 +08:00

Fix models.

This commit is contained in:
lwwang1995
2020-12-06 22:43:52 +08:00
committed by you-n-g
parent 412c9eee2e
commit 8d42092a7e
9 changed files with 45 additions and 48 deletions

Binary file not shown.

View File

@@ -56,7 +56,7 @@ task:
hidden_size: 64
num_layers: 2
dropout: 0.0
n_epochs: 2
n_epochs: 200
lr: 1e-3
early_stop: 10
batch_size: 800

Binary file not shown.

View File

@@ -164,8 +164,8 @@ class ALSTM(Model):
self.ALSTM_model.train()
for data in data_loader:
feature = data[:,:,0:-1].to(self.device)
label = data[:,-1,-1].to(self.device)
feature = data[:, :, 0:-1].to(self.device)
label = data[:, -1, -1].to(self.device)
pred = self.ALSTM_model(feature.float())
loss = self.loss_fn(pred, label)
@@ -184,9 +184,9 @@ class ALSTM(Model):
for data in data_loader:
feature = data[:,:,0:-1].to(self.device)
feature = data[:, :, 0:-1].to(self.device)
# 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())
loss = self.loss_fn(pred, label)
@@ -203,12 +203,12 @@ class ALSTM(Model):
evals_result=dict(),
verbose=True,
save_path=None,
):
):
dl_train = dataset.prepare("train", data_key=DataHandlerLP.DK_L)
dl_valid = dataset.prepare("valid", data_key=DataHandlerLP.DK_L)
dl_train.config(fillna_type="ffill+bfill") # process nan brought by dataloader
dl_valid.config(fillna_type="ffill+bfill") # process nan brought by dataloader
dl_train.config(fillna_type="ffill+bfill") # process nan brought by dataloader
dl_valid.config(fillna_type="ffill+bfill") # process nan brought by dataloader
train_loader = DataLoader(dl_train, batch_size=self.batch_size, shuffle=True, num_workers=self.n_jobs)
valid_loader = DataLoader(dl_valid, batch_size=self.batch_size, shuffle=False, num_workers=self.n_jobs)
@@ -268,7 +268,7 @@ class ALSTM(Model):
for data in test_loader:
feature = data[:,:,0:-1].to(self.device)
feature = data[:, :, 0:-1].to(self.device)
with torch.no_grad():
if self.use_gpu:

View File

@@ -183,8 +183,8 @@ class GATs(Model):
self.ALSTM_model.train()
for data in data_loader:
feature = data[:,:,0:-1].to(self.device)
label = data[:,-1,-1].to(self.device)
feature = data[:, :, 0:-1].to(self.device)
label = data[:, -1, -1].to(self.device)
pred = self.ALSTM_model(feature.float())
loss = self.loss_fn(pred, label)
@@ -203,9 +203,9 @@ class GATs(Model):
for data in data_loader:
feature = data[:,:,0:-1].to(self.device)
feature = data[:, :, 0:-1].to(self.device)
# 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())
loss = self.loss_fn(pred, label)
@@ -227,8 +227,8 @@ class GATs(Model):
dl_train = dataset.prepare("train", data_key=DataHandlerLP.DK_L)
dl_valid = dataset.prepare("valid", data_key=DataHandlerLP.DK_L)
dl_train.config(fillna_type="ffill+bfill") # process nan brought by dataloader
dl_valid.config(fillna_type="ffill+bfill") # process nan brought by dataloader
dl_train.config(fillna_type="ffill+bfill") # process nan brought by dataloader
dl_valid.config(fillna_type="ffill+bfill") # process nan brought by dataloader
train_loader = DataLoader(dl_train, batch_size=self.batch_size, shuffle=True, num_workers=self.n_jobs)
valid_loader = DataLoader(dl_valid, batch_size=self.batch_size, shuffle=False, num_workers=self.n_jobs)
@@ -308,7 +308,7 @@ class GATs(Model):
for data in test_loader:
feature = data[:,:,0:-1].to(self.device)
feature = data[:, :, 0:-1].to(self.device)
with torch.no_grad():
if self.use_gpu:

View File

@@ -164,8 +164,8 @@ class GRU(Model):
self.GRU_model.train()
for data in data_loader:
feature = data[:,:,0:-1].to(self.device)
label = data[:,-1,-1].to(self.device)
feature = data[:, :, 0:-1].to(self.device)
label = data[:, -1, -1].to(self.device)
pred = self.GRU_model(feature.float())
loss = self.loss_fn(pred, label)
@@ -184,9 +184,9 @@ class GRU(Model):
for data in data_loader:
feature = data[:,:,0:-1].to(self.device)
feature = data[:, :, 0:-1].to(self.device)
# 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())
loss = self.loss_fn(pred, label)
@@ -203,12 +203,12 @@ class GRU(Model):
evals_result=dict(),
verbose=True,
save_path=None,
):
):
dl_train = dataset.prepare("train", data_key=DataHandlerLP.DK_L)
dl_valid = dataset.prepare("valid", data_key=DataHandlerLP.DK_L)
dl_train.config(fillna_type="ffill+bfill") # process nan brought by dataloader
dl_valid.config(fillna_type="ffill+bfill") # process nan brought by dataloader
dl_train.config(fillna_type="ffill+bfill") # process nan brought by dataloader
dl_valid.config(fillna_type="ffill+bfill") # process nan brought by dataloader
train_loader = DataLoader(dl_train, batch_size=self.batch_size, shuffle=True, num_workers=self.n_jobs)
valid_loader = DataLoader(dl_valid, batch_size=self.batch_size, shuffle=False, num_workers=self.n_jobs)
@@ -251,8 +251,7 @@ class GRU(Model):
self.logger.info("best score: %.6lf @ %d" % (best_score, best_epoch))
self.GRU_model.load_state_dict(best_param)
# torch.save(best_param, save_path)
torch.save(best_param, '/home/lewwang/qlib/examples/benchmarks/GRU/csi300_gru_ts.pkl')
torch.save(best_param, save_path)
if self.use_gpu:
torch.cuda.empty_cache()
@@ -269,7 +268,7 @@ class GRU(Model):
for data in test_loader:
feature = data[:,:,0:-1].to(self.device)
feature = data[:, :, 0:-1].to(self.device)
with torch.no_grad():
if self.use_gpu:

View File

@@ -164,8 +164,8 @@ class LSTM(Model):
self.LSTM_model.train()
for data in data_loader:
feature = data[:,:,0:-1].to(self.device)
label = data[:,-1,-1].to(self.device)
feature = data[:, :, 0:-1].to(self.device)
label = data[:, -1, -1].to(self.device)
pred = self.LSTM_model(feature.float())
loss = self.loss_fn(pred, label)
@@ -184,9 +184,9 @@ class LSTM(Model):
for data in data_loader:
feature = data[:,:,0:-1].to(self.device)
feature = data[:, :, 0:-1].to(self.device)
# feature[torch.isnan(feature)] = 0
label = data[:,-1,-1].to(self.device)
label = data[:, -1, -1].to(self.device)
pred = self.LSTM_model(feature.float())
loss = self.loss_fn(pred, label)
@@ -203,12 +203,12 @@ class LSTM(Model):
evals_result=dict(),
verbose=True,
save_path=None,
):
):
dl_train = dataset.prepare("train", data_key=DataHandlerLP.DK_L)
dl_valid = dataset.prepare("valid", data_key=DataHandlerLP.DK_L)
dl_train.config(fillna_type="ffill+bfill") # process nan brought by dataloader
dl_valid.config(fillna_type="ffill+bfill") # process nan brought by dataloader
dl_train.config(fillna_type="ffill+bfill") # process nan brought by dataloader
dl_valid.config(fillna_type="ffill+bfill") # process nan brought by dataloader
train_loader = DataLoader(dl_train, batch_size=self.batch_size, shuffle=True, num_workers=self.n_jobs)
valid_loader = DataLoader(dl_valid, batch_size=self.batch_size, shuffle=False, num_workers=self.n_jobs)
@@ -251,9 +251,7 @@ class LSTM(Model):
self.logger.info("best score: %.6lf @ %d" % (best_score, best_epoch))
self.LSTM_model.load_state_dict(best_param)
# torch.save(best_param, save_path)
torch.save(best_param, '/home/lewwang/qlib/examples/benchmarks/LSTM/csi300_lstm_ts.pkl')
torch.save(best_param, save_path)
if self.use_gpu:
torch.cuda.empty_cache()
@@ -270,7 +268,7 @@ class LSTM(Model):
for data in test_loader:
feature = data[:,:,0:-1].to(self.device)
feature = data[:, :, 0:-1].to(self.device)
with torch.no_grad():
if self.use_gpu:
@@ -300,4 +298,4 @@ class LSTMModel(nn.Module):
def forward(self, x):
out, _ = self.rnn(x)
return self.fc_out(out[:, -1, :]).squeeze()
return self.fc_out(out[:, -1, :]).squeeze()

View File

@@ -164,8 +164,8 @@ class SFM(Model):
self.SFM_model.train()
for data in data_loader:
feature = data[:,:,0:-1].to(self.device)
label = data[:,-1,-1].to(self.device)
feature = data[:, :, 0:-1].to(self.device)
label = data[:, -1, -1].to(self.device)
pred = self.SFM_model(feature.float())
loss = self.loss_fn(pred, label)
@@ -184,9 +184,9 @@ class SFM(Model):
for data in data_loader:
feature = data[:,:,0:-1].to(self.device)
feature = data[:, :, 0:-1].to(self.device)
# feature[torch.isnan(feature)] = 0
label = data[:,-1,-1].to(self.device)
label = data[:, -1, -1].to(self.device)
pred = self.SFM_model(feature.float())
loss = self.loss_fn(pred, label)
@@ -203,12 +203,12 @@ class SFM(Model):
evals_result=dict(),
verbose=True,
save_path=None,
):
):
dl_train = dataset.prepare("train", data_key=DataHandlerLP.DK_L)
dl_valid = dataset.prepare("valid", data_key=DataHandlerLP.DK_L)
dl_train.config(fillna_type="ffill+bfill") # process nan brought by dataloader
dl_valid.config(fillna_type="ffill+bfill") # process nan brought by dataloader
dl_train.config(fillna_type="ffill+bfill") # process nan brought by dataloader
dl_valid.config(fillna_type="ffill+bfill") # process nan brought by dataloader
train_loader = DataLoader(dl_train, batch_size=self.batch_size, shuffle=True, num_workers=self.n_jobs)
valid_loader = DataLoader(dl_valid, batch_size=self.batch_size, shuffle=False, num_workers=self.n_jobs)
@@ -268,7 +268,7 @@ class SFM(Model):
for data in test_loader:
feature = data[:,:,0:-1].to(self.device)
feature = data[:, :, 0:-1].to(self.device)
with torch.no_grad():
if self.use_gpu:
@@ -431,4 +431,4 @@ class SFM_Model(nn.Module):
array = np.array([float(ii) / self.freq_dim for ii in range(self.freq_dim)])
constants.append(torch.tensor(array).to(self.device))
self.states[5:] = constants
self.states[5:] = constants

View File

@@ -145,7 +145,7 @@ class SignalRecord(RecordTemp):
if not isinstance(raw_label, pd.DataFrame):
index = raw_label.get_index()
raw_label = raw_label.data.loc[index]
raw_label = raw_label.iloc[:,-1:]
raw_label = raw_label.iloc[:, -1:]
self.recorder.save_objects(**{"label.pkl": raw_label})