From 77a42b99c97f7de9fec84195636e37e984563b15 Mon Sep 17 00:00:00 2001 From: "Cheng, Penghui" Date: Tue, 13 Dec 2022 15:28:46 +0800 Subject: [PATCH 1/3] Fixed calibration sampling size error Signed-off-by: Cheng, Penghui --- neural_compressor/config.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/neural_compressor/config.py b/neural_compressor/config.py index dd79b45db56..51225f95206 100644 --- a/neural_compressor/config.py +++ b/neural_compressor/config.py @@ -469,6 +469,8 @@ def calibration_sampling_size(self): @calibration_sampling_size.setter def calibration_sampling_size(self, sampling_size): if check_value('calibration_sampling_size', sampling_size, int): + if isinstance(sampling_size, int): + sampling_size =[sampling_size] self._calibration_sampling_size = sampling_size @property From 365a2674778b8f42159062d7163e58294ecdfbbb Mon Sep 17 00:00:00 2001 From: "Cheng, Penghui" Date: Tue, 13 Dec 2022 15:59:55 +0800 Subject: [PATCH 2/3] Update training fit API docstring Signed-off-by: Cheng, Penghui --- neural_compressor/training.py | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/neural_compressor/training.py b/neural_compressor/training.py index e0b60eb190e..07494949308 100644 --- a/neural_compressor/training.py +++ b/neural_compressor/training.py @@ -35,22 +35,23 @@ class CompressionManager: examples: import neural_compressor.training.prepare_compression compression_manager = prepare_compression(conf, model) + compression_manager.callbacks.on_train_begin() + model = compression_manager.model train_loop: - compression_manager.on_train_begin() for epoch in range(epochs): - compression_manager.on_epoch_begin(epoch) + compression_manager.callbacks.on_epoch_begin(epoch) for i, batch in enumerate(dataloader): - compression_manager.on_step_begin(i) + compression_manager.callbacks.on_step_begin(i) ...... - output = compression_manager.model(batch) + output = model(batch) loss = ...... - loss = compression_manager.on_after_compute_loss(batch, output, loss) + loss = compression_manager.callbacks.on_after_compute_loss(batch, output, loss) loss.backward() - compression_manager.on_before_optimizer_step() + compression_manager.callbacks.on_before_optimizer_step() optimizer.step() - compression_manager.on_step_end() - compression_manager.on_epoch_end() - compression_manager.on_train_end() + compression_manager.callbacks.on_step_end() + compression_manager.callbacks.on_epoch_end() + compression_manager.callbacks.on_train_end() compression_manager.save("path_to_save") """ def __init__(self, component): From 3ed47f0e5773f1cbd2eeb39f3b30425eed8996f3 Mon Sep 17 00:00:00 2001 From: "Cheng, Penghui" Date: Tue, 13 Dec 2022 17:52:20 +0800 Subject: [PATCH 3/3] Fixed IPEX examples error Signed-off-by: Cheng, Penghui --- neural_compressor/experimental/benchmark.py | 6 ++++++ neural_compressor/experimental/component.py | 7 +++++++ 2 files changed, 13 insertions(+) diff --git a/neural_compressor/experimental/benchmark.py b/neural_compressor/experimental/benchmark.py index b822359d7e7..f59f2541a85 100644 --- a/neural_compressor/experimental/benchmark.py +++ b/neural_compressor/experimental/benchmark.py @@ -497,6 +497,12 @@ def model(self, user_model): logger.warning("Force convert framework model to neural_compressor model.") self._model = NCModel(user_model, framework=self.framework) else: + # It is config of neural_compressor version < 2.0, no need in 2.0 + if cfg.model.framework == "pytorch_ipex": + from neural_compressor.model.torch_model import IPEXModel + if not isinstance(user_model, IPEXModel): + self._model = NCModel(user_model.model, framework=cfg.model.framework) + return self._model = user_model # (TODO) ugly to set these params, but tensorflow need diff --git a/neural_compressor/experimental/component.py b/neural_compressor/experimental/component.py index dec0cfc3cde..4025fc5bb90 100644 --- a/neural_compressor/experimental/component.py +++ b/neural_compressor/experimental/component.py @@ -489,6 +489,13 @@ def model(self, user_model): logger.warning("Force convert framework model to neural_compressor model.") self._model = Model(user_model, framework=self.framework) else: + # It is config of neural_compressor version < 2.0, no need in 2.0 + if self.cfg.model.framework == "pytorch_ipex": + from neural_compressor.model.torch_model import IPEXModel + if not isinstance(user_model, IPEXModel): + self._model = Model(user_model.model, framework=self.cfg.model.framework) + return + self._model = user_model if 'tensorflow' in self.framework: