From 76d2a1c351aa298f3962f761f4c98295f5adfd31 Mon Sep 17 00:00:00 2001 From: Roman Kazantsev Date: Mon, 24 Aug 2020 18:01:45 +0300 Subject: [PATCH] Disable eager execution affecting TensorFlow 1 concept model handling (#1914) Signed-off-by: Roman Kazantsev --- model-optimizer/extensions/load/tf/loader.py | 2 ++ model-optimizer/extensions/middle/CustomSubgraphCall.py | 4 ++++ model-optimizer/mo/front/tf/loader.py | 4 ++-- model-optimizer/mo/front/tf/partial_infer/tf.py | 2 ++ model-optimizer/mo/utils/convert.py | 2 ++ model-optimizer/mo/utils/summarize_graph.py | 2 ++ model-optimizer/mo/utils/tensorboard_util.py | 2 ++ 7 files changed, 16 insertions(+), 2 deletions(-) diff --git a/model-optimizer/extensions/load/tf/loader.py b/model-optimizer/extensions/load/tf/loader.py index 755caa9..deb6929 100644 --- a/model-optimizer/extensions/load/tf/loader.py +++ b/model-optimizer/extensions/load/tf/loader.py @@ -16,6 +16,8 @@ try: import tensorflow.compat.v1 as tf_v1 + # disable eager execution of TensorFlow 2 environment immediately + tf_v1.disable_eager_execution() except ImportError: import tensorflow as tf_v1 diff --git a/model-optimizer/extensions/middle/CustomSubgraphCall.py b/model-optimizer/extensions/middle/CustomSubgraphCall.py index 604e986..5595df8 100644 --- a/model-optimizer/extensions/middle/CustomSubgraphCall.py +++ b/model-optimizer/extensions/middle/CustomSubgraphCall.py @@ -63,6 +63,8 @@ class CustomSubgraphCall(MiddleReplacementPattern): """ try: import tensorflow.compat.v1 as tf_v1 + # disable eager execution of TensorFlow 2 environment immediately + tf_v1.disable_eager_execution() except ImportError: import tensorflow as tf_v1 from mo.front.common.layout import convert_shape, nhwc_to_nchw_permute, nchw_to_nhwc_permute @@ -282,6 +284,8 @@ class CustomSubgraphCall(MiddleReplacementPattern): """ try: import tensorflow.compat.v1 as tf_v1 + # disable eager execution of TensorFlow 2 environment immediately + tf_v1.disable_eager_execution() except ImportError: import tensorflow as tf_v1 from mo.front.tf.partial_infer.tf import get_subgraph_output_tensors, add_node_def_to_subgraph diff --git a/model-optimizer/mo/front/tf/loader.py b/model-optimizer/mo/front/tf/loader.py index 9393fdb..8684374 100644 --- a/model-optimizer/mo/front/tf/loader.py +++ b/model-optimizer/mo/front/tf/loader.py @@ -23,6 +23,8 @@ from mo.utils.utils import refer_to_faq_msg try: import tensorflow.compat.v1 as tf_v1 + # disable eager execution of TensorFlow 2 environment immediately + tf_v1.disable_eager_execution() import tensorflow as tf from tensorflow.python.framework.convert_to_constants import convert_variables_to_constants_v2 except ImportError: @@ -231,8 +233,6 @@ def load_tf_graph_def(graph_file_name: str = "", is_binary: bool = True, checkpo concrete_func = imported.signatures[tf.saved_model.DEFAULT_SERVING_SIGNATURE_DEF_KEY] frozen_func = convert_variables_to_constants_v2(concrete_func, lower_control_flow=False) # pylint: disable=E1123 graph_def = frozen_func.graph.as_graph_def(add_shapes=True) - # disable eager execution to dump a graph for tensorboard - tf_v1.disable_eager_execution() return graph_def, variables_values except (TypeError, KeyError): # code to extract GraphDef for TF 1.0 SavedModel format diff --git a/model-optimizer/mo/front/tf/partial_infer/tf.py b/model-optimizer/mo/front/tf/partial_infer/tf.py index a98656d..6bf5ead 100644 --- a/model-optimizer/mo/front/tf/partial_infer/tf.py +++ b/model-optimizer/mo/front/tf/partial_infer/tf.py @@ -21,6 +21,8 @@ import numpy as np try: import tensorflow.compat.v1 as tf_v1 + # disable eager execution of TensorFlow 2 environment immediately + tf_v1.disable_eager_execution() except ImportError: import tensorflow as tf_v1 from google.protobuf import text_format diff --git a/model-optimizer/mo/utils/convert.py b/model-optimizer/mo/utils/convert.py index 9439519..f0ccf3e 100755 --- a/model-optimizer/mo/utils/convert.py +++ b/model-optimizer/mo/utils/convert.py @@ -20,6 +20,8 @@ import sys try: import tensorflow.compat.v1 as tf_v1 + # disable eager execution of TensorFlow 2 environment immediately + tf_v1.disable_eager_execution() except ImportError: import tensorflow as tf_v1 diff --git a/model-optimizer/mo/utils/summarize_graph.py b/model-optimizer/mo/utils/summarize_graph.py index eca4a45..3c04151 100644 --- a/model-optimizer/mo/utils/summarize_graph.py +++ b/model-optimizer/mo/utils/summarize_graph.py @@ -22,6 +22,8 @@ import sys try: import tensorflow.compat.v1 as tf_v1 + # disable eager execution of TensorFlow 2 environment immediately + tf_v1.disable_eager_execution() except ImportError: import tensorflow as tf_v1 diff --git a/model-optimizer/mo/utils/tensorboard_util.py b/model-optimizer/mo/utils/tensorboard_util.py index 47e97d4..a1cc43a 100644 --- a/model-optimizer/mo/utils/tensorboard_util.py +++ b/model-optimizer/mo/utils/tensorboard_util.py @@ -16,6 +16,8 @@ try: import tensorflow.compat.v1 as tf_v1 + # disable eager execution of TensorFlow 2 environment immediately + tf_v1.disable_eager_execution() except ImportError: import tensorflow as tf_v1 try: -- 2.7.4