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.

CCS: TDA4x: Tensorflow model issue in PC Emulation mode

Tool/software: Code Composer Studio

Dear Sir,

TIDL version: tidl_j7_01_01_01_01(patch)

I tried to import the Tensorflow model and faced the below error in Import :

"Concat is Only suported accorss channels"

which was resolved by modifying the "tidl_tfImport.cpp" file.

After Importing the model again I was able to Import the model successfully, please find the console output below:

sithara@ubuntu:~/ti/j8/psdk_rtos_auto_j7_06_02_00_21/tidl_j7_01_01_01_01/ti_dl/utils/tidlModelImport$ ./out/tidl_model_import.out /home/sithara/ti/j8/psdk_rtos_auto_j7_06_02_00_21/tidl_j7_01_01_01_01/ti_dl/test/testvecs/config/import/public/tensorflow/tidl_import_DASNet.txt 
TF Model (Proto) File  : /home/sithara/ti/j8/psdk_rtos_auto_j7_06_02_00_21/tidl_j7_01_01_01_01/ti_dl/test/testvecs/models/mando/DASNET/optimized_DASNet.pb  
TIDL Network File      : /home/sithara/ti/j8/psdk_rtos_auto_j7_06_02_00_21/tidl_j7_01_01_01_01/ti_dl/test/testvecs/config/tidl_models/tensorflow/tidl_net_DASNet_v0.4.bin  
TIDL IO Info File      : /home/sithara/ti/j8/psdk_rtos_auto_j7_06_02_00_21/tidl_j7_01_01_01_01/ti_dl/test/testvecs/config/tidl_models/tensorflow/tidl_io_DASNet_v0.4_  

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

Processing config file #0 : /home/sithara/ti/j8/psdk_rtos_auto_j7_06_02_00_21/tidl_j7_01_01_01_01/ti_dl/utils/tidlModelImport/tempDir/qunat_stats_config.txt 
 ----------------------- TIDL Process with REF_ONLY FLOW ------------------------

#    0 . .. T    9060.04  ... .... .....
------------------ Network Compiler Traces -----------------------------
Main iteration number: 0....

 Life time alive buffers are with ID: 10128 ( 0), 60127 ( 1), 40002 ( 2), 126 ( 1), 127 ( 2), 20128 ( 0), 40002 ( 2), 40002 ( 2), 40001 ( 2), 
Info: Instance mem is larger than available memory with memspace = 1 and data Id  = 5
Coexist Id with this are :      2,      3, 
Main iteration number: 1....

 Life time alive buffers are with ID: 10128 ( 0), 60127 ( 1), 40002 ( 2), 127 ( 2), 126 ( 1), 20128 ( 0), 40002 ( 2), 40002 ( 2), 40001 ( 2), 
successful Memory allocation

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

****************************************************
**                ALL MODEL CHECK PASSED          **
****************************************************

I tried to run the imported model through PC Emulation mode and faced the issue below:

sithara@ubuntu:~/ti/j8/psdk_rtos_auto_j7_06_02_00_21/tidl_j7_01_01_01_01/ti_dl/test$ ./PC_dsp_test_dl_algo.out

Processing config file #0 : testvecs/config/infer/public/tensorflow/tidl_infer_DASNet.txt 
     2122872,      2.025 0x7fbd064f2010
