From d45aa86fb5b2c4d81399b37074827d9765fcf0a0 Mon Sep 17 00:00:00 2001 From: lwwang1995 Date: Thu, 12 Nov 2020 13:11:14 +0800 Subject: [PATCH 1/3] Update GRU model. --- qlib/contrib/model/pytorch_gru.py | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/qlib/contrib/model/pytorch_gru.py b/qlib/contrib/model/pytorch_gru.py index 7b999d0a1..fb422f491 100755 --- a/qlib/contrib/model/pytorch_gru.py +++ b/qlib/contrib/model/pytorch_gru.py @@ -293,22 +293,6 @@ class GRU(Model): preds = self.gru_model(x_test).detach().numpy() return pd.Series(preds, index=index) - def save(self, filename, **kwargs): - with save_multiple_parts_file(filename) as model_dir: - model_path = os.path.join(model_dir, os.path.split(model_dir)[-1]) - # Save model - torch.save(self.gru_model.state_dict(), model_path) - - def load(self, buffer, **kwargs): - with unpack_archive_with_buffer(buffer) as model_dir: - # Get model name - _model_name = os.path.splitext(list(filter(lambda x: x.startswith("model.bin"), os.listdir(model_dir)))[0])[ - 0 - ] - _model_path = os.path.join(model_dir, _model_name) - # Load model - self.gru_model.load_state_dict(torch.load(_model_path)) - self._fitted = True class AverageMeter(object): From 063bfd4621639dd7918be200dcdb6cd9cfb88a43 Mon Sep 17 00:00:00 2001 From: lwwang1995 Date: Thu, 12 Nov 2020 13:17:10 +0800 Subject: [PATCH 2/3] Update processor. --- qlib/data/dataset/processor.py | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) mode change 100644 => 100755 qlib/data/dataset/processor.py diff --git a/qlib/data/dataset/processor.py b/qlib/data/dataset/processor.py old mode 100644 new mode 100755 index a9e404b7a..2be35b731 --- a/qlib/data/dataset/processor.py +++ b/qlib/data/dataset/processor.py @@ -112,16 +112,13 @@ class Fillna(Processor): """Process infinity """ def __call__(self, df): - def fill_na(data): - def process_na(df): - for col in df.columns: - # FIXME: Such behavior is very weird - df[col] = df[col].fillna(0) - return df + def fill_na(df): + for col in df.columns: + # FIXME: Such behavior is very weird + df[col] = df[col].fillna(0) - data = datetime_groupby_apply(data, process_na) - data.sort_index(inplace=True) - return data + df.sort_index(inplace=True) + return df return fill_na(df) From 54a256d3bc11099820fc044c4104d65e714ab71f Mon Sep 17 00:00:00 2001 From: lwwang1995 Date: Thu, 12 Nov 2020 13:20:49 +0800 Subject: [PATCH 3/3] Update processor. --- qlib/data/dataset/processor.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qlib/data/dataset/processor.py b/qlib/data/dataset/processor.py index 2be35b731..66db55323 100755 --- a/qlib/data/dataset/processor.py +++ b/qlib/data/dataset/processor.py @@ -160,7 +160,7 @@ class ZscoreNorm(Processor): df = fetch_df_by_index(df, slice(self.fit_start_time, self.fit_end_time), level="datetime") cols = get_group_columns(df, self.fields_group) self.mean_train = np.nanmean(df[cols].values, axis=0) - self.std_train = np.nanstd(_df[cols].values, axis=0) + self.std_train = np.nanstd(df[cols].values, axis=0) self.ignore = self.std_train == 0 self.cols = cols