Convert a Keras or a Tensorflow model to IR files ready to be used with the Neural Compute Stick 2
For that you want to have OpenVino installed and python 3.5 at least. For the python requirements, see the "Requirements" section.
If you have a Keras .h5 file, use keras_to_tf.py
to create a Tensorflow .pb file.
python keras_to_tf.py
that will take the Keras file situated in Keras_model/model.h5 and create a .pb file in TF_model/tf_model.pb.
If you didn't had a .pb model before now you should have one. We'll use the model optimizer to convert the file.
mo.py --data_type FP16 --framework tf --input_model TF_model/tf_model.pb --model_name IR_model --output_dir IR_model/ --input_shape [1,28,28,1] --input conv2d_1_input --output activation_6/Softmax
Now you can run the inference on the NCS2. For that use the predict_mnist.py
python predict_mnist.py
This file load the IR model, read and convert the data/6.jpg and feed it for classification.
If everything goes fine, you should see something like this:
[ INFO ] Loading network files:
IR_model/IR_model.xml
IR_model/IR_model.bin
[ INFO ] Preparing input blobs
1 1 28 28
(28, 28)
(1, 28, 28)
[ INFO ] Loading model to the plugin
[ INFO ] Starting inference (1 iterations)
[ INFO ] Average running time of one iteration: 1.8284320831298828 ms
[ INFO ] Processing output blob
[[0. 0. 0. 0. 0. 0. 1. 0. 0. 0.]]
The last line is the class vector. We have a 1 at index 6, so the image has been correctly classified.
pip install -r requirements.txt