Alg Alloc for Layer # -    0
Alg Alloc for Layer # -    1
Alg Alloc for Layer # -    2
Alg Alloc for Layer # -    3
Alg Alloc for Layer # -    4
Alg Alloc for Layer # -    5
Alg Alloc for Layer # -    6
Alg Alloc for Layer # -    7
Alg Alloc for Layer # -    8
Alg Alloc for Layer # -    9
Alg Alloc for Layer # -   10
Alg Alloc for Layer # -   11
Alg Alloc for Layer # -   12
Alg Alloc for Layer # -   13
Alg Alloc for Layer # -   14
Alg Alloc for Layer # -   15
Alg Alloc for Layer # -   16
Alg Alloc for Layer # -   17
Alg Alloc for Layer # -   18
Alg Alloc for Layer # -   19
Alg Alloc for Layer # -   20
Alg Alloc for Layer # -   21
Alg Alloc for Layer # -   22
Alg Alloc for Layer # -   23
Alg Alloc for Layer # -   24
Alg Alloc for Layer # -   25
Alg Alloc for Layer # -   26
Alg Alloc for Layer # -   27
Alg Alloc for Layer # -   28
Alg Alloc for Layer # -   29
Alg Alloc for Layer # -   30
Alg Alloc for Layer # -   31
Alg Alloc for Layer # -   32
Alg Alloc for Layer # -   33
Alg Alloc for Layer # -   34
Alg Alloc for Layer # -   35
Alg Alloc for Layer # -   36
Alg Alloc for Layer # -   37
Alg Alloc for Layer # -   38
Alg Alloc for Layer # -   39
Alg Alloc for Layer # -   40
Alg Alloc for Layer # -   41
Alg Alloc for Layer # -   42
Alg Alloc for Layer # -   43
Alg Alloc for Layer # -   44
Alg Alloc for Layer # -   45
Alg Alloc for Layer # -   46
Alg Alloc for Layer # -   47
Alg Alloc for Layer # -   48
Alg Alloc for Layer # -   49
Alg Alloc for Layer # -   50
Alg Alloc for Layer # -   51
Alg Alloc for Layer # -   52
Alg Alloc for Layer # -   53
Alg Alloc for Layer # -   54
Alg Alloc for Layer # -   55
Alg Alloc for Layer # -   56
Alg Alloc for Layer # -   57
Alg Alloc for Layer # -   58
Alg Alloc for Layer # -   59
Alg Alloc for Layer # -   60
Alg Alloc for Layer # -   61
Alg Alloc for Layer # -   62
Alg Alloc for Layer # -   63
Alg Alloc for Layer # -   64
Alg Alloc for Layer # -   65
Alg Alloc for Layer # -   66
Alg Alloc for Layer # -   67
Alg Alloc for Layer # -   68
Alg Alloc for Layer # -   69
Alg Alloc for Layer # -   70
Alg Alloc for Layer # -   71
Alg Alloc for Layer # -   72
Alg Alloc for Layer # -   73
Alg Alloc for Layer # -   74
Alg Alloc for Layer # -   75
Alg Alloc for Layer # -   76
Alg Alloc for Layer # -   77
Alg Alloc for Layer # -   78
Alg Alloc for Layer # -   79
Alg Alloc for Layer # -   80
Alg Alloc for Layer # -   81
Alg Alloc for Layer # -   82
Alg Alloc for Layer # -   83
Alg Alloc for Layer # -   84
Alg Alloc for Layer # -   85
Alg Alloc for Layer # -   86
Alg Alloc for Layer # -   87
Alg Alloc for Layer # -   88
Alg Alloc for Layer # -   89
Alg Alloc for Layer # -   90
Alg Alloc for Layer # -   91
Alg Alloc for Layer # -   92
Alg Alloc for Layer # -   93
Alg Alloc for Layer # -   94
Alg Alloc for Layer # -   95
Alg Alloc for Layer # -   96
Alg Alloc for Layer # -   97
Alg Alloc for Layer # -   98
Alg Alloc for Layer # -   99
Alg Alloc for Layer # -  100
Alg Alloc for Layer # -  101
Alg Alloc for Layer # -  102
Alg Alloc for Layer # -  103
Alg Alloc for Layer # -  104
Alg Alloc for Layer # -  105
Alg Alloc for Layer # -  106
Alg Alloc for Layer # -  107
Alg Alloc for Layer # -  108
Alg Alloc for Layer # -  109
Alg Alloc for Layer # -  110
Alg Alloc for Layer # -  111
Alg Alloc for Layer # -  112
Alg Alloc for Layer # -  113
Alg Alloc for Layer # -  114
Alg Alloc for Layer # -  115
Alg Alloc for Layer # -  116
Alg Alloc for Layer # -  117
Alg Alloc for Layer # -  118
Alg Alloc for Layer # -  119
Alg Alloc for Layer # -  120
Alg Alloc for Layer # -  121
Alg Alloc for Layer # -  122
Alg Alloc for Layer # -  123
Alg Alloc for Layer # -  124
Alg Alloc for Layer # -  125
Alg Alloc for Layer # -  126
Alg Alloc for Layer # -  127
Alg Alloc for Layer # -  128
Num,    Space,     SizeinBytes,   SineInMB
   0,    17,         2824,      0.003 0x5625775a4550
   1,    17,          128,      0.000 0x562577581460
   2,    17,        16384,      0.016 0x7fbd066f9080
   3,    17,       458752,      0.438 0x7fbd066fd080
   4,    17,      8159232,      7.781 0x7fbd0676d080
   5,    17,       588564,      0.561 0x7fbd68aa3010
   6,    17,          256,      0.000 0x7fbd06f35080
   7,    17,      2251008,      2.147 0x7fbd06f35180
   8,    17,     37748864,     36.000 0x7fbd0715aa80
   9,    17,     23923712,     22.815 0x7fbd0955ab00
  10,    17,      4788480,      4.567 0x7fbd06060010
  11,    17,      1240296,      1.183 0x7fbd05f31010
  12,    17,         6208,      0.006 0x7fbd0ac2b700
