Сохранение и загрузка¶
Сохранение и загрузка модели без потери метаданных. Стандартные save_model и load_model сохраняют деревья, но best_iteration_, имена колонок и порядок меток классов могут потеряться. cbx.io.save записывает рядом с файлом модели небольшой JSON-файл с метаданными, а cbx.io.load его читает.
from catboost_utils.io import save, load
save(model, "artifact.cbm") # запишет artifact.cbm и artifact.cbm.meta.json
restored = load("artifact.cbm") # восстановит best_iteration и выберет нужный класс модели
В JSON-файл сохраняются: версия catboost_utils, версия catboost, тип модели (classifier, regressor или просто catboost), имена колонок, индексы категориальных колонок, имена классов, best_iteration, параметры обучения и время сохранения.
load работает и без файла с метаданными — просто запишет предупреждение в лог. Это значит, что любые .cbm-файлы, сохранённые без cbx.io.save, тоже загружаются, но без метаданных.
catboost_utils.io.persistence.save ¶
Save model to path and write a metadata sidecar.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
model
|
Any
|
a fitted CatBoost / CBX model. |
required |
path
|
str | PathLike[str]
|
target file path. |
required |
format
|
str
|
forwarded to |
'cbm'
|
catboost_utils.io.persistence.load ¶
Load a model previously saved via save().
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
path
|
str | PathLike[str]
|
model file path. |
required |
format
|
str
|
passed to CatBoost's |
'cbm'
|
Returns:
| Type | Description |
|---|---|
CatBoost
|
A fitted |
CatBoost
|
instance with metadata reattached when a sidecar is present. |