# Incompatible changes between v1.2 and v1.1 ## User-facing APIs The user-facing APIs are changed between v1.2 and v1.1. The major changes are: 1. v1.2 abstracts `neural_compressor.common.Model` concept to cover those cases whose weight and graph files are stored separately. 2. v1.2 unifies the calling style by setting model, calibration dataloader, evaluation dataloader, and metric through `quantizer` attributes rather than passing as function inputs. Refer to below examples for details. ```python # user facing API example in v1.1 quantizer = Quantization('/path/to/user.yaml') ds = dataset('/path/to/dataset') dataloader = quantizer.dataloader(ds, batch_size=100) quantizer.metric('metric', metric) q_model = quantizer('/path/to/model', q_dataloader = dataloader, eval_dataloader = dataloader) ... # user to write framework specific code to save q_model ``` ```python # user facing API example in v1.2 quantizer = Quantization(conf.yaml) quantizer.model = '/path/to/model' dl = dataset('/path/to/dataset') quantizer.calib_dataloader = common.DataLoader(dl, batch_size=32) quantizer.eval_dataloader = common.DataLoader(dl, batch_size=32) quantizer.metric = common.Metric(custom_metric) q_model = quantizer.fit() q_model.save('/path/to/output/dir') # explicitly call to save q_model ``` ## Built-in transform/dataset/metric APIs v1.2 refines Neural Compressor built-in transform/dataset/metric to unify APIs cross different framework backends. Refer to [dataset](./dataset.md), [transform](./transform.md), and [metric](./metric.md) to learn how to use them in yaml or code.