Total External Memory (DDR) Size =     79184708,     75.516 
Alg Init for Layer # -    0
Alg Init for Layer # -    1
Alg Init for Layer # -    2
Alg Init for Layer # -    3
Alg Init for Layer # -    4
Alg Init for Layer # -    5
Alg Init for Layer # -    6
Alg Init for Layer # -    7
Alg Init for Layer # -    8
Alg Init for Layer # -    9
Alg Init for Layer # -   10
Alg Init for Layer # -   11
Alg Init for Layer # -   12
Alg Init for Layer # -   13
Alg Init for Layer # -   14
Alg Init for Layer # -   15
Alg Init for Layer # -   16
Alg Init for Layer # -   17
Alg Init for Layer # -   18
Alg Init for Layer # -   19
Alg Init for Layer # -   20
Alg Init for Layer # -   21
Alg Init for Layer # -   22
Alg Init for Layer # -   23
Alg Init for Layer # -   24
Alg Init for Layer # -   25
Alg Init for Layer # -   26
Alg Init for Layer # -   27
Alg Init for Layer # -   28
Alg Init for Layer # -   29
Alg Init for Layer # -   30
Alg Init for Layer # -   31
Alg Init for Layer # -   32
Alg Init for Layer # -   33
Alg Init for Layer # -   34
Alg Init for Layer # -   35
Alg Init for Layer # -   36
Alg Init for Layer # -   37
Alg Init for Layer # -   38
Alg Init for Layer # -   39
Alg Init for Layer # -   40
Alg Init for Layer # -   41
Alg Init for Layer # -   42
Alg Init for Layer # -   43
Alg Init for Layer # -   44
Alg Init for Layer # -   45
Alg Init for Layer # -   46
Alg Init for Layer # -   47
Alg Init for Layer # -   48
Alg Init for Layer # -   49
Alg Init for Layer # -   50
Alg Init for Layer # -   51
Alg Init for Layer # -   52
Alg Init for Layer # -   53
Alg Init for Layer # -   54
Alg Init for Layer # -   55
Alg Init for Layer # -   56
Alg Init for Layer # -   57
Alg Init for Layer # -   58
Alg Init for Layer # -   59
Alg Init for Layer # -   60
Alg Init for Layer # -   61
Alg Init for Layer # -   62
Alg Init for Layer # -   63
Alg Init for Layer # -   64
Alg Init for Layer # -   65
Alg Init for Layer # -   66
Alg Init for Layer # -   67
Alg Init for Layer # -   68
Alg Init for Layer # -   69
Alg Init for Layer # -   70
Alg Init for Layer # -   71
Alg Init for Layer # -   72
Alg Init for Layer # -   73
Alg Init for Layer # -   74
Alg Init for Layer # -   75
Alg Init for Layer # -   76
Alg Init for Layer # -   77
Alg Init for Layer # -   78
Alg Init for Layer # -   79
Alg Init for Layer # -   80
Alg Init for Layer # -   81
Alg Init for Layer # -   82
Alg Init for Layer # -   83
Alg Init for Layer # -   84
Alg Init for Layer # -   85
Alg Init for Layer # -   86
Alg Init for Layer # -   87
Alg Init for Layer # -   88
Alg Init for Layer # -   89
Alg Init for Layer # -   90
Alg Init for Layer # -   91
Alg Init for Layer # -   92
Alg Init for Layer # -   93
Alg Init for Layer # -   94
Alg Init for Layer # -   95
Alg Init for Layer # -   96
Alg Init for Layer # -   97
Alg Init for Layer # -   98
Alg Init for Layer # -   99
Alg Init for Layer # -  100
Alg Init for Layer # -  101
Alg Init for Layer # -  102
Alg Init for Layer # -  103
Alg Init for Layer # -  104
Alg Init for Layer # -  105
Alg Init for Layer # -  106
Alg Init for Layer # -  107
Alg Init for Layer # -  108
Alg Init for Layer # -  109
Alg Init for Layer # -  110
Alg Init for Layer # -  111
Alg Init for Layer # -  112
Alg Init for Layer # -  113
Alg Init for Layer # -  114
Alg Init for Layer # -  115
Alg Init for Layer # -  116
Alg Init for Layer # -  117
Alg Init for Layer # -  118
Alg Init for Layer # -  119
Alg Init for Layer # -  120
Alg Init for Layer # -  121
Alg Init for Layer # -  122
Alg Init for Layer # -  123
Alg Init for Layer # -  124
Alg Init for Layer # -  125
Alg Init for Layer # -  126
Alg Init for Layer # -  127
Alg Init for Layer # -  128
Not able to allocate intAlgHandle memory
Algorithm Init failed with error number: -1
Error at line:   496 : in file          src/tidl_tb.c, of function : tidlMultiInstanceTest 
Invalid Error Type!

