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
This commit is contained in:
parent
6ac1636191
commit
302e5497dd
@ -1,56 +1,52 @@
|
|||||||
# Converting a TensorFlow CRNN Model {#openvino_docs_MO_DG_prepare_model_convert_model_tf_specific_Convert_CRNN_From_Tensorflow}
|
# 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
|
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.
|
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:
|
**Step 1.** Clone this GitHub repository and check out the commit:
|
||||||
1. Clone repository:
|
1. Clone the repository:
|
||||||
```sh
|
```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
|
```sh
|
||||||
git checkout 64f1f1867bffaacfeacc7a80eebf5834a5726122
|
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:
|
**Step 3.** Create an inference graph:
|
||||||
1. Go to the `CRNN_Tensorflow` directory of the cloned repository:
|
1. Add the `CRNN_Tensorflow` folder to `PYTHONPATH`.
|
||||||
```sh
|
* For Linux:
|
||||||
cd path/to/CRNN_Tensorflow
|
|
||||||
```
|
|
||||||
2. Add `CRNN_Tensorflow` folder to `PYTHONPATH`.
|
|
||||||
* For Linux OS:
|
|
||||||
```sh
|
```sh
|
||||||
export PYTHONPATH="${PYTHONPATH}:/path/to/CRNN_Tensorflow/"
|
export PYTHONPATH="${PYTHONPATH}:/path/to/CRNN_Tensorflow/"
|
||||||
```
|
```
|
||||||
* For Windows OS add `/path/to/CRNN_Tensorflow/` to the `PYTHONPATH` environment variable in settings.
|
* For Windows, 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:
|
2. Edit the `tools/demo_shadownet.py` script. After `saver.restore(sess=sess, save_path=weights_path)` line, add the following code:
|
||||||
```python
|
```python
|
||||||
import tensorflow as tf
|
|
||||||
from tensorflow.python.framework import graph_io
|
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)
|
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
|
```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.
|
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
|
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 into the IR and run inference.
|
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
|
```sh
|
||||||
mo --input_model path/to/your/CRNN_Tensorflow/frozen_graph.pb
|
mo --input_model path/to/your/CRNN_Tensorflow/frozen_graph.pb
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user