Description
When using init_model inside lgb.cv, an error will occur:
Error in dataset$get_field(field_name = field_name) : Cannot perform Dataset$get_field() before constructing Dataset.
Reproducible example
df_temp <- data.matrix(mtcars[, c('cyl', 'disp', 'hp')])
label_temp <- mtcars$mpg
dtrain <- lgb.Dataset(data = df_temp, label = label_temp, free_raw_data = FALSE)
dtrain$construct()
# Train the init model first using the same constructed dataset
params <- list(
learning_rate = 0.05,
num_leaves = 4,
max_depth = 2,
verbose = -1
)
init_model <- lgb.train(
params = params,
data = dtrain,
nrounds = 100
)
# Force construction again just to be sure (sometimes the pointer gets stale)
dtrain$construct()
# Now run lgb.cv
cv_result <- lgb.cv(
params = params,
data = dtrain,
init_model = init_model,
nrounds = 50,
nfold = 5
)
Environment info
LightGBM version or commit hash:
Command(s) you used to install LightGBM
Additional Comments
Adding init_model in lgb.train works as intended.
df_temp <- data.matrix(mtcars[, c('cyl', 'disp', 'hp')])
label_temp <- mtcars$mpg
dtrain <- lgb.Dataset(data = df_temp, label = label_temp, free_raw_data = FALSE)
dtrain$construct()
# Train the init model first using the same constructed dataset
params <- list(
learning_rate = 0.05,
num_leaves = 4,
max_depth = 2,
verbose = -1
)
init_model <- lgb.train(
params = params,
data = dtrain,
nrounds = 100
)
# Force construction again just to be sure (sometimes the pointer gets stale)
dtrain$construct()
# Now run lgb.cv
cv_result <- lgb.train(
params = params,
data = dtrain,
init_model = init_model,
nrounds = 50
)
Description
When using
init_modelinsidelgb.cv, an error will occur:Reproducible example
Environment info
LightGBM version or commit hash:
Command(s) you used to install LightGBM
Additional Comments
Adding
init_modelinlgb.trainworks as intended.