hailo-ai / hailo_model_zoo

The Hailo Model Zoo includes pre-trained models and a full building and evaluation environment
MIT License
279 stars 41 forks source link

Parsing Tensorflow 2.x SavedModel #24

Open metanav opened 2 years ago

metanav commented 2 years ago

I would like to parse the Tensorflow 2.x SavedModel SSD MobileNet v2 320x320 (http://download.tensorflow.org/models/object_detection/tf2/20200711/ssd_mobilenet_v2_320x320_coco17_tpu-8.tar.gz).

Where can I find start and end nodes to use with the following code.

hn, npz = runner.translate_tf_model(saved_model_path, model_name, start_node_name=start_node, end_node_ 􏰀→names=[end_node])

nadaved1 commented 2 years ago

Hi @metanav you can the 'yaml' file of this network for all the meta-data: https://github.com/hailo-ai/hailo_model_zoo/blob/master/hailo_model_zoo/cfg/networks/ssd_mobilenet_v2.yaml#L24

metanav commented 2 years ago

Hi @nadaved1, thanks for your suggestion but the yaml file is for the network trained using TF1. The model I wanted to parse was trained using TF2 and the nodes names are not same.

nadaved1 commented 2 years ago

Oh ok ☺️ the best way to find the end nodes is to look at the edges of the SSD module, meaning the last Conv layers. You should have 12 like these. If you want the customer success team to take a look at your actual model, feel free to reach out to us in this form: https://hailo.ai/contact-customer-support/

בתאריך יום ב׳, 10 באוק׳ 2022, 8:01, מאת Naveen @.***>:

Hi @nadaved1 https://github.com/nadaved1, thanks for your suggestion but the yaml file is for the network trained using TF1. The model I want to parse was trained. using TF2 and the nodes names are not same.

— Reply to this email directly, view it on GitHub https://github.com/hailo-ai/hailo_model_zoo/issues/24#issuecomment-1272788783, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADBIQYHADO5PEG5FJIEFTLDWCOPLTANCNFSM6AAAAAAQ4Z5EKE . You are receiving this because you were mentioned.Message ID: @.***>

zrruziev commented 1 year ago

You can skip these two parameters. You should provide model_path and model_name. start_node_names and end_node_names are optional. model_path should be like this: .../saved _model/saved_model.pb

hn, npz = runner.translate_tf_model(model_path, model_name, start_node_names=[start_node], end_node_names=[end_node])