From 302e5497dd260eef56cee2fd88b1cf029fba35fc Mon Sep 17 00:00:00 2001 From: Xiake Sun Date: Thu, 2 Feb 2023 03:36:48 +0800 Subject: [PATCH] Docs/fix convert tf crnn model document (#14531) * Fixed freezing tf1 pre-trained model issue due to mix use of tf1 and tf2 API * Fix review comments * Apply suggestions from code review --- .../Convert_CRNN_From_Tensorflow.md | 48 +++++++++---------- 1 file changed, 22 insertions(+), 26 deletions(-) diff --git a/docs/MO_DG/prepare_model/convert_model/tf_specific/Convert_CRNN_From_Tensorflow.md b/docs/MO_DG/prepare_model/convert_model/tf_specific/Convert_CRNN_From_Tensorflow.md index b47473827a8519..68a399c67922ed 100644 --- a/docs/MO_DG/prepare_model/convert_model/tf_specific/Convert_CRNN_From_Tensorflow.md +++ b/docs/MO_DG/prepare_model/convert_model/tf_specific/Convert_CRNN_From_Tensorflow.md @@ -1,56 +1,52 @@ # Converting a TensorFlow CRNN Model {#openvino_docs_MO_DG_prepare_model_convert_model_tf_specific_Convert_CRNN_From_Tensorflow} -This tutorial explains how to convert a CRNN model to Intermediate Representation (IR). +This tutorial explains how to convert a CRNN model to OpenVINO™ Intermediate Representation (IR). There are several public versions of TensorFlow CRNN model implementation available on GitHub. This tutorial explains how to convert the model from -the [CRNN Tensorflow](https://github.com/MaybeShewill-CV/CRNN_Tensorflow) repository to IR. +the [CRNN Tensorflow](https://github.com/MaybeShewill-CV/CRNN_Tensorflow) repository to IR, and is validated with Python 3.7, TensorFlow 1.15.0, and protobuf 3.19.0. If you have another implementation of CRNN model, it can be converted to OpenVINO IR in a similar way. You need to get inference graph and run Model Optimizer on it. -**To convert this model to the IR:** +**To convert the model to IR:** -**Step 1.** Clone this GitHub repository and checkout the commit: - 1. Clone repository: +**Step 1.** Clone this GitHub repository and check out the commit: + 1. Clone the repository: ```sh - git clone https://github.com/MaybeShewill-CV/CRNN_Tensorflow.git +git clone https://github.com/MaybeShewill-CV/CRNN_Tensorflow.git ``` - 2. Checkout necessary commit: + 2. Go to the `CRNN_Tensorflow` directory of the cloned repository: +```sh +cd path/to/CRNN_Tensorflow +``` + 3. Check out the necessary commit: ```sh git checkout 64f1f1867bffaacfeacc7a80eebf5834a5726122 ``` -**Step 2.** Train the model, using framework or use the pretrained checkpoint provided in this repository. +**Step 2.** Train the model using the framework or the pretrained checkpoint provided in this repository. **Step 3.** Create an inference graph: - 1. Go to the `CRNN_Tensorflow` directory of the cloned repository: -```sh -cd path/to/CRNN_Tensorflow -``` - 2. Add `CRNN_Tensorflow` folder to `PYTHONPATH`. - * For Linux OS: + 1. Add the `CRNN_Tensorflow` folder to `PYTHONPATH`. + * For Linux: ```sh export PYTHONPATH="${PYTHONPATH}:/path/to/CRNN_Tensorflow/" ``` - * For Windows OS add `/path/to/CRNN_Tensorflow/` to the `PYTHONPATH` environment variable in settings. - 3. Open the `tools/test_shadownet.py` script. After `saver.restore(sess=sess, save_path=weights_path)` line, add the following code: + * For Windows, add `/path/to/CRNN_Tensorflow/` to the `PYTHONPATH` environment variable in settings. + 2. Edit the `tools/demo_shadownet.py` script. After `saver.restore(sess=sess, save_path=weights_path)` line, add the following code: ```python -import tensorflow as tf from tensorflow.python.framework import graph_io -frozen = tf.compat.v1.graph_util.convert_variables_to_constants(sess, sess.graph_def, ['shadow/LSTMLayers/transpose_time_major']) +frozen = tf.graph_util.convert_variables_to_constants(sess, sess.graph_def, ['shadow/LSTMLayers/transpose_time_major']) graph_io.write_graph(frozen, '.', 'frozen_graph.pb', as_text=False) ``` - 4. Run the demo with the following command: + 3. Run the demo with the following command: ```sh -python tools/test_shadownet.py --image_path data/test_images/test_01.jpg --weights_path model/shadownet/shadownet_2017-10-17-11-47-46.ckpt-199999 +python tools/demo_shadownet.py --image_path data/test_images/test_01.jpg --weights_path model/shadownet/shadownet_2017-10-17-11-47-46.ckpt-199999 ``` If you want to use your checkpoint, replace the path in the `--weights_path` parameter with a path to your checkpoint. - 5. In the `CRNN_Tensorflow` directory, you will find the inference CRNN graph `frozen_graph.pb`. You can use this graph with the OpenVINO™ toolkit - to convert the model into the IR and run inference. + 4. In the `CRNN_Tensorflow` directory, you will find the inference CRNN graph `frozen_graph.pb`. You can use this graph with OpenVINO + to convert the model to IR and then run inference. -**Step 4.** Convert the model into the IR: +**Step 4.** Convert the model to IR: ```sh mo --input_model path/to/your/CRNN_Tensorflow/frozen_graph.pb ``` - - -