我正在尝试从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)如何从f2或model_json创建lightGBM booster?此snippet仅显示到JSON的转储。model_from_string可能会有所帮助,但似乎需要一个booster的实例,而我在加载之前没有这个实例。
发布于 2018-09-05 02:19:38
没有这样的方法可以直接从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'))不幸的是,pickle文件是不可读的(或者,至少,这个文件不是那么清楚)。但总比什么都没有好。
https://stackoverflow.com/questions/52170236
复制相似问题