From b0eee5b07833a52953e4abf0594b1e592b3da9d7 Mon Sep 17 00:00:00 2001 From: "Lv, Liang1" Date: Wed, 30 Nov 2022 22:15:13 +0800 Subject: [PATCH 1/2] Turn off ITEX optimization pass Signed-off-by: Lv, Liang1 --- neural_compressor/model/model.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/neural_compressor/model/model.py b/neural_compressor/model/model.py index 59a87d51a29..42ab9d12a27 100644 --- a/neural_compressor/model/model.py +++ b/neural_compressor/model/model.py @@ -265,6 +265,8 @@ def graph_session(model, input_tensor_names, output_tensor_names, **kwargs): from tensorflow.core.protobuf import rewriter_config_pb2 config.graph_options.rewrite_options.constant_folding = \ rewriter_config_pb2.RewriterConfig.OFF + config.graph_options.rewrite_options.use_plugin_optimizers = \ + rewriter_config_pb2.RewriterConfig.OFF sess = tf.compat.v1.Session(graph=model, config=config) input_tensor_names, output_tensor_names = validate_and_inference_input_output(\ @@ -353,6 +355,8 @@ def load_saved_model(model, saved_model_tags, input_tensor_names, output_tensor_ from tensorflow.core.protobuf import rewriter_config_pb2 config.graph_options.rewrite_options.constant_folding = \ rewriter_config_pb2.RewriterConfig.OFF + config.graph_options.rewrite_options.use_plugin_optimizers = \ + rewriter_config_pb2.RewriterConfig.OFF if not os.listdir(os.path.join(model,'variables')): sess = tf.compat.v1.Session(graph=tf.Graph(), config=config) loader = tf.compat.v1.saved_model.loader.load(sess, ["serve"], model) @@ -650,6 +654,8 @@ def checkpoint_session(model, input_tensor_names, output_tensor_names, **kwargs) from tensorflow.core.protobuf import rewriter_config_pb2 config.graph_options.rewrite_options.constant_folding = \ rewriter_config_pb2.RewriterConfig.OFF + config.graph_options.rewrite_options.use_plugin_optimizers = \ + rewriter_config_pb2.RewriterConfig.OFF graph = tf.Graph() sess = tf.compat.v1.Session(graph=graph, config=config) with graph.as_default(): From 872813d2265fe6f50d954a6906290b70224d65a0 Mon Sep 17 00:00:00 2001 From: "Lv, Liang1" Date: Thu, 1 Dec 2022 16:38:01 +0800 Subject: [PATCH 2/2] Use environment variable to disable ITEX optimization pass in calibration stage Signed-off-by: Lv, Liang1 --- neural_compressor/adaptor/tf_utils/graph_converter.py | 7 +++++++ neural_compressor/model/model.py | 6 ------ 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/neural_compressor/adaptor/tf_utils/graph_converter.py b/neural_compressor/adaptor/tf_utils/graph_converter.py index 1b834b5ae46..99dcf33b3aa 100644 --- a/neural_compressor/adaptor/tf_utils/graph_converter.py +++ b/neural_compressor/adaptor/tf_utils/graph_converter.py @@ -160,6 +160,11 @@ def _inference(self, model): Args: model(TensorflowBaseModel): input TensorflowBaseModel """ + # ITEX optimization has broken INC calibration process. + # INC needs turn off ITEX optimization pass in calibration stage. + # TODO ITEX will provide API to replace setting environment variable. + if self.itex_mode: + os.environ["ITEX_REMAPPER"] = "0" sess = model.sess iter_op = model.iter_op input_tensor = model.input_tensor @@ -238,6 +243,8 @@ def check_shape(tensor, data): feed_dict, output_tensor, self.calib_iteration) if idx + 1 == self.calib_iteration: break + if self.itex_mode: + os.environ["ITEX_REMAPPER"] = "1" def _check_tf_version(self): is_supported_version = False diff --git a/neural_compressor/model/model.py b/neural_compressor/model/model.py index 42ab9d12a27..59a87d51a29 100644 --- a/neural_compressor/model/model.py +++ b/neural_compressor/model/model.py @@ -265,8 +265,6 @@ def graph_session(model, input_tensor_names, output_tensor_names, **kwargs): from tensorflow.core.protobuf import rewriter_config_pb2 config.graph_options.rewrite_options.constant_folding = \ rewriter_config_pb2.RewriterConfig.OFF - config.graph_options.rewrite_options.use_plugin_optimizers = \ - rewriter_config_pb2.RewriterConfig.OFF sess = tf.compat.v1.Session(graph=model, config=config) input_tensor_names, output_tensor_names = validate_and_inference_input_output(\ @@ -355,8 +353,6 @@ def load_saved_model(model, saved_model_tags, input_tensor_names, output_tensor_ from tensorflow.core.protobuf import rewriter_config_pb2 config.graph_options.rewrite_options.constant_folding = \ rewriter_config_pb2.RewriterConfig.OFF - config.graph_options.rewrite_options.use_plugin_optimizers = \ - rewriter_config_pb2.RewriterConfig.OFF if not os.listdir(os.path.join(model,'variables')): sess = tf.compat.v1.Session(graph=tf.Graph(), config=config) loader = tf.compat.v1.saved_model.loader.load(sess, ["serve"], model) @@ -654,8 +650,6 @@ def checkpoint_session(model, input_tensor_names, output_tensor_names, **kwargs) from tensorflow.core.protobuf import rewriter_config_pb2 config.graph_options.rewrite_options.constant_folding = \ rewriter_config_pb2.RewriterConfig.OFF - config.graph_options.rewrite_options.use_plugin_optimizers = \ - rewriter_config_pb2.RewriterConfig.OFF graph = tf.Graph() sess = tf.compat.v1.Session(graph=graph, config=config) with graph.as_default():