为什么LightGBM会输出这样的结果:已完成的加载模型,总使用的X次迭代?

2024-03-28 22:08:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我不熟悉LightGBM模型体系结构

Finished loading model, total used 15000 iterations

每次我训练模型时,它都会打印此消息。它是由这个line打印的,我想了解它为什么加载这个模型。什么是助推器型号?它是如何训练的?为什么要加载这个模型而不是训练一个新的

这是我的密码:

lgbparams = {...}
lgbtrain = lgb.Dataset(data=self.train_x, label=self.train_y)

self.model = lgb.train(
  lgb_params, lgbtrain,
  evals_result=self.evals_result,
  valid_sets=lgbtrain,
  verbose_eval=False,
  callbacks=self.callbacks
)

找到打印此行的位置。培训后的代码后面有一行copy.deepcopy(self.model),因此LightGBM库以某种方式打印出有问题的行


Tags: 模型selfmodel体系结构trainresultusedtotal
1条回答
网友
1楼 · 发布于 2024-03-28 22:08:49

我也看过这张照片,而且是在deepcopy期间。要复制它:

import copy
import numpy as np
import lightgbm as lgb

X = np.random.rand(100,3)
y = np.random.rand(100)
train = lgb.Dataset(X, y)
model = lgb.train({"verbose": -1}, train, num_boost_round=1)

# the printout is here:
model2 = copy.deepcopy(model)

复制期间关闭打印的快速修复方法可以是:

import os
import contextlib

with open(os.devnull, "w") as f, contextlib.redirect_stdout(f):
    model2 = copy.deepcopy(model)

(我得到这个打印输出是因为我直接调用lightgbm对象上的deepcopy。)

相关问题 更多 >