首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LightGBM:从json加载

LightGBM:从json加载
EN

Stack Overflow用户
提问于 2018-09-05 00:05:29
回答 1查看 2.4K关注 0票数 2

我正在尝试从JSON文件指针加载LightGBM.Booster,但在网上找不到示例。

代码语言:javascript
复制
    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 booster?此snippet仅显示到JSON的转储。model_from_string可能会有所帮助,但似乎需要一个booster的实例,而我在加载之前没有这个实例。

EN

回答 1

Stack Overflow用户

发布于 2018-09-05 02:19:38

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

因此,我只是通过以下方式从文本文件加载模型

代码语言:javascript
复制
gbm.save_model('model.txt')  # gbm is trained Booster instance
#  ...
bst = lgb.Booster(model_file='model.txt')

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

代码语言:javascript
复制
import pickle
pickle.dump(gbm, open('model.pkl', 'wb'))
# ...
gbm = pickle.load(open('model.pkl', 'rb'))

不幸的是,pickle文件是不可读的(或者,至少,这个文件不是那么清楚)。但总比什么都没有好。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52170236

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档