This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TDA4VM import of TensorFlow SSD ModelNet v2



Hi there,

   I am trying to convert the SSD MobileNet v2 model into the TIDL format.

I am using TensorFlow 1.12, as suggested by TI docs and TensorFlow Slim.

I downloaded the file supported by TIDL:
http://download.tensorflow.org/models/object_detection/ssd_mobilenet_v2_coco_2018_03_29.tar.gz

At first I checked out the master version of TensorFlow Slim.

I run:
MODEL_NAME="ssd_mobilenet_v2"
ZIPPED_MODEL="ssd_mobilenet_v2_coco_2018_03_29.tar.gz"
URL_MODEL="download.tensorflow.org/.../ssd_mobilenet_v2_coco_2018_03_29.tar.gz"
IN_PB_FILE="frozen_inference_graph.pb"
OUT_PB_FILE="ssd_mobilenet_v2_final.pb"
TIDL_IO_FILE="tidl_ssd_mobilenet_v2_io_1.bin"
TIDL_NET_FILE="tidl_ssd_mobilenet_v2_net.bin"
INPUT_NAMES="image_tensor"
OUTPUT_NAMES="detection_boxes,detection_scores,detection_classes,num_detections"
CONVERSION_CONFIG_FILE="tidl_import_ssd_mobilenet_v2_slim.txt"

python ${TF_INSTALL_ROOT}/python/tools/optimize_for_inference.py  \
       --input=${IMPORTED_MODELS_DIRPATH}/${MODEL_NAME}/${IN_PB_FILE} \
       --output=${IMPORTED_MODELS_DIRPATH}/${MODEL_NAME}/${OUT_PB_FILE} \
       --input_names=${INPUT_NAMES} \
       --output_name=${OUTPUT_NAMES}   


The ssd_mobilenet_v2_final.pb is correctly created. Then, when I run the tidl_model_import I get:
Conversion into bin file...
TF Model (Proto) File  : ../../test/testvecs/models/public/tensorflow/ssd_mobilenet_v2/ssd_mobilenet_v2_final.pb  
TIDL Network File      : ../../test/testvecs/config/tidl_models/tensorflow/tidl_ssd_mobilenet_v2_net.bin  
TIDL IO Info File      : ../../test/testvecs/config/tidl_models/tensorflow/tidl_ssd_mobilenet_v2_io_  
 TF operator Assert is not suported now..  By passing
 TF operator Identity is not suported now..  By passing
 TF operator Identity is not suported now..  By passing
 TF operator Identity is not suported now..  By passing
 TF operator Identity is not suported now..  By passing
 TF operator Assert is not suported now..  By passing
 TF operator Assert is not suported now..  By passing
 TF operator All is not suported now..  By passing
 TF operator Cast is not suported now..  By passing
 TF operator TensorArrayGatherV3 is not suported now..  By passing
 TF operator TensorArrayGatherV3 is not suported now..  By passing
 TF operator Equal is not suported now..  By passing
 TF operator Equal is not suported now..  By passing
 TF operator Equal is not suported now..  By passing
 TF operator TensorArrayGatherV3 is not suported now..  By passing
 TF operator TensorArrayGatherV3 is not suported now..  By passing
 TF operator Const is not suported now..  By passing
[libprotobuf FATAL /datalocal1/user/kumar/tidl_tools/protobuf-3.5.1/src/google/protobuf/repeated_field.h:1522] CHECK failed: (index) < (current_size_):
terminate called after throwing an instance of 'google::protobuf::FatalException'
  what():  CHECK failed: (index) < (current_size_):
/home/dminguzzi/zf_wrkdir/repo_tda4/benchmark_tidl/zf_convert_all_models.sh: line 76: 13431 Aborted                 (core dumped) .

I tried to remove names from the OUTPUT_NAMES variable, the result is the same.

I read the note at "Some remarks on frozen inference graphs:" in the documentation, but I don't think they apply, since I am using TF 1.12.



A post on the forum suggests to checkout the version Slim commit d7ce21fa4d3b8b204530873ade75637e1313b760
If I do, I get a slightly different list of unsupported operators, but still a core dump.

Conversion into bin file...
TF Model (Proto) File  : ../../test/testvecs/models/public/tensorflow/ssd_mobilenet_v2/ssd_mobilenet_v2_final.pb  
TIDL Network File      : ../../test/testvecs/config/tidl_models/tensorflow/tidl_ssd_mobilenet_v2_net.bin  
TIDL IO Info File      : ../../test/testvecs/config/tidl_models/tensorflow/tidl_ssd_mobilenet_v2_io_  
 TF operator Assert is not suported now..  By passing
 TF operator Identity is not suported now..  By passing
 TF operator Assert is not suported now..  By passing
 TF operator Assert is not suported now..  By passing
 TF operator All is not suported now..  By passing
 TF operator Cast is not suported now..  By passing
 TF operator Equal is not suported now..  By passing
 TF operator Equal is not suported now..  By passing
 TF operator Equal is not suported now..  By passing
 TF operator TensorArrayGatherV3 is not suported now..  By passing
 TF operator StridedSlice is not suported now..  By passing
 TF operator StridedSlice is not suported now..  By passing
 TF operator Const is not suported now..  By passing
[libprotobuf FATAL /datalocal1/user/kumar/tidl_tools/protobuf-3.5.1/src/google/protobuf/repeated_field.h:1522] CHECK failed: (index) < (current_size_):
terminate called after throwing an instance of 'google::protobuf::FatalException'
  what():  CHECK failed: (index) < (current_size_):
/home/dminguzzi/zf_wrkdir/repo_tda4/benchmark_tidl/zf_convert_all_models.sh: line 77: 13300 Aborted                 (core dumped) ./out/tidl_model_import.out ${TIDL_INSTALL_PATH}/ti_dl/test/testvecs/config/import/public/tensorflow/${CONVERSION_CONFIG_FILE}

I pasted below my import configuration file.

modelType           = 1
numParamBits        = 8
# quantizationStyle   = 2
inputNetFile        = "../../test/testvecs/models/public/tensorflow/ssd_mobilenet_v2/ssd_mobilenet_v2_final.pb"
outputNetFile       = "../../test/testvecs/config/tidl_models/tensorflow/tidl_ssd_mobilenet_v2_net.bin"
outputParamsFile    = "../../test/testvecs/config/tidl_models/tensorflow/tidl_ssd_mobilenet_v2_io_"
inDataNorm          = 1
inMean              = 128 128 128
inScale             = 0.0078125 0.0078125 0.0078125
inData              = ../../test/testvecs/config/detection_list.txt
postProcType        = 2

# resizeWidth         = 300
# resizeHeight        = 300
# inWidth             = 300
# inHeight            = 300
# inNumChannels       = 3

Any suggestion is appreciated.