I am sharing the Import and inference configuration file for your reference, please let me know if I have made a mistake in the process and kindly help us to resolve the issue.

modelType = 1
numParamBits = 8
numFeatureBits = 8
quantizationStyle = 3
inQuantFactor = 255.0
inElementType = 0
inputNetFile      = "/home/sithara/ti/j8/psdk_rtos_auto_j7_06_02_00_21/tidl_j7_01_01_01_01/ti_dl/test/testvecs/models/mando/DASNET/optimized_DASNet.pb"
outputNetFile      = "/home/sithara/ti/j8/psdk_rtos_auto_j7_06_02_00_21/tidl_j7_01_01_01_01/ti_dl/test/testvecs/config/tidl_models/tensorflow/tidl_net_DASNet_v0.4.bin"
outputParamsFile   = "/home/sithara/ti/j8/psdk_rtos_auto_j7_06_02_00_21/tidl_j7_01_01_01_01/ti_dl/test/testvecs/config/tidl_models/tensorflow/tidl_io_DASNet_v0.4_"
inWidth  = 608
inHeight = 608 
inNumChannels = 3
inFileFormat = 0
inDataFormat = 1
inData = "/home/sithara/ti/j8/psdk_rtos_auto_j7_06_02_00_21/tidl_j7_01_01_01_01/ti_dl/test/testvecs/input/DASNET/001.bmp"
postProcType = 2
perfSimConfig = "/home/sithara/ti/j8/psdk_rtos_auto_j7_06_02_00_21/tidl_j7_01_01_01_01/ti_dl/test/testvecs/config/import/perfsim_base.cfg"

inFileFormat = 0
postProcType = 2
numFrames = 1
netBinFile = "/home/sithara/ti/j8/psdk_rtos_auto_j7_06_02_00_21/tidl_j7_01_01_01_01/ti_dl/test/testvecs/config/tidl_models/tensorflow/tidl_net_DASNet_v0.4.bin"
ioConfigFile = "/home/sithara/ti/j8/psdk_rtos_auto_j7_06_02_00_21/tidl_j7_01_01_01_01/ti_dl/test/testvecs/config/tidl_models/tensorflow/tidl_io_DASNet_v0.4_1.bin"
inData  = "/home/sithara/ti/j8/psdk_rtos_auto_j7_06_02_00_21/tidl_j7_01_01_01_01/ti_dl/test/testvecs/input/DASNET/001.bmp"
outData = "/home/sithara/ti/j8/psdk_rtos_auto_j7_06_02_00_21/tidl_j7_01_01_01_01/ti_dl/test/testvecs/output/dasnet.bin"
debugTraceLevel = 2
writeTraceLevel = 3
writeOutput = 1

Thanks and Regards,

