Wang's blog

其它 - 序列化

Published on

简介

Qlib支持将DataHandlerDataSetProcessorModel等对象的状态转存至硬盘以及重新载入它们。

序列化类

Qlib提供了基类Serializable,它的状态可以以pickle格式转存至硬盘或从硬盘载入。当转存一个Serializable类的实例时,该实例的所有不以下划线开头的属性将被保存至硬盘。然而,用户可以通过使用config方法或覆盖default_dump_all属性阻止这一特性。

用户也可以覆盖pickle_backend属性以选择pickle后端,支持的值有pickle(默认、常用)与dill(转存更多东西,比如函数)。

例子

可以使用如下代码序列化DatasetH

##=============转存数据集=============
dataset.to_pickle(path="dataset.pkl") # dataset是qlib.data.dataset.DatasetH类的实例

##=============载入数据集=============
with open("dataset.pkl", "rb") as file_dataset:
    dataset = pickle.load(file_dataset)