Best Regards,
Diego

  • Hi Diego,

    If your version of tensorflow is different than the one that was used to generate frozen_inference_graph.pb, you actually need to call  export_inference_graph first in order to re-generate the frozen graph from the checkpoint.

    Sorry, this step is a bit buried in the documentation. It is mentioned as note 6 of 

    If you use the following commands, you should be able to generate a model that can be successfully imported by TI-DL:

    PYTHONPATH=D:\...\tensorFlow\models:\...\tensorFlow\models;D:\...\tensorFlow\models\research;D:\...\tensorFlow\models\research\slim

    python D:\...\tensorFlow\models\research\object_detection\export_inference_graph.py --input_type=image_tensor --pipeline_config_path=pipeline.config --trained_checkpoint_prefix=model.ckpt --output_directory=./tf_1.12.0

    python "C:\Users\...\AppData\Local\conda\conda\envs\tf1.12.0\Lib\site-packages\tensorflow\python\tools\optimize_for_inference.py"  --input=./tf_1.12.0/frozen_inference_graph.pb --output=./tf_1.12.0/frozen_inference_graph_opt_1.pb --input_names=Preprocessor/sub --output_name="concat,concat_1"

    I am assuming here that the tensorflow models repo tensorFlow\models was checked out at label v1.12.0 with commit ID d7ce21fa4d3b8b204530873ade75637e1313b760

     

  • Hi Victor,

      I am aligned to the label v1.12.0, I verified that the checkout is the same as yours.

    At the beginning the execution failed, so I followed the steps described here:

    https://github.com/tensorflow/models/issues/4066

    I added:

    optional bool batch_norm_trainable = 11 [default=false];

    At the line 150 of the file  models/research/object_detection/protos/ssd.proto

    And executed :

    protoc object_detection/protos/*.proto --python_out=.

    Then, when I execute the commands from your reply, all runs until the optimize for inference. When I run the tidlModelImport I get:

    Conversion into bin file...
    TF Model (Proto) File  : ../../test/testvecs/models/public/tensorflow/ssd_mobilenet_v2/ssd_mobilenet_v2_final.pb  
    TIDL Network File      : ../../test/testvecs/config/tidl_models/tensorflow/tidl_ssd_mobilenet_v2_net.bin  
    TIDL IO Info File      : ../../test/testvecs/config/tidl_models/tensorflow/tidl_ssd_mobilenet_v2_io_  
    Concat is Only suported accorss channels

    My protoc version is 3.0.0

    Note: If I run the optimize for inference straight from the frozen_inference_graph.pb extracted from the zip, I get the same error, so I don't think it is  something related to the export graph or optimize for inference.

    I am going to send you my ssd_mobilenet_v2_final.pb file via private mail: could you try to run the tidl model import on that one?

    If, instead I run the command with the input and output names that I think are appropriate, I get the same error as last Friday:

    python /home/dminguzzi/wrkdir/dl_venv_1_12/lib/python3.6/site-packages/tensorflow/python/tools/optimize_for_inference.py --input=/home/dminguzzi/zf_wrkdir/psdk_rtos_auto_j7_06_02_00_21/tidl_j7_01_01_00_10//ti_dl/test/testvecs/models/public/tensorflow/ssd_mobilenet_v2/inference_graph/frozen_inference_graph.pb --output=/home/dminguzzi/zf_wrkdir/psdk_rtos_auto_j7_06_02_00_21/tidl_j7_01_01_00_10//ti_dl/test/testvecs/models/public/tensorflow/ssd_mobilenet_v2/ssd_mobilenet_v2_final.pb --input_names=image_tensor --output_name=detection_boxes,detection_scores,detection_classes,num_detections

    Conversion into bin file...
    TF Model (Proto) File  : ../../test/testvecs/models/public/tensorflow/ssd_mobilenet_v2/ssd_mobilenet_v2_final.pb  
    TIDL Network File      : ../../test/testvecs/config/tidl_models/tensorflow/tidl_ssd_mobilenet_v2_net.bin  
    TIDL IO Info File      : ../../test/testvecs/config/tidl_models/tensorflow/tidl_ssd_mobilenet_v2_io_  
     TF operator Assert is not suported now..  By passing
     TF operator Assert is not suported now..  By passing
     TF operator Assert is not suported now..  By passing
     TF operator Identity is not suported now..  By passing
     TF operator Identity is not suported now..  By passing
     TF operator Identity is not suported now..  By passing
     TF operator Identity is not suported now..  By passing
     TF operator All is not suported now..  By passing
     TF operator Equal is not suported now..  By passing
     TF operator Equal is not suported now..  By passing
     TF operator TensorArrayGatherV3 is not suported now..  By passing
     TF operator TensorArrayGatherV3 is not suported now..  By passing
     TF operator Cast is not suported now..  By passing
     TF operator Equal is not suported now..  By passing
     TF operator StridedSlice is not suported now..  By passing
     TF operator StridedSlice is not suported now..  By passing
     TF operator TensorArrayV3 is not suported now..  By passing
     TF operator TensorArrayV3 is not suported now..  By passing
     TF operator TensorArrayGatherV3 is not suported now..  By passing
     TF operator Const is not suported now..  By passing
    [libprotobuf FATAL /datalocal1/user/kumar/tidl_tools/protobuf-3.5.1/src/google/protobuf/repeated_field.h:1522] CHECK failed: (index) < (current_size_):
    terminate called after throwing an instance of 'google::protobuf::FatalException'
      what():  CHECK failed: (index) < (current_size_):
    /home/dminguzzi/zf_wrkdir/repo_tda4/benchmark_tidl/zf_convert_all_models.sh: line 99: 23288 Aborted                 (core dumped) ./out/tidl_model_import.out ${TIDL_INSTALL_PATH}/ti_dl/test/testvecs/config/import/public/tensorflow/${CONVERSION_CONFIG_FILE}

  • Hi Diego,

    I also got the same import tools error:

    cd ti_dl/utils/tidlModelImport && ./import_all_models.sh && cd ../../../
    TF Model (Proto) File : ../../test/testvecs/models/public/tensorflow/ssd_mobilenet_v2/ssd_mobilenet_v2_final.pb
    TIDL Network File : ../../test/testvecs/config/tidl_models/tensorflow/tidl_ssd_mobilenet_v2_net.bin
    TIDL IO Info File : ../../test/testvecs/config/tidl_models/tensorflow/tidl_ssd_mobilenet_v2_io_
    Concat is Only suported accorss channels

    Actually I used TF 1.11.0 to perform all the commands mentioned earlier whereas you used TF 1.12 . May be the difference comes from there. Can you try TF 1.11 ?

    regards,

    Victor

  • Hi Victor,

      I tried with TF 1.11 and I still get the Concat error. The problem is before the tidl model import.

    I also tried to run the tidl model import in Windows and I get the same result.

    Best regards,

    Diego

  • Hi Diego,

    Could you please confirm that you are using version 1.11 for tensorflow/models repo also  (git checkout at release tag)

  • Hi Kumar,

    as indicated by Victor by the posts above, I am using the tensorflow/models tag v.1.12.0 with commit ID d7ce21fa4d3b8b204530873ade75637e1313b760

     

  • Hi Victor,

      if you have a frozen graph that does not crash the tidl import tool, could you send it to me via private e-mail?

    I would like to check if, with that file, I can run the SSD Mobile Net. In that case, I can go further in trying to rebuild the tool and debug. the problem.

    Thank you

    Best Regards,

    Diego

     

  • Hi Kumar,

     today I reinstalled everything from scratch, but I still get the same result.  To recap, I am using:

    • Python 3.6.9
    • Tensorflow 1.12.0, installed from pip3, in a separate environment, on Linux
    • Tf Slim, tag v.1.12.0 with commit ID d7ce21fa4d3b8b204530873ade75637e1313b760

    Are you using something different?

    Regards,

    Diego

      

  • Diego, 

    Please find the below for tools and commands used

    python 3.6.7 

    tensorflow 1.12.0

    tensorflow/models repo commit id : 62ce5d2a4c39f8e3add4fae70cb0d19d195265c6

    Check point vresion used : ssd_mobilenet_v2_coco_2018_03_29

    Commands used  are  :

    python D:\work\vision\CNN\tensorFlow\models\research\object_detection\export_inference_graph.py --input_type=image_tensor --pipeline_config_path=pipeline.config --trained_checkpoint_prefix=model.ckpt --output_directory=./tf_1.12.0

    python "C:\conda\conda\envs\tf1.12.0\Lib\site-packages\tensorflow\python\tools\optimize_for_inference.py" --input=./tf_1.12.0/frozen_inference_graph.pb --output=./tf_1.12.0/frozen_inference_graph_opt_1.pb --input_names=Preprocessor/sub --output_name="concat,concat_1"

  • Hi Kumar,

      I saw that you use Anaconda to convert the models, so I installed all on Anaconda for Windows.
    I used TF 1.12 and the tensorflow/models repo commit id that you specified.
    I used to think that the problem could be related to the fact that I use python under Linux, but on Window I get the same results.

    I created a separate environment; I had to manually patch the file:

    models\research\object_detection\protos\ssd.proto  , adding

    optional bool batch_norm_trainable = 11 [default=false];

    at the line 188, otherwise it failed: did you do the same?



    I executed the commands:

    set PYTHONPATH=D:\zf\models\research\object_detection;D:\zf\models\research;D:\zf\models\research\slim

    python D:\zf\models\research\object_detection\export_inference_graph.py --input_type=image_tensor --pipeline_config_path=D:\zf\ssd_mobilenet_v2_coco_2018_03_29\pipeline.config --trained_checkpoint_prefix=D:\zf\ssd_mobilenet_v2_coco_2018_03_29\model.ckpt    --output_directory=output_dir

    python D:\Anaconda3\envs\tf_1_12\Lib\site-packages\tensorflow\python\tools\optimize_for_inference.py --input=D:\zf\output_dir\frozen_inference_graph.pb --output=D:\zf\output_dir\ssd_mobilenet_v2_final.pb --input_names=Preprocessor/sub --output_name="concat,concat_1"

    tidl_model_import.out.exe tidl_import_ssd_mobilenet_v2_slim2.txt

    TF Model (Proto) File  : output_dir/ssd_mobilenet_v2_final.pb
    TIDL Network File      : tidl_ssd_mobilenet_v2_net2.bin
    TIDL IO Info File      : tidl_ssd_mobilenet_v2_io2_
    Concat is Only suported accorss channels

    Now I am stuck with the tests that came to my mind.
    Have you any other idea?

    Please send me the output of the optimize for inference via private mail, so I can run the tidl_model_inport and execute the benchmark.
    Thank you

    Best Regards,

    Diego

  • Hi Diego,

    I believe your model conversion successful now. Could you please use the below import config file from the release folder for SSD model

    Note : Just update input file name paths only in this config file.

    tidl_j7_01_01_00_10\ti_dl\test\testvecs\config\import\public\tensorflow\tidl_import_mobileNetv1_0.75_ssd.txt

  • Hi Kumar,

      with the modification you suggested the conversion does not crash: I believe that the inDataNamesList and outDataNamesList in the config file override what is passed from the command line.

    Now I will try to understand why, but I get the following error.  Do you have any hint on why does it happen?

    In the config file, I just modified the inputNetFile .

    TF Model (Proto) File  : ../../test/testvecs/models/public/tensorflow/ssd_mobilenet_v2/ssd_mobilenet_v2_final.pb  
    TIDL Network File      : ../../test/testvecs/config/tidl_models/tensorflow/tidl_net_mobilenet_v1_0.75_224_ssd.bin  
    TIDL IO Info File      : ../../test/testvecs/config/tidl_models/tensorflow/tidl_io_mobilenet_v1_0.75_224_ssd_  

    ~~~~~Running TIDL in PC emulation mode to collect Activations range for each layer~~~~~

    Processing config file #0 : /home/dminguzzi/zf_root/psdk_rtos_auto_j7_06_02_00_21/tidl_j7_01_01_00_10/ti_dl/utils/tidlModelImport/tempDir/qunat_stats_config.txt
     ----------------------- TIDL Process with REF_ONLY FLOW ------------------------

    #    0 . .. T    1609.36  ...Segmentation fault (core dumped)

    ------------------ Network Compiler Traces -----------------------------
    Main iteration numer: 0....

     Life time alive buffers are with ID: 60101 ( 1), 70 ( 1), 10102 ( 0), 52 ( 1), 100 ( 1), 20102 ( 0), 101 ( 2), 40002 ( 2), 77 ( 1), 71 ( 1), 84 ( 1), 53 ( 1), 91 ( 1), 78 ( 1), 97 ( 1), 85 ( 1), 92 ( 1), 98 ( 1), 40001 ( 2),
    Preparing for memory allocation : internal iteration number: 0
    successful Memory allocation

    -------------------- Network Compiler : Analysis Results are available --------------------

    ERROR  : Model Check cannot find corrosponding layers from result network to original network.
    ERROR  : Model Check cannot find corrosponding layers from result network to original network.
    ERROR  : [TIDL_E_QUANT_STATS_NOT_AVAILABLE] tidl_quant_stats_tool.out fails to collect dynamic range. Please look into quant stats log. This model will get fault on target.
    ****************************************************
    **          0 WARNINGS          1 ERRORS          **
    ****************************************************
    total 18M
    drwxrwxr-x 2 dminguzzi dminguzzi 4,0K Apr  3 09:25 .
    drwxrwxr-x 6 dminguzzi dminguzzi 4,0K Feb 21 13:21 ..
    -rw-rw-r-- 1 dminguzzi dminguzzi 9,7K Apr  3 09:25 tidl_io_mobilenet_v1_0.75_224_ssd_1.bin
    -rw-rw-r-- 1 dminguzzi dminguzzi  17M Apr  3 09:25 tidl_net_mobilenet_v1_0.75_224_ssd.bin
    -rw-rw-r-- 1 dminguzzi dminguzzi  25K Apr  3 09:25 tidl_net_mobilenet_v1_0.75_224_ssd.bin_netLog.txt
    -rw-rw-r-- 1 dminguzzi dminguzzi 336K Apr  3 09:25 tidl_net_mobilenet_v1_0.75_224_ssd.bin_paramDebug.csv
    -rw-rw-r-- 1 dminguzzi dminguzzi 356K Apr  3 09:25 tidl_net_mobilenet_v1_0.75_224_ssd.bin.svg
    ssd_mobilenet_v2 TERMINATED.......................................................................

      

  • Hi Diego,

    The segmentation fault observed during range calibration could be  the reason for the  errors  


    #    0 . .. T    1609.36  ...Segmentation fault (core dumped)

    Can you please set the below parameters in the import config file.

    postProcType = 0

    debugTraceLevel = 1
    writeTraceLevel = 1

  • Hi Kumar,

      I have found that the segmentation fault occurs when I set numParamBits  = 8. and the metaLayersNamesList file is read.

    If I comment the setting of the metaLayersNamesList, I can then set the postProcType=2 num param bits to 16.

    Then, the import and the simulation work, they do not crash.  However, in the ti_dl/test/testvecs/output/ the post processed png exists, but it has no bounding boxes.

    Moreover, does the documentation contain any example of how to use the output tensor?

    I examined the SSD implementation in python, and I found the output tensors: detection_boxes,detection_scores,detection_classes,num_detections.  I do not see such names as layers.

    For the image recognition, I used the app_tidl example as the basis, is there a similar example for the ssd?

    Thank you.

    Below the execution log when numParamBits=8

    TF Meta PipeLine (Proto) File  : ../../test/testvecs/models/public/tensorflow/ssd_mobilenet_v2_pipeline.config  
    [libprotobuf WARNING google/protobuf/text_format.cc:305] Warning parsing text-format object_detection.protos.TrainEvalPipelineConfig: 170:3: text format contains deprecated field "num_examples"
    [libprotobuf WARNING google/protobuf/text_format.cc:305] Warning parsing text-format object_detection.protos.TrainEvalPipelineConfig: 171:3: text format contains deprecated field "max_evals"
    num_classes : 90
    y_scale : 10.000000
    x_scale : 10.000000
    w_scale : 5.000000
    h_scale : 5.000000
    num_keypoints : 5.000000
    score_threshold : 0.300000
    iou_threshold : 0.600000
    max_detections_per_class : 100
    max_total_detections : 100
          scales, height_stride, width_stride, height_offset, width_offset
       0.2000000,   -1.0000000,   -1.0000000,   -1.0000000,   -1.0000000
       0.3500000,   -1.0000000,   -1.0000000,   -1.0000000,   -1.0000000
       0.5000000,   -1.0000000,   -1.0000000,   -1.0000000,   -1.0000000
       0.6500000,   -1.0000000,   -1.0000000,   -1.0000000,   -1.0000000
       0.8000000,   -1.0000000,   -1.0000000,   -1.0000000,   -1.0000000
       0.9500000,   -1.0000000,   -1.0000000,   -1.0000000,   -1.0000000
    aspect_ratios
       1.0000000
       2.0000000
       0.5000000
       3.0000000
       0.3333000
    TF Model (Proto) File  : ../../test/testvecs/models/public/tensorflow/ssd_mobilenet_v2/ssd_mobilenet_v2_final.pb  
    TIDL Network File      : ../../test/testvecs/config/tidl_models/tensorflow/tidl_ssd_mobilenet_v2_net.bin  
    TIDL IO Info File      : ../../test/testvecs/config/tidl_models/tensorflow/tidl_ssd_mobilenet_v2_io_  
    Num of Layer Detected : 102 
    --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
      Num|TIDL Layer Name               |Out Data Name                                     |Group |#Ins  |#Outs |Inbuf Ids                       |Outbuf Id |In NCHW                             |Out NCHW                            |MACS       |
    --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
        0|TIDL_DataLayer                |Preprocessor/sub_original                         |     0|    -1|     1|  x   x   x   x   x   x   x   x |  0       |       0        0        0        0 |       1        3      300      300 |         0 |
        1|TIDL_ConvolutionLayer         |FeatureExtractor/MobilenetV2/Conv/Relu6           |     0|     1|     1|  0   x   x   x   x   x   x   x |  1       |       1        3      300      300 |       1       32      150      150 |  20880000 |
        2|TIDL_ConvolutionLayer         |xtractor/MobilenetV2/expanded_conv/depthwise/Relu6|     0|     1|     1|  1   x   x   x   x   x   x   x |  2       |       1       32      150      150 |       1       32      150      150 |   7920000 |
        3|TIDL_ConvolutionLayer         |tV2/expanded_conv/project/BatchNorm/FusedBatchNorm|     0|     1|     1|  2   x   x   x   x   x   x   x |  3       |       1       32      150      150 |       1       16      150      150 |  11880000 |
        4|TIDL_ConvolutionLayer         |Extractor/MobilenetV2/expanded_conv_1/expand/Relu6|     0|     1|     1|  3   x   x   x   x   x   x   x |  4       |       1       16      150      150 |       1       96      150      150 |  38880000 |
        5|TIDL_ConvolutionLayer         |ractor/MobilenetV2/expanded_conv_1/depthwise/Relu6|     0|     1|     1|  4   x   x   x   x   x   x   x |  5       |       1       96      150      150 |       1       96       75       75 |   5940000 |
        6|TIDL_ConvolutionLayer         |2/expanded_conv_1/project/BatchNorm/FusedBatchNorm|     0|     1|     1|  5   x   x   x   x   x   x   x |  6       |       1       96       75       75 |       1       24       75       75 |  13095000 |
        7|TIDL_ConvolutionLayer         |Extractor/MobilenetV2/expanded_conv_2/expand/Relu6|     0|     1|     1|  6   x   x   x   x   x   x   x |  7       |       1       24       75       75 |       1      144       75       75 |  21060000 |
        8|TIDL_ConvolutionLayer         |ractor/MobilenetV2/expanded_conv_2/depthwise/Relu6|     0|     1|     1|  7   x   x   x   x   x   x   x |  8       |       1      144       75       75 |       1      144       75       75 |   8910000 |
        9|TIDL_ConvolutionLayer         |2/expanded_conv_2/project/BatchNorm/FusedBatchNorm|     0|     1|     1|  8   x   x   x   x   x   x   x |  9       |       1      144       75       75 |       1       24       75       75 |  19575000 |
       10|TIDL_EltWiseLayer             |FeatureExtractor/MobilenetV2/expanded_conv_2/add  |     0|     2|     1|  9   6   x   x   x   x   x   x | 10       |       1       24       75       75 |       1       24       75       75 |    135000 |
       11|TIDL_ConvolutionLayer         |Extractor/MobilenetV2/expanded_conv_3/expand/Relu6|     0|     1|     1| 10   x   x   x   x   x   x   x | 11       |       1       24       75       75 |       1      144       75       75 |  21060000 |
       12|TIDL_ConvolutionLayer         |ractor/MobilenetV2/expanded_conv_3/depthwise/Relu6|     0|     1|     1| 11   x   x   x   x   x   x   x | 12       |       1      144       75       75 |       1      144       38       38 |   2287296 |
       13|TIDL_ConvolutionLayer         |2/expanded_conv_3/project/BatchNorm/FusedBatchNorm|     0|     1|     1| 12   x   x   x   x   x   x   x | 13       |       1      144       38       38 |       1       32       38       38 |   6700160 |
       14|TIDL_ConvolutionLayer         |Extractor/MobilenetV2/expanded_conv_4/expand/Relu6|     0|     1|     1| 13   x   x   x   x   x   x   x | 14       |       1       32       38       38 |       1      192       38       38 |   9426432 |
       15|TIDL_ConvolutionLayer         |ractor/MobilenetV2/expanded_conv_4/depthwise/Relu6|     0|     1|     1| 14   x   x   x   x   x   x   x | 15       |       1      192       38       38 |       1      192       38       38 |   3049728 |
       16|TIDL_ConvolutionLayer         |2/expanded_conv_4/project/BatchNorm/FusedBatchNorm|     0|     1|     1| 15   x   x   x   x   x   x   x | 16       |       1      192       38       38 |       1       32       38       38 |   8918144 |
       17|TIDL_EltWiseLayer             |FeatureExtractor/MobilenetV2/expanded_conv_4/add  |     0|     2|     1| 16  13   x   x   x   x   x   x | 17       |       1       32       38       38 |       1       32       38       38 |     46208 |
       18|TIDL_ConvolutionLayer         |Extractor/MobilenetV2/expanded_conv_5/expand/Relu6|     0|     1|     1| 17   x   x   x   x   x   x   x | 18       |       1       32       38       38 |       1      192       38       38 |   9426432 |
       19|TIDL_ConvolutionLayer         |ractor/MobilenetV2/expanded_conv_5/depthwise/Relu6|     0|     1|     1| 18   x   x   x   x   x   x   x | 19       |       1      192       38       38 |       1      192       38       38 |   3049728 |
       20|TIDL_ConvolutionLayer         |2/expanded_conv_5/project/BatchNorm/FusedBatchNorm|     0|     1|     1| 19   x   x   x   x   x   x   x | 20       |       1      192       38       38 |       1       32       38       38 |   8918144 |
       21|TIDL_EltWiseLayer             |FeatureExtractor/MobilenetV2/expanded_conv_5/add  |     0|     2|     1| 20  17   x   x   x   x   x   x | 21       |       1       32       38       38 |       1       32       38       38 |     46208 |
       22|TIDL_ConvolutionLayer         |Extractor/MobilenetV2/expanded_conv_6/expand/Relu6|     0|     1|     1| 21   x   x   x   x   x   x   x | 22       |       1       32       38       38 |       1      192       38       38 |   9426432 |
       23|TIDL_ConvolutionLayer         |ractor/MobilenetV2/expanded_conv_6/depthwise/Relu6|     0|     1|     1| 22   x   x   x   x   x   x   x | 23       |       1      192       38       38 |       1      192       19       19 |    762432 |
       24|TIDL_ConvolutionLayer         |2/expanded_conv_6/project/BatchNorm/FusedBatchNorm|     0|     1|     1| 23   x   x   x   x   x   x   x | 24       |       1      192       19       19 |       1       64       19       19 |   4459072 |
       25|TIDL_ConvolutionLayer         |Extractor/MobilenetV2/expanded_conv_7/expand/Relu6|     0|     1|     1| 24   x   x   x   x   x   x   x | 25       |       1       64       19       19 |       1      384       19       19 |   9149184 |
       26|TIDL_ConvolutionLayer         |ractor/MobilenetV2/expanded_conv_7/depthwise/Relu6|     0|     1|     1| 25   x   x   x   x   x   x   x | 26       |       1      384       19       19 |       1      384       19       19 |   1524864 |
       27|TIDL_ConvolutionLayer         |2/expanded_conv_7/project/BatchNorm/FusedBatchNorm|     0|     1|     1| 26   x   x   x   x   x   x   x | 27       |       1      384       19       19 |       1       64       19       19 |   8895040 |
       28|TIDL_EltWiseLayer             |FeatureExtractor/MobilenetV2/expanded_conv_7/add  |     0|     2|     1| 27  24   x   x   x   x   x   x | 28       |       1       64       19       19 |       1       64       19       19 |     23104 |
       29|TIDL_ConvolutionLayer         |Extractor/MobilenetV2/expanded_conv_8/expand/Relu6|     0|     1|     1| 28   x   x   x   x   x   x   x | 29       |       1       64       19       19 |       1      384       19       19 |   9149184 |
       30|TIDL_ConvolutionLayer         |ractor/MobilenetV2/expanded_conv_8/depthwise/Relu6|     0|     1|     1| 29   x   x   x   x   x   x   x | 30       |       1      384       19       19 |       1      384       19       19 |   1524864 |
       31|TIDL_ConvolutionLayer         |2/expanded_conv_8/project/BatchNorm/FusedBatchNorm|     0|     1|     1| 30   x   x   x   x   x   x   x | 31       |       1      384       19       19 |       1       64       19       19 |   8895040 |
       32|TIDL_EltWiseLayer             |FeatureExtractor/MobilenetV2/expanded_conv_8/add  |     0|     2|     1| 31  28   x   x   x   x   x   x | 32       |       1       64       19       19 |       1       64       19       19 |     23104 |
       33|TIDL_ConvolutionLayer         |Extractor/MobilenetV2/expanded_conv_9/expand/Relu6|     0|     1|     1| 32   x   x   x   x   x   x   x | 33       |       1       64       19       19 |       1      384       19       19 |   9149184 |
       34|TIDL_ConvolutionLayer         |ractor/MobilenetV2/expanded_conv_9/depthwise/Relu6|     0|     1|     1| 33   x   x   x   x   x   x   x | 34       |       1      384       19       19 |       1      384       19       19 |   1524864 |
       35|TIDL_ConvolutionLayer         |2/expanded_conv_9/project/BatchNorm/FusedBatchNorm|     0|     1|     1| 34   x   x   x   x   x   x   x | 35       |       1      384       19       19 |       1       64       19       19 |   8895040 |
       36|TIDL_EltWiseLayer             |FeatureExtractor/MobilenetV2/expanded_conv_9/add  |     0|     2|     1| 35  32   x   x   x   x   x   x | 36       |       1       64       19       19 |       1       64       19       19 |     23104 |
       37|TIDL_ConvolutionLayer         |xtractor/MobilenetV2/expanded_conv_10/expand/Relu6|     0|     1|     1| 36   x   x   x   x   x   x   x | 37       |       1       64       19       19 |       1      384       19       19 |   9149184 |
       38|TIDL_ConvolutionLayer         |actor/MobilenetV2/expanded_conv_10/depthwise/Relu6|     0|     1|     1| 37   x   x   x   x   x   x   x | 38       |       1      384       19       19 |       1      384       19       19 |   1524864 |
       39|TIDL_ConvolutionLayer         |/expanded_conv_10/project/BatchNorm/FusedBatchNorm|     0|     1|     1| 38   x   x   x   x   x   x   x | 39       |       1      384       19       19 |       1       96       19       19 |  13342560 |
       40|TIDL_ConvolutionLayer         |xtractor/MobilenetV2/expanded_conv_11/expand/Relu6|     0|     1|     1| 39   x   x   x   x   x   x   x | 40       |       1       96       19       19 |       1      576       19       19 |  20377728 |
       41|TIDL_ConvolutionLayer         |actor/MobilenetV2/expanded_conv_11/depthwise/Relu6|     0|     1|     1| 40   x   x   x   x   x   x   x | 41       |       1      576       19       19 |       1      576       19       19 |   2287296 |
       42|TIDL_ConvolutionLayer         |/expanded_conv_11/project/BatchNorm/FusedBatchNorm|     0|     1|     1| 41   x   x   x   x   x   x   x | 42       |       1      576       19       19 |       1       96       19       19 |  19996512 |
       43|TIDL_EltWiseLayer             |FeatureExtractor/MobilenetV2/expanded_conv_11/add |     0|     2|     1| 42  39   x   x   x   x   x   x | 43       |       1       96       19       19 |       1       96       19       19 |     34656 |
       44|TIDL_ConvolutionLayer         |xtractor/MobilenetV2/expanded_conv_12/expand/Relu6|     0|     1|     1| 43   x   x   x   x   x   x   x | 44       |       1       96       19       19 |       1      576       19       19 |  20377728 |
       45|TIDL_ConvolutionLayer         |actor/MobilenetV2/expanded_conv_12/depthwise/Relu6|     0|     1|     1| 44   x   x   x   x   x   x   x | 45       |       1      576       19       19 |       1      576       19       19 |   2287296 |
       46|TIDL_ConvolutionLayer         |/expanded_conv_12/project/BatchNorm/FusedBatchNorm|     0|     1|     1| 45   x   x   x   x   x   x   x | 46       |       1      576       19       19 |       1       96       19       19 |  19996512 |
       47|TIDL_EltWiseLayer             |FeatureExtractor/MobilenetV2/expanded_conv_12/add |     0|     2|     1| 46  43   x   x   x   x   x   x | 47       |       1       96       19       19 |       1       96       19       19 |     34656 |
       48|TIDL_ConvolutionLayer         |xtractor/MobilenetV2/expanded_conv_13/expand/Relu6|     0|     1|     1| 47   x   x   x   x   x   x   x | 48       |       1       96       19       19 |       1      576       19       19 |  20377728 |
       49|TIDL_ConvolutionLayer         |actor/MobilenetV2/expanded_conv_13/depthwise/Relu6|     0|     1|     1| 48   x   x   x   x   x   x   x | 49       |       1      576       19       19 |       1      576       10       10 |    633600 |
       50|TIDL_ConvolutionLayer         |BoxPredictor_0/BoxEncodingPredictor/BiasAdd       |     0|     1|     1| 48   x   x   x   x   x   x   x | 50       |       1      576       19       19 |       1       12       19       19 |  22461420 |
       51|TIDL_ConvolutionLayer         |BoxPredictor_0/ClassPredictor/BiasAdd             |     0|     1|     1| 48   x   x   x   x   x   x   x | 51       |       1      576       19       19 |       1      273       19       19 | 510997305 |
       52|TIDL_FlattenLayer             |oxPredictor_0/BoxEncodingPredictor/BiasAdd_flatten|     0|     1|     1| 50   x   x   x   x   x   x   x | 52       |       1       12       19       19 |       1        1        1     4332 |         0 |
       53|TIDL_FlattenLayer             |BoxPredictor_0/ClassPredictor/BiasAdd_flatten     |     0|     1|     1| 51   x   x   x   x   x   x   x | 53       |       1      273       19       19 |       1        1        1    98553 |         0 |
       54|TIDL_ConvolutionLayer         |/expanded_conv_13/project/BatchNorm/FusedBatchNorm|     0|     1|     1| 49   x   x   x   x   x   x   x | 54       |       1      576       10       10 |       1      160       10       10 |   9232000 |
       55|TIDL_ConvolutionLayer         |xtractor/MobilenetV2/expanded_conv_14/expand/Relu6|     0|     1|     1| 54   x   x   x   x   x   x   x | 55       |       1      160       10       10 |       1      960       10       10 |  15552000 |
       56|TIDL_ConvolutionLayer         |actor/MobilenetV2/expanded_conv_14/depthwise/Relu6|     0|     1|     1| 55   x   x   x   x   x   x   x | 56       |       1      960       10       10 |       1      960       10       10 |   1056000 |
       57|TIDL_ConvolutionLayer         |/expanded_conv_14/project/BatchNorm/FusedBatchNorm|     0|     1|     1| 56   x   x   x   x   x   x   x | 57       |       1      960       10       10 |       1      160       10       10 |  15376000 |
       58|TIDL_EltWiseLayer             |FeatureExtractor/MobilenetV2/expanded_conv_14/add |     0|     2|     1| 57  54   x   x   x   x   x   x | 58       |       1      160       10       10 |       1      160       10       10 |     16000 |
       59|TIDL_ConvolutionLayer         |xtractor/MobilenetV2/expanded_conv_15/expand/Relu6|     0|     1|     1| 58   x   x   x   x   x   x   x | 59       |       1      160       10       10 |       1      960       10       10 |  15552000 |
       60|TIDL_ConvolutionLayer         |actor/MobilenetV2/expanded_conv_15/depthwise/Relu6|     0|     1|     1| 59   x   x   x   x   x   x   x | 60       |       1      960       10       10 |       1      960       10       10 |   1056000 |
       61|TIDL_ConvolutionLayer         |/expanded_conv_15/project/BatchNorm/FusedBatchNorm|     0|     1|     1| 60   x   x   x   x   x   x   x | 61       |       1      960       10       10 |       1      160       10       10 |  15376000 |
       62|TIDL_EltWiseLayer             |FeatureExtractor/MobilenetV2/expanded_conv_15/add |     0|     2|     1| 61  58   x   x   x   x   x   x | 62       |       1      160       10       10 |       1      160       10       10 |     16000 |
       63|TIDL_ConvolutionLayer         |xtractor/MobilenetV2/expanded_conv_16/expand/Relu6|     0|     1|     1| 62   x   x   x   x   x   x   x | 63       |       1      160       10       10 |       1      960       10       10 |  15552000 |
       64|TIDL_ConvolutionLayer         |actor/MobilenetV2/expanded_conv_16/depthwise/Relu6|     0|     1|     1| 63   x   x   x   x   x   x   x | 64       |       1      960       10       10 |       1      960       10       10 |   1056000 |
       65|TIDL_ConvolutionLayer         |/expanded_conv_16/project/BatchNorm/FusedBatchNorm|     0|     1|     1| 64   x   x   x   x   x   x   x | 65       |       1      960       10       10 |       1      320       10       10 |  30752000 |
       66|TIDL_ConvolutionLayer         |FeatureExtractor/MobilenetV2/Conv_1/Relu6         |     0|     1|     1| 65   x   x   x   x   x   x   x | 66       |       1      320       10       10 |       1     1280       10       10 |  41216000 |
       67|TIDL_ConvolutionLayer         |ctor/MobilenetV2/layer_19_1_Conv2d_2_1x1_256/Relu6|     0|     1|     1| 66   x   x   x   x   x   x   x | 67       |       1     1280       10       10 |       1      256       10       10 |  32819200 |
       68|TIDL_ConvolutionLayer         |BoxPredictor_1/BoxEncodingPredictor/BiasAdd       |     0|     1|     1| 66   x   x   x   x   x   x   x | 68       |       1     1280       10       10 |       1       24       10       10 |  27650400 |
       69|TIDL_ConvolutionLayer         |BoxPredictor_1/ClassPredictor/BiasAdd             |     0|     1|     1| 66   x   x   x   x   x   x   x | 69       |       1     1280       10       10 |       1      546       10       10 | 629046600 |
       70|TIDL_FlattenLayer             |oxPredictor_1/BoxEncodingPredictor/BiasAdd_flatten|     0|     1|     1| 68   x   x   x   x   x   x   x | 70       |       1       24       10       10 |       1        1        1     2400 |         0 |
       71|TIDL_FlattenLayer             |BoxPredictor_1/ClassPredictor/BiasAdd_flatten     |     0|     1|     1| 69   x   x   x   x   x   x   x | 71       |       1      546       10       10 |       1        1        1    54600 |         0 |
       72|TIDL_ConvolutionLayer         |tV2/layer_19_2_Conv2d_2_3x3_s2_512_depthwise/Relu6|     0|     1|     1| 67   x   x   x   x   x   x   x | 72       |       1      256       10       10 |       1      256        5        5 |     70400 |
       73|TIDL_ConvolutionLayer         |r/MobilenetV2/layer_19_2_Conv2d_2_3x3_s2_512/Relu6|     0|     1|     1| 72   x   x   x   x   x   x   x | 73       |       1      256        5        5 |       1      512        5        5 |   3302400 |
       74|TIDL_ConvolutionLayer         |ctor/MobilenetV2/layer_19_1_Conv2d_3_1x1_128/Relu6|     0|     1|     1| 73   x   x   x   x   x   x   x | 74       |       1      512        5        5 |       1      128        5        5 |   1644800 |
       75|TIDL_ConvolutionLayer         |BoxPredictor_2/BoxEncodingPredictor/BiasAdd       |     0|     1|     1| 73   x   x   x   x   x   x   x | 75       |       1      512        5        5 |       1       24        5        5 |   2765400 |
       76|TIDL_ConvolutionLayer         |BoxPredictor_2/ClassPredictor/BiasAdd             |     0|     1|     1| 73   x   x   x   x   x   x   x | 76       |       1      512        5        5 |       1      546        5        5 |  62912850 |
       77|TIDL_FlattenLayer             |oxPredictor_2/BoxEncodingPredictor/BiasAdd_flatten|     0|     1|     1| 75   x   x   x   x   x   x   x | 77       |       1       24        5        5 |       1        1        1      600 |         0 |
       78|TIDL_FlattenLayer             |BoxPredictor_2/ClassPredictor/BiasAdd_flatten     |     0|     1|     1| 76   x   x   x   x   x   x   x | 78       |       1      546        5        5 |       1        1        1    13650 |         0 |
       79|TIDL_ConvolutionLayer         |tV2/layer_19_2_Conv2d_3_3x3_s2_256_depthwise/Relu6|     0|     1|     1| 74   x   x   x   x   x   x   x | 79       |       1      128        5        5 |       1      128        3        3 |     12672 |
       80|TIDL_ConvolutionLayer         |r/MobilenetV2/layer_19_2_Conv2d_3_3x3_s2_256/Relu6|     0|     1|     1| 79   x   x   x   x   x   x   x | 80       |       1      128        3        3 |       1      256        3        3 |    299520 |
       81|TIDL_ConvolutionLayer         |ctor/MobilenetV2/layer_19_1_Conv2d_4_1x1_128/Relu6|     0|     1|     1| 80   x   x   x   x   x   x   x | 81       |       1      256        3        3 |       1      128        3        3 |    297216 |
       82|TIDL_ConvolutionLayer         |BoxPredictor_3/BoxEncodingPredictor/BiasAdd       |     0|     1|     1| 80   x   x   x   x   x   x   x | 82       |       1      256        3        3 |       1       24        3        3 |    497880 |
       83|TIDL_ConvolutionLayer         |BoxPredictor_3/ClassPredictor/BiasAdd             |     0|     1|     1| 80   x   x   x   x   x   x   x | 83       |       1      256        3        3 |       1      546        3        3 |  11326770 |
       84|TIDL_FlattenLayer             |oxPredictor_3/BoxEncodingPredictor/BiasAdd_flatten|     0|     1|     1| 82   x   x   x   x   x   x   x | 84       |       1       24        3        3 |       1        1        1      216 |         0 |
       85|TIDL_FlattenLayer             |BoxPredictor_3/ClassPredictor/BiasAdd_flatten     |     0|     1|     1| 83   x   x   x   x   x   x   x | 85       |       1      546        3        3 |       1        1        1     4914 |         0 |
       86|TIDL_ConvolutionLayer         |tV2/layer_19_2_Conv2d_4_3x3_s2_256_depthwise/Relu6|     0|     1|     1| 81   x   x   x   x   x   x   x | 86       |       1      128        3        3 |       1      128        2        2 |      5632 |
       87|TIDL_ConvolutionLayer         |r/MobilenetV2/layer_19_2_Conv2d_4_3x3_s2_256/Relu6|     0|     1|     1| 86   x   x   x   x   x   x   x | 87       |       1      128        2        2 |       1      256        2        2 |    133120 |
       88|TIDL_ConvolutionLayer         |actor/MobilenetV2/layer_19_1_Conv2d_5_1x1_64/Relu6|     0|     1|     1| 87   x   x   x   x   x   x   x | 88       |       1      256        2        2 |       1       64        2        2 |     66048 |
       89|TIDL_ConvolutionLayer         |BoxPredictor_4/BoxEncodingPredictor/BiasAdd       |     0|     1|     1| 87   x   x   x   x   x   x   x | 89       |       1      256        2        2 |       1       24        2        2 |    221280 |
       90|TIDL_ConvolutionLayer         |BoxPredictor_4/ClassPredictor/BiasAdd             |     0|     1|     1| 87   x   x   x   x   x   x   x | 90       |       1      256        2        2 |       1      546        2        2 |   5034120 |
       91|TIDL_FlattenLayer             |oxPredictor_4/BoxEncodingPredictor/BiasAdd_flatten|     0|     1|     1| 89   x   x   x   x   x   x   x | 91       |       1       24        2        2 |       1        1        1       96 |         0 |
       92|TIDL_FlattenLayer             |BoxPredictor_4/ClassPredictor/BiasAdd_flatten     |     0|     1|     1| 90   x   x   x   x   x   x   x | 92       |       1      546        2        2 |       1        1        1     2184 |         0 |
       93|TIDL_ConvolutionLayer         |tV2/layer_19_2_Conv2d_5_3x3_s2_128_depthwise/Relu6|     0|     1|     1| 88   x   x   x   x   x   x   x | 93       |       1       64        2        2 |       1       64        1        1 |       704 |
       94|TIDL_ConvolutionLayer         |r/MobilenetV2/layer_19_2_Conv2d_5_3x3_s2_128/Relu6|     0|     1|     1| 93   x   x   x   x   x   x   x | 94       |       1       64        1        1 |       1      128        1        1 |      8448 |
       95|TIDL_ConvolutionLayer         |BoxPredictor_5/BoxEncodingPredictor/BiasAdd       |     0|     1|     1| 94   x   x   x   x   x   x   x | 95       |       1      128        1        1 |       1       24        1        1 |     27672 |
       96|TIDL_ConvolutionLayer         |BoxPredictor_5/ClassPredictor/BiasAdd             |     0|     1|     1| 94   x   x   x   x   x   x   x | 96       |       1      128        1        1 |       1      546        1        1 |    629538 |
       97|TIDL_FlattenLayer             |oxPredictor_5/BoxEncodingPredictor/BiasAdd_flatten|     0|     1|     1| 95   x   x   x   x   x   x   x | 97       |       1       24        1        1 |       1        1        1       24 |         0 |
       98|TIDL_FlattenLayer             |BoxPredictor_5/ClassPredictor/BiasAdd_flatten     |     0|     1|     1| 96   x   x   x   x   x   x   x | 98       |       1      546        1        1 |       1        1        1      546 |         0 |
       99|TIDL_ConcatLayer              |tf_ssd_box_conat_layer                            |     0|     6|     1| 52  70  77  84  91  97   x   x | 99       |       1        1        1     4332 |       1        1        1     7668 |         0 |
      100|TIDL_ConcatLayer              |tf_ssd_class_conat_layer                          |     0|     6|     1| 53  71  78  85  92  98   x   x |100       |       1        1        1    98553 |       1        1        1   174447 |         0 |
      101|TIDL_DetectionOutputLayer     |tf_ssd_detection_output_layer                     |     0|     2|     1| 99 100   x   x   x   x   x   x |101       |       1        1        1     7668 |       1        1        1      284 |         0 |
    --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    Total Giga Macs : 1.8991
    --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    
    ~~~~~Running TIDL in PC emulation mode to collect Activations range for each layer~~~~~
    
    Processing config file #0 : /home/dminguzzi/zf_root/psdk_rtos_auto_j7_06_02_00_21/tidl_j7_01_01_00_10/ti_dl/utils/tidlModelImport/tempDir/qunat_stats_config.txt 
    
     Instance created for  /home/dminguzzi/zf_root/psdk_rtos_auto_j7_06_02_00_21/tidl_j7_01_01_00_10/ti_dl/utils/tidlModelImport/tempDir/qunat_stats_config.txt
     ----------------------- TIDL Process with REF_ONLY FLOW ------------------------
    
    #    0 . ..   0    1.00000    0.00000  255.00000 0
       1   29.55005    0.00000    6.00000 0
       2   19.10384    0.00000    6.00000 0
       3    2.68227  -25.88612   23.44386 1
       4   32.99330    0.00000    6.00000 0
       5   34.83830    0.00000    6.00000 0
       6    6.47466  -14.21858   16.25808 1
       7   23.64722    0.00000    6.00000 0
       8   39.19345    0.00000    6.00000 0
       9    5.25114  -23.58157   19.77659 1
      10    2.62557  -23.91149   26.17885 1
      11   40.50244    0.00000    6.00000 0
      12   27.40366    0.00000    6.00000 0
      13    7.59795  -12.76866   11.30831 1
      14   22.57994    0.00000    6.00000 0
      15   36.77746    0.00000    6.00000 0
      16   10.69997  -11.80585   11.82684 1
      17    7.59795  -14.80252   15.32692 1
      18   30.66860    0.00000    6.00000 0
      19   26.78150    0.00000    6.00000 0
      20    5.99617  -12.10213   10.49368 1
      21    2.99809  -18.81409   25.62052 1
      22   22.80662    0.00000    6.00000 0
      23   22.43146    0.00000    6.00000 0
      24    7.09137  -10.83375    8.70198 1
      25   40.18910    0.00000    6.00000 0
      26   22.01139    0.00000    6.00000 0
      27   12.61546   -8.30238    7.41836 1
      28    7.09137  -13.87910   10.76131 1
      29   42.26540    0.00000    6.00000 0
      30   33.72332    0.00000    5.28751 0
      31   14.96330   -7.35706    7.48629 1
      32    7.09137  -14.08401   11.06538 1
      33   39.01711    0.00000    6.00000 0
      34   34.70491    0.00000    6.00000 0
      35    4.20596  -17.09952   15.41200 1
      36    4.20596  -18.80887   17.37861 1
      37   21.33548    0.00000    6.00000 0
      38   23.66273    0.00000    6.00000 0
      39   15.73284   -7.31452    7.71972 1
      40   37.87994    0.00000    6.00000 0
      41   35.59250    0.00000    6.00000 0
      42   11.73005   -9.26040    8.96602 1
      43    5.86503  -11.36371    9.28038 1
      44   21.96165    0.00000    6.00000 0
      45   41.98915    0.00000    6.00000 0
      46    5.83850  -11.06643   15.87925 1
      47    5.83850  -16.65669   14.99744 1
      48   17.34140    0.00000    6.00000 0
      49   17.09563    0.00000    6.00000 0
      50    5.57053  -11.93853    3.77685 1
      51    2.27620  -32.17819    5.33972 1
      52    5.57053  -11.93853    3.77685 1
      53    2.27620  -32.17819    5.33972 1
      54   10.52278   -8.35799    5.28393 1
      55   33.43405    0.00000    6.00000 0
      56   19.40721    0.00000    6.00000 0
      57   10.87102   -7.11988    8.23002 1
      58   10.52278  -11.44244    9.10673 1
      59   31.67789    0.00000    6.00000 0
      60   30.66929    0.00000    6.00000 0
      61    6.97570  -13.30764   11.59326 1
      62    3.48785  -20.46390   16.39621 1
      63   29.24664    0.00000    6.00000 0
      64   25.09659    0.00000    6.00000 0
      65   10.14904   -8.62805    9.02102 1
      66   21.38083    0.00000    6.00000 0
      67   22.76241    0.00000    6.00000 0
      68   26.68347   -3.12899    2.86519 1
      69    5.30026  -21.69319    7.01138 1
      70   26.68347   -3.12899    2.86519 1
      71    5.30026  -21.69319    7.01138 1
      72   21.86424    0.00000    5.12824 0
      73   22.49684    0.00000    6.00000 0
      74   30.97677    0.00000    5.65810 0
      75   37.11251   -2.61367    2.34064 1
      76    6.53047  -15.67562    5.78329 1
      77   37.11251   -2.61367    2.34064 1
      78    6.53047  -15.67562    5.78329 1
      79   44.78882    0.00000    4.51424 0
      80   38.29218    0.00000    6.00000 0
      81   33.53014    0.00000    6.00000 0
      82   34.04901   -2.25273    2.04508 1
      83    5.39757  -13.86998    4.91576 1
      84   34.04901   -2.25273    2.04508 1
      85    5.39757  -13.86998    4.91576 1
      86   35.42421    0.00000    4.49375 0
      87   23.19076    0.00000    6.00000 0
      88   76.49439    0.00000    2.85208 0
      89   50.82088   -2.24317    2.00267 1
      90    7.63559  -12.37241    4.56742 1
      91   50.82088   -2.24317    2.00267 1
      92    7.63559  -12.37241    4.56742 1
      93   51.38946    0.00000    3.43456 0
      94   28.91987    0.00000    6.00000 0
      95   31.03898   -3.77971    0.68582 1
      96    5.50338  -14.53172    7.06756 1
      97   31.03898   -3.77971    0.68582 1
      98    5.50338  -14.53172    7.06756 1
      99    5.57053  -12.02759    3.76984 1
     100    2.27620  -32.07093    6.96060 1
     101    1.00000   -1.00000    1.00000 6
     T    1745.44  ...Segmentation fault (core dumped)
    cd /home/dminguzzi/zf_root/psdk_rtos_auto_j7_06_02_00_21/tidl_j7_01_01_00_10/ti_dl/test && ./PC_dsp_test_dl_algo.out /home/dminguzzi/zf_root/psdk_rtos_auto_j7_06_02_00_21/tidl_j7_01_01_00_10/ti_dl/utils/tidlModelImport/tempDir/configFilesList.txtcp /home/dminguzzi/zf_root/psdk_rtos_auto_j7_06_02_00_21/tidl_j7_01_01_00_10/ti_dl/test/testvecs/config/import/perfsim_base_st_mobilenetV2.cfg tempSimDir/perf_sim_config.txt
    cd /home/dminguzzi/zf_root/psdk_rtos_auto_j7_06_02_00_21/tidl_j7_01_01_00_10/ti_dl/utils/perfsim && ./ti_cnnperfsim.out /home/dminguzzi/zf_root/psdk_rtos_auto_j7_06_02_00_21/tidl_j7_01_01_00_10/ti_dl/utils/tidlModelImport/tempSimDir/perf_sim_config.txt 1 0 2
    
    ------------------ Network Compiler Traces -----------------------------
    Main iteration numer: 0....
    
     Life time alive buffers are with ID: 60101 ( 1), 10102 ( 0), 101 ( 2), 40002 ( 2), 100 ( 1), 20102 ( 0), 40001 ( 2), 
    Preparing for memory allocation : internal iteration number: 0
    successful Memory allocation
    
    -------------------- Network Compiler : Analysis Results are available --------------------
    
    /home/dminguzzi/zf_root/psdk_rtos_auto_j7_06_02_00_21/tidl_j7_01_01_00_10/ti_dl/utils/tidlModelGraphviz/out/tidl_graphVisualiser.out ../../test/testvecs/config/tidl_models/tensorflow/tidl_ssd_mobilenet_v2_net.bin
    ****************************************************
    **               TIDL Model Checker              **
    ****************************************************
    ERROR  : [TIDL_E_QUANT_STATS_NOT_AVAILABLE] tidl_quant_stats_tool.out fails to collect dynamic range. Please look into quant stats log. This model will get fault on target.
    ****************************************************
    **          0 WARNINGS          1 ERRORS          **
    ****************************************************
    
    

  • Hi Diego,

    metaLayersNamesList is mandatory to get decoded detection boxes by TIDL , otherwise, the output would be box and clas regression heads only.

    Did you try with "postProcType = 0" and "numParamBits  = 8"?

    BTW,

    Please refer below for Output tensor formats

    http://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-jacinto7/latest/exports/docs/tidl_j7_01_01_00_10/ti_dl/docs/user_guide_html/md_tidl_fsg_io_tensors_format.html

    Specifically OD output

    http://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-jacinto7/latest/exports/docs/tidl_j7_01_01_00_10/ti_dl/docs/user_guide_html/structTIDL__ODLayerHeaderInfo.html

    Regards,

    Kumar.D

  • Hi Kumar,

      using the default pipeline.config and the exact file I downloaded from TiBox I get:
    TF Meta PipeLine (Proto) File  : ../../test/testvecs/models/public/tensorflow/from_ti/pipeline.config  
    [libprotobuf ERROR google/protobuf/text_format.cc:288] Error parsing text-format object_detection.protos.TrainEvalPipelineConfig: 35:27: Message type "object_detection.protos.SsdFeatureExtractor" has no field named "batch_norm_trainable".
    ERROR: google::protobuf::TextFormat::Parse proto file(../../test/testvecs/models/public/tensorflow/from_ti/pipeline.config) FAILED !!!

    So, I had to remove the line 35 from pipeline.config
          batch_norm_trainable: true
    The pipeline config is one of the files contained in the ssd_mobilenet_v2_coco_2018_03_29.tar.gz

    Have you to do the same, otherwise you get the same error?

    With that setting, with
        numParamBits=8
        postProcType=0
        perfSimConfig       = ../../test/testvecs/config/import/perfsim_base_st_mobilenetV2.cfg
        The import does not raise errors, but if I run the PC_dsp_test_dl_algo, there are no bounding boxes on the output

    However, with postProcType=2 , I still get the Segmentation fault.
    Do you get the same behavior?

    What are the additional settings to get the PC_dsp_test_dl_algo producing the result?
    Thank you

  • Hi Diego,

    We have validated with the input image, Import config and infer config file available in the release package "tidl_j7_01_01_00_10". We get below output 

    Import config file (even though the file name says v1 0.75, actual model used/validated is v2)

    ti_dl\test\testvecs\config\import\public\tensorflow\tidl_import_mobileNetv1_0.75_ssd.txt

    Could you please confirm you are also using the same input image. If not, we are suspecting some output box drawing code issues in the example application.

    The raw output box information stored in the below file, Can you check the number of boxes detected using the below structure on this Raw Data (Read the binary in C code and typecast it as this structure) . You can find more information in the file tidl_image_postproc.c

    testvecs/output/tidl_io_mobilenet_v1_0.75_ssd.bin

  • Hi Kumar,

       I am using the image testvecs/input/ti_lindau_000020.bmp as input, and the import of the MobileNetv1_0.75
    The frozen_inference_graph_opt_1.pb is the one I got from you.

    I have found that I was referring to old bin files in the inference configuration file.
    Now it is all consistent. So:

    I use postProcType = 0 , otherwise I get the segmentation fault in import.
    perfSimConfig = ../../test/testvecs/config/import/perfsim_base.cfg

    Now the infer file refers to the bin files that I produced during the import phase, but when the simulation runs, I get a segmentation fault, same as I get when I run postProcType=2 in import.
    In the output directory, the outData file is empty, but there is a file tidl_ti_ssd_mobilenet_v2_out_data.bin_ti_lindau_000020.bmp_000000.txt with the following content.
    The output image is not written.

    I believe there must be some difference between my environment and yours, for example, did you have to modify the pipeline.config as I explained in my previous post?

       14 testvecs/input/ti_lindau_000020.bmp 0.999115 -44.445602 422.339600 520.050171 514.065063
       10 testvecs/input/ti_lindau_000020.bmp 0.999115 -74.557083 420.663086 531.963989 515.741577
       15 testvecs/input/ti_lindau_000020.bmp 0.998627 17.456985 366.583221 494.543030 521.627502
       12 testvecs/input/ti_lindau_000020.bmp 0.998627 -52.689484 418.388367 491.898651 513.466858
       11 testvecs/input/ti_lindau_000020.bmp 0.997864 93.130951 317.987457 678.262207 459.111420
        7 testvecs/input/ti_lindau_000020.bmp 0.996673 534.691956 -40.841248 937.903259 221.231415
        6 testvecs/input/ti_lindau_000020.bmp 0.996673 503.169556 -42.744926 852.440430 249.131805
       16 testvecs/input/ti_lindau_000020.bmp 0.996673 111.136932 276.837646 605.663086 498.852295
       13 testvecs/input/ti_lindau_000020.bmp 0.996673 114.071793 287.535461 620.925964 382.614014
        8 testvecs/input/ti_lindau_000020.bmp 0.994873 295.385345 123.059982 728.614624 414.936707
        9 testvecs/input/ti_lindau_000020.bmp 0.994873 520.822937 -34.342064 938.773865 227.730591
        5 testvecs/input/ti_lindau_000020.bmp 0.994873 283.749329 -41.506454 766.247375 361.704834
       16 testvecs/input/ti_lindau_000020.bmp 0.994873 671.238342 4.242363 992.662415 226.256989
        1 testvecs/input/ti_lindau_000020.bmp 0.994873 -41.486294 463.562042 168.171860 517.892639
        3 testvecs/input/ti_lindau_000020.bmp 0.992096 258.025635 326.904480 1034.729614 505.733337
       10 testvecs/input/ti_lindau_000020.bmp 0.992096 392.705444 -12.526428 1019.935425 198.763336
        4 testvecs/input/ti_lindau_000020.bmp 0.992096 309.523743 74.862579 727.474670 450.135773
       16 testvecs/input/ti_lindau_000020.bmp 0.992096 -20.992691 -10.738556 456.093323 138.837891
       15 testvecs/input/ti_lindau_000020.bmp 0.992096 -62.643311 5.662193 501.852478 91.032074
       13 testvecs/input/ti_lindau_000020.bmp 0.992096 57.004623 436.890961 545.983887 522.260864
       13 testvecs/input/ti_lindau_000020.bmp 0.992096 589.676392 44.326790 1096.530518 150.218048
       13 testvecs/input/ti_lindau_000020.bmp 0.992096 -80.841019 7.167538 483.654785 89.526733
       11 testvecs/input/ti_lindau_000020.bmp 0.992096 631.320923 36.149040 1054.885986 167.494659
       11 testvecs/input/ti_lindau_000020.bmp 0.992096 -61.284378 3.387478 464.098145 88.757355
        2 testvecs/input/ti_lindau_000020.bmp 0.992096 -18.346123 436.745209 148.834259 534.310791
        5 testvecs/input/ti_lindau_000020.bmp 0.987762 97.640656 105.810928 962.193359 442.023071
        3 testvecs/input/ti_lindau_000020.bmp 0.987762 69.874252 12.582062 510.046265 526.163208
        0 testvecs/input/ti_lindau_000020.bmp 0.987762 534.906128 21.587799 916.193237 593.575684
        5 testvecs/input/ti_lindau_000020.bmp 0.987762 496.766052 231.442947 1050.831299 529.099976
        2 testvecs/input/ti_lindau_000020.bmp 0.987762 213.369019 331.981171 1286.341919 466.163971
       15 testvecs/input/ti_lindau_000020.bmp 0.987762 542.657837 49.733162 1107.153687 144.811676
       14 testvecs/input/ti_lindau_000020.bmp 0.987762 150.467209 277.918915 657.321350 387.681122
       12 testvecs/input/ti_lindau_000020.bmp 0.987762 652.946411 20.226044 1033.260498 151.571671
        1 testvecs/input/ti_lindau_000020.bmp 0.987762 887.024231 463.072357 1096.682373 523.581665
        1 testvecs/input/ti_lindau_000020.bmp 0.987762 -51.579391 375.661133 136.670197 462.307007
        6 testvecs/input/ti_lindau_000020.bmp 0.981170 97.640656 105.810928 962.193359 442.023071
        0 testvecs/input/ti_lindau_000020.bmp 0.981170 324.688080 162.344040 1019.006470 509.503235
        1 testvecs/input/ti_lindau_000020.bmp 0.981170 24.353851 -2.413071 744.053467 370.591248
       20 testvecs/input/ti_lindau_000020.bmp 0.981170 534.906128 21.587799 916.193237 593.575684
        4 testvecs/input/ti_lindau_000020.bmp 0.981170 214.453064 333.180603 1326.649170 458.066040
        0 testvecs/input/ti_lindau_000020.bmp 0.000000 0.000000 51200.000000 28672.000000 0.000000
        0 testvecs/input/ti_lindau_000020.bmp 14.000000 1023.093750 -22.222801 844.679199 260.025085
        1 testvecs/input/ti_lindau_000020.bmp 10.000000 1023.093750 -37.278542 841

    //-----------------------------------------------------------------------------

    modelType          = 1
    numParamBits       = 8
    numFeatureBits     = 8
    quantizationStyle  = 2
    inputNetFile        = "../../test/testvecs/models/public/tensorflow/from_ti/frozen_inference_graph_opt_1.pb"
    outputNetFile       = "../../test/testvecs/config/tidl_models/tensorflow/tidl_ti_ssd_mobilenet_v2_net.bin"
    outputParamsFile    = "../../test/testvecs/config/tidl_models/tensorflow/tidl_ti_ssd_mobilenet_v2_io_"
    inDataNorm  = 1
    inMean = 128 128 128
    inScale =  0.0078125 0.0078125 0.0078125
    inWidth  = 300
    inHeight = 300
    inNumChannels = 3
    inDataNamesList = "Preprocessor/sub"
    outDataNamesList = "BoxPredictor_0/BoxEncodingPredictor/BiasAdd,BoxPredictor_0/ClassPredictor/BiasAdd,BoxPredictor_1/BoxEncodingPredictor/BiasAdd,BoxPredictor_1/ClassPredictor/BiasAdd,BoxPredictor_2/BoxEncodingPredictor/BiasAdd,BoxPredictor_2/ClassPredictor/BiasAdd,BoxPredictor_3/BoxEncodingPredictor/BiasAdd,BoxPredictor_3/ClassPredictor/BiasAdd,BoxPredictor_4/BoxEncodingPredictor/BiasAdd,BoxPredictor_4/ClassPredictor/BiasAdd,BoxPredictor_5/BoxEncodingPredictor/BiasAdd,BoxPredictor_5/ClassPredictor/BiasAdd"
    metaArchType = 1
    metaLayersNamesList = "../../test/testvecs/models/public/tensorflow/from_ti/pipeline.config"
    inData  =   "../../test/testvecs/config/detection_list.txt"
    postProcType = 0
    perfSimConfig = ../../test/testvecs/config/import/perfsim_base.cfg

    // Inference file: tidl_infer_ssd_mobilenet_v2_slim.txt -----------------------

    inFileFormat    = 2
    postProcType    = 2
    numFrames       = 1
    padInBuffInTB   = 1
    netBinFile      = "testvecs/config/tidl_models/tensorflow/tidl_ti_ssd_mobilenet_v2_net.bin"
    ioConfigFile    = "testvecs/config/tidl_models/tensorflow/tidl_ti_ssd_mobilenet_v2_io_1.bin"
    outData         = "testvecs/output/tidl_ti_ssd_mobilenet_v2_out_data.bin"
    inData          = "testvecs/config/detection_list.txt"
    debugTraceLevel = 1
    writeTraceLevel = 1
    reservedCtrl    = 2

    // detection_list.txt" --------------------------------------------------------
    testvecs/input/ti_lindau_000020.bmp testvecs/input/ti_lindau_000020.bmp


  • Hi Kumar,

     I found that if I set reservedCtrl= 0 in the inference file, I get the image :

  • Hi Diego ,

    I am attaching the pipeline.config and outputs in the below zip file.

    Please use the import and infer config files from the release as it is (except the model file paths)

    mobilenet_ssd.zip

  • Hi Kumar,

       with the pipeline.config I was able to run the model in simulation, I checked, it is quite different from the one coming with the model.

    The missing pieces of info were the pipeline.config and the inDataNamesList / outDataNamesList.

    Thank you.

    Diego

  • Diego,

    Thanks for conforming. Yes, I agree the pipeline config looks different for mobilenet v2 ssd in the checkpoint folder. We will check this again and document the necessay information in user guide.

    Regarding the inDataNamesList / outDataNamesList. These are already available in the default import config file provided in the release package.

    We will also add the details on the commmds used for optimizing the model using tensorfloe scripts in the user guide.

  • Hi Kumar,

     just a question to check if I am doing right when I read the output.
    I read the docs on how the input and output tensors are layed out in memory.
     With SSD MobileNet I get only one output tensor, with zero padding, width=284, height=1, num channels=1.

    It means that the TIDL_ODLayerHeaderInfo structure starts at the address pointed by the output tensor, isn't it?
    In all my tests, the contents I read from the TIDL_ODLayerHeaderInfo struct are:
    objInfoSize:   28.000000
    objInfoOffset: 16.000000

    the other fields can vary.
    The fact that I read objInfoOffset=16 means; I believe, that what I read is correctly aligned in memory, so I am reading the header, correct?

    I am doing some tests, because, on the target it detects objects, but in most cases the coordinates, in floating points are negative.
    I understand that, to get the image coordinates, I have to multiply them by the image width and height.

    Thank you


    Best Regads,

    Diego

     

  • Hi Diego,

    Your understanding is right.

    You can refer box drawing code in"tidl_image_postproc.c" around   (gParams.postProcType == 2)  for example usage.