mirror of
https://github.com/microsoft/qlib.git
synced 2026-06-06 05:51:17 +08:00
Fix models.
This commit is contained in:
BIN
examples/benchmarks/GRU/csi300_gru_ts.pkl
Normal file
BIN
examples/benchmarks/GRU/csi300_gru_ts.pkl
Normal file
Binary file not shown.
@@ -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
|
||||
|
||||
BIN
examples/benchmarks/LSTM/csi300_lstm_ts.pkl
Normal file
BIN
examples/benchmarks/LSTM/csi300_lstm_ts.pkl
Normal file
Binary file not shown.
@@ -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:
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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})
|
||||
|
||||
|
||||
Reference in New Issue
Block a user