R/xgb.Booster.R
xgb.Booster.complete.Rd
It attempts to complete an xgb.Booster
object by restoring either its missing
raw model memory dump (when it has no raw
data but its xgb.Booster.handle
is valid)
or its missing internal handle (when its xgb.Booster.handle
is not valid
but it has a raw Booster memory dump).
xgb.Booster.complete(object, saveraw = TRUE)
object | object of class |
---|---|
saveraw | a flag indicating whether to append |
An object of xgb.Booster
class.
While this method is primarily for internal use, it might be useful in some practical situations.
E.g., when an xgb.Booster
model is saved as an R object and then is loaded as an R object,
its handle (pointer) to an internal xgboost model would be invalid. The majority of xgboost methods
should still work for such a model object since those methods would be using
xgb.Booster.complete
internally. However, one might find it to be more efficient to call the
xgb.Booster.complete
function explicitly once after loading a model as an R-object.
That would prevent further repeated implicit reconstruction of an internal booster model.
data(agaricus.train, package='xgboost') bst <- xgboost(data = agaricus.train$data, label = agaricus.train$label, max_depth = 2, eta = 1, nthread = 2, nrounds = 2, objective = "binary:logistic")#> [1] train-error:0.046522 #> [2] train-error:0.022263saveRDS(bst, "xgb.model.rds") bst1 <- readRDS("xgb.model.rds") if (file.exists("xgb.model.rds")) file.remove("xgb.model.rds")#> [1] TRUE#> <pointer: (nil)> #> attr(,"class") #> [1] "xgb.Booster.handle"bst1 <- xgb.Booster.complete(bst1) # now the handle points to a valid internal booster model: print(bst1$handle)#> <pointer: 0xf68f620> #> attr(,"class") #> [1] "xgb.Booster.handle"