LightGBM:从json加载

时间:2018-09-04 16:05:29

标签: python-3.x lightgbm

我正在尝试从JSON文件指针加载LightGBM.Booster,但无法在线找到示例。

    import json ,lightgbm
    import numpy as np
    X_train = np.arange(0, 200).reshape((100, 2))
    y_train = np.tile([0, 1], 50)
    tr_dataset = lightgbm.Dataset(X_train, label=y_train)
    booster = lightgbm.train({}, train_set=tr_dataset)
    model_json = booster.dump_model()
    with open('model.json', 'w+') as f:
        json.dump(model_json, f, indent=4)
    with open('model.json') as f2:
        model_json = json.load(f2)

如何从f2model_json创建lightGBM增强器?此snippet仅显示转储为JSON。 model_from_string可能会有所帮助,但似乎需要booster的实例,在加载之前我没有这个实例。

1 个答案:

答案 0 :(得分:2)

没有直接从json创建Booster的方法。在源代码或文档中没有这样的方法,也没有github问题。

因此,我只是通过

从文本文件加载模型
gbm.save_model('model.txt')  # gbm is trained Booster instance
#  ...
bst = lgb.Booster(model_file='model.txt')

或使用pickle转储和加载模型:

import pickle
pickle.dump(gbm, open('model.pkl', 'wb'))
# ...
gbm = pickle.load(open('model.pkl', 'rb'))

不幸的是,泡菜文件不可读(或者至少不是那么清晰)。但这总比没有好。