Vyom Mishra

  • Can you share the  updated " "tidl_tfImport.cpp" and link the the model used for tetsing.

  • Dear Sir,

    We have one more observation regarding the import.

    we have provided the *.bmp image as a list to the import config file and observed the error while collecting the range.

    Please find the console output of import below:

    sithara@ubuntu:~/ti/j8/psdk_rtos_auto_j7_06_02_00_21/tidl_j7_01_01_01_01/ti_dl/utils/tidlModelImport$ ./out/tidl_model_import.out /home/sithara/ti/j8/psdk_rtos_auto_j7_06_02_00_21/tidl_j7_01_01_01_01/ti_dl/test/testvecs/config/import/public/tensorflow/tidl_import_DASNet.txt 
    TF Model (Proto) File  : /home/sithara/ti/j8/psdk_rtos_auto_j7_06_02_00_21/tidl_j7_01_01_01_01/ti_dl/test/testvecs/models/mando/DASNET/optimized_DASNet.pb  
    TIDL Network File      : /home/sithara/ti/j8/psdk_rtos_auto_j7_06_02_00_21/tidl_j7_01_01_01_01/ti_dl/test/testvecs/config/tidl_models/tensorflow/tidl_net_DASNet_v0.4.bin  
    TIDL IO Info File      : /home/sithara/ti/j8/psdk_rtos_auto_j7_06_02_00_21/tidl_j7_01_01_01_01/ti_dl/test/testvecs/config/tidl_models/tensorflow/tidl_io_DASNet_v0.4_  
    INFO : Couldn't open inData file: /home/sithara/ti/j8/psdk_rtos_auto_j7_06_02_00_21/tidl_j7_01_01_01_01/ti_dl/test/testvecs/input/config/DASNET.txt  , Skipping Range Collection for Quantization 
    
    ------------------ Network Compiler Traces -----------------------------
    Main iteration number: 0....
    
     Life time alive buffers are with ID: 10128 ( 0), 60127 ( 1), 40002 ( 2), 126 ( 1), 127 ( 2), 20128 ( 0), 40002 ( 2), 40002 ( 2), 40001 ( 2), 
    Info: Instance mem is larger than available memory with memspace = 1 and data Id  = 5
    Coexist Id with this are :      2,      3, 
    Main iteration number: 1....
    
     Life time alive buffers are with ID: 10128 ( 0), 60127 ( 1), 40002 ( 2), 127 ( 2), 126 ( 1), 20128 ( 0), 40002 ( 2), 40002 ( 2), 40001 ( 2), 
    successful Memory allocation
    
    -------------------- Network Compiler : Analysis Results are available --------------------
    
    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          **
    
    

    We have not used the quantstatTool parameter in the import config( followed thread https://e2e.ti.com/support/processors/f/791/t/887454) but still facing issue.

    Please find the import config file used in this 

    modelType = 1
    numParamBits = 8
    numFeatureBits = 8
    quantizationStyle = 3
    inQuantFactor = 255.0
    inElementType = 0
    inputNetFile      = "/home/sithara/ti/j8/psdk_rtos_auto_j7_06_02_00_21/tidl_j7_01_01_01_01/ti_dl/test/testvecs/models/mando/DASNET/optimized_DASNet.pb"
    outputNetFile      = "/home/sithara/ti/j8/psdk_rtos_auto_j7_06_02_00_21/tidl_j7_01_01_01_01/ti_dl/test/testvecs/config/tidl_models/tensorflow/tidl_net_DASNet_v0.4.bin"
    outputParamsFile   = "/home/sithara/ti/j8/psdk_rtos_auto_j7_06_02_00_21/tidl_j7_01_01_01_01/ti_dl/test/testvecs/config/tidl_models/tensorflow/tidl_io_DASNet_v0.4_"
    inWidth  = 608
    inHeight = 608 
    inNumChannels = 3
    inFileFormat = 2
    inDataFormat = 1
    inData = "/home/sithara/ti/j8/psdk_rtos_auto_j7_06_02_00_21/tidl_j7_01_01_01_01/ti_dl/test/testvecs/input/config/DASNET.txt"
    postProcType = 2
    perfSimConfig = "/home/sithara/ti/j8/psdk_rtos_auto_j7_06_02_00_21/tidl_j7_01_01_01_01/ti_dl/test/testvecs/config/import/perfsim_base.cfg"
    
    

    Why still this error "TIDL_E_QUANT_STAT_NOT_AVAILABLE" exists?

    While providing the BMP image directly(not from list) to the import tool, why the above error is not observed[as shared in the query above]? 

    Please help us to resolve the same.

    As of now, I am sharing you the code changes made by my to resolve the issue ""Concat is Only suported accorss channels""  in the below file

    tidl_tfImport.cpp

    Line number 687-705( code changes)

    Thanks and Regards,

    Vyom Mishra

  • It looks like the below file is not available. So quantization step is skipped
    INFO : Couldn't open inData file: /home/sithara/ti/j8/psdk_rtos_auto_j7_06_02_00_21/tidl_j7_01_01_01_01/ti_dl/test/testvecs/input/config/DASNET.txt  , Skipping Range Collection for Quantization
    -
  • Dear Sir,

    Thanks for the Support.

    Regards,

    Vyom Mishra