From 7d571a9696e91608e488f88161fb0a9b94ff4e7f Mon Sep 17 00:00:00 2001 From: Ping Yu <4018+pyu10055@users.noreply.github.com> Date: Wed, 29 Jul 2020 12:44:51 -0700 Subject: [PATCH 1/3] fix model conversion error due to TF 2.3.0 release difference --- e2e/integration_tests/convert_predict.py | 6 +++--- .../converters/tf_saved_model_conversion_v2.py | 7 +++++-- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/e2e/integration_tests/convert_predict.py b/e2e/integration_tests/convert_predict.py index 978241978c8..28706dcdd76 100644 --- a/e2e/integration_tests/convert_predict.py +++ b/e2e/integration_tests/convert_predict.py @@ -246,7 +246,7 @@ def _create_saved_model_with_conv2d(save_dir): return { "async": False, "inputs": { - "input_1": {"value": np.ones((1, 24, 24, 3)).tolist(), + "conv2d_input:0": {"value": np.ones((1, 24, 24, 3)).tolist(), "shape": [1, 24, 24, 3], "dtype": 'float32'}}, "outputs": { @@ -275,7 +275,7 @@ def _create_saved_model_with_prelu(save_dir): return { "async": False, "inputs": { - "input_1": {"value": np.ones((1, 24, 24, 3)).tolist(), + "conv2d_1_input": {"value": np.ones((1, 24, 24, 3)).tolist(), "shape": [1, 24, 24, 3], "dtype": 'float32'}}, "outputs": { @@ -353,7 +353,7 @@ def _create_saved_model_v2_with_tensorlist_ops(save_dir): """ model = tf.keras.Sequential() model.add(tf.keras.layers.Embedding(100, 20, input_shape=[10])) - model.add(tf.keras.layers.GRU(4, reset_after=True)) + model.add(tf.keras.layers.GRU(4)) result = model.predict(tf.ones([1, 10])) diff --git a/tfjs-converter/python/tensorflowjs/converters/tf_saved_model_conversion_v2.py b/tfjs-converter/python/tensorflowjs/converters/tf_saved_model_conversion_v2.py index 0041929adb7..12c24ad4121 100644 --- a/tfjs-converter/python/tensorflowjs/converters/tf_saved_model_conversion_v2.py +++ b/tfjs-converter/python/tensorflowjs/converters/tf_saved_model_conversion_v2.py @@ -349,7 +349,8 @@ def _freeze_saved_model_v1(saved_model_dir, saved_model_tags, def _freeze_saved_model_v2(concrete_func, control_flow_v2=False): return convert_to_constants.convert_variables_to_constants_v2( - concrete_func, lower_control_flow=not control_flow_v2).graph + concrete_func, lower_control_flow=not control_flow_v2, + aggressive_inlining=True).graph def _build_signature_def(frozen_graph, input_nodes, output_nodes): @@ -483,8 +484,10 @@ def convert_tf_saved_model(saved_model_dir, except BaseException: frozen_graph = _freeze_saved_model_v1(saved_model_dir, saved_model_tags, output_node_names) + + inputs = [x for x in concrete_func.inputs if not x.dtype == 'resource'] signature = _build_signature_def( - frozen_graph, concrete_func.inputs, concrete_func.outputs) + frozen_graph, inputs, concrete_func.outputs) optimize_graph(frozen_graph, signature, output_graph, model.tensorflow_version, From 1b8980ba607d72f3b025728472ede1b2c38a0308 Mon Sep 17 00:00:00 2001 From: Ping Yu <4018+pyu10055@users.noreply.github.com> Date: Wed, 29 Jul 2020 12:58:19 -0700 Subject: [PATCH 2/3] increase TF version to 2.2 --- tfjs-converter/python/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tfjs-converter/python/requirements.txt b/tfjs-converter/python/requirements.txt index e5d75b6d071..49a65e373f8 100644 --- a/tfjs-converter/python/requirements.txt +++ b/tfjs-converter/python/requirements.txt @@ -1,6 +1,6 @@ h5py>=2.8.0 numpy>=1.16.4,<1.19.0 six>=1.12.0 -tensorflow-cpu>=2.1.0,<3 +tensorflow-cpu>=2.2.0,<3 tensorflow-hub==0.7.0 PyInquirer==1.0.3 From dc07cc42779e8df757eb7668ec3dcec8408b35ed Mon Sep 17 00:00:00 2001 From: Ping Yu <4018+pyu10055@users.noreply.github.com> Date: Wed, 29 Jul 2020 14:28:39 -0700 Subject: [PATCH 3/3] fix test for python2 --- tfjs-converter/python/requirements.txt | 2 +- .../tensorflowjs/converters/tf_saved_model_conversion_v2.py | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/tfjs-converter/python/requirements.txt b/tfjs-converter/python/requirements.txt index 49a65e373f8..e5d75b6d071 100644 --- a/tfjs-converter/python/requirements.txt +++ b/tfjs-converter/python/requirements.txt @@ -1,6 +1,6 @@ h5py>=2.8.0 numpy>=1.16.4,<1.19.0 six>=1.12.0 -tensorflow-cpu>=2.2.0,<3 +tensorflow-cpu>=2.1.0,<3 tensorflow-hub==0.7.0 PyInquirer==1.0.3 diff --git a/tfjs-converter/python/tensorflowjs/converters/tf_saved_model_conversion_v2.py b/tfjs-converter/python/tensorflowjs/converters/tf_saved_model_conversion_v2.py index 12c24ad4121..832d26197e9 100644 --- a/tfjs-converter/python/tensorflowjs/converters/tf_saved_model_conversion_v2.py +++ b/tfjs-converter/python/tensorflowjs/converters/tf_saved_model_conversion_v2.py @@ -348,6 +348,10 @@ def _freeze_saved_model_v1(saved_model_dir, saved_model_tags, return frozen_graph def _freeze_saved_model_v2(concrete_func, control_flow_v2=False): + if tf.__version__ < '2.2.0': + return convert_to_constants.convert_variables_to_constants_v2( + concrete_func, lower_control_flow=not control_flow_v2).graph + return convert_to_constants.convert_variables_to_constants_v2( concrete_func, lower_control_flow=not control_flow_v2, aggressive_inlining=True).graph