Saving and Loading
Alibi Detect includes support for saving and loading detectors to disk. To
save a detector, simply call the save_detector
method and provide a path to a directory (a new
one will be created if it doesn’t exist):
from alibi_detect.od import OutlierVAE
from alibi_detect.saving import save_detector
od = OutlierVAE(...)
filepath = './my_detector/'
save_detector(od, filepath)
To load a previously saved detector, use the load_detector
method and provide it with the path to the detector’s
directory:
from alibi_detect.saving import load_detector
filepath = './my_detector/'
od = load_detector(filepath)
Warning
When loading a saved detector, a warning will be issued if the runtime alibi-detect version is different from the version used to save the detector. It is highly recommended to use the same alibi-detect, Python and dependency versions as were used to save the detector to avoid potential bugs and incompatibilities.
Formats
Detectors can be saved using two formats:
Config format: For drift detectors, by default
save_detector
serializes the detector via a config file namedconfig.toml
, stored infilepath
. The TOML format is human-readable, which makes the config files useful for record keeping, and allows a detector to be edited before it is reloaded. For more details, see Detector Configuration Files.Legacy format: Outlier and adversarial detectors are saved to dill files stored within
filepath
. Drift detectors can also be saved in this legacy format by runningsave_detector
withlegacy=True
. Loading is performed in the same way, by simply runningload_detector(filepath)
.
Supported detectors
The following tables list the current state of save/load support for each detector. Adding full support for the remaining detectors is in the Roadmap.
Detector |
Legacy save/load |
Config save/load |
---|---|---|
✅ |
✅ |
|
✅ |
✅ |
|
✅ |
✅ |
|
❌ |
✅ |
|
✅ |
✅ |
|
❌ |
✅ |
|
✅ |
✅ |
|
✅ |
✅ |
|
✅ |
✅ |
|
❌ |
✅ |
|
❌ |
✅ |
|
❌ |
✅ |
|
❌ |
✅ |
|
❌ |
✅ |
|
❌ |
✅ |
|
❌ |
✅ |
Detector |
Legacy save/load |
Config save/load |
---|---|---|
✅ |
❌ |
|
✅ |
❌ |
|
✅ |
❌ |
|
✅ |
❌ |
|
✅ |
❌ |
|
✅ |
❌ |
|
✅ |
❌ |
|
✅ |
❌ |
|
✅ |
❌ |
|
✅ |
❌ |
Detector |
Legacy save/load |
Config save/load |
---|---|---|
✅ |
❌ |
|
✅ |
❌ |
Note
Saving/loading of detectors using PyTorch models and/or a PyTorch backend is currently not supported.