Check whether the output of the model on corresponding platform (OpenCL, Metal, Cuda, ARM) is correct.
To compile the model_check tool, the following macro must be set to ON:
- Turn on the following options to compile TNN (For the compilation method, please refer to Compile TNN)
TNN_CPU_ENABLE
TNN_MODEL_CHECK_ENABLE
- set for corresponding device,such as
TNN_OPENCL_ENABLE
,TNN_ARM_ENABLE
./model_check [-h] [-p] [-m] [-d] [-i] [-n] [-s] [-o] [-f] <param>
option | mandatory | with value | description |
---|---|---|---|
-h, --help | Output command prompt. | ||
-p, --proto | √ | √ | Specify tnnproto model description file. |
-m, --model | √ | √ | Specify the tnnmodel model parameter file. |
-d, --device | √ | √ | Specify the platform on which the model is executed, such as OPENCL, ARM, METAL, etc. |
-i, --input_path | √ | Specify the input file. The currently supported formats are: • Text file (the file suffix is .txt) • Common picture format files (file suffix is .jpg .jpeg .png .bmp) If not specified, (-1, 1) will be used for random input |
|
-n, --mean | √ | Pre-processing, mean operation on each channel of input data, parameter format: 0.0, 0.0, 0.0 | |
-s, --scale | √ | Pre-processing, scale the input data channels, the parameter format is: 1.0, 1.0, 1.0 | |
-o, --output | Whether to save the final output. | ||
-f, --ref | √ | Use the specified output to compare the results. The currently supported formats are: • Text file (file suffix is .txt), data storage is in NCHW format, separated by newline. |
Copy the tnnproto and tnnmodel files of the model to be verified into <path_to_tnn>/platforms/android/modles
and rename them to test.tnnproto
and test.tnnmodel
` cd <path_to_tnn>/platforms/android/ ./model_check_android.sh -c -p
`
` cd <path_to_tnn>/platforms/linux/ ./build_model_check.sh -c
`
` <path_to_tnn>/platforms/linux/build/model_check -p <path_to_tnnproto> -m <path_to_tnnmodel> -d <DEVICE>
`
- Currently the tool only supports fp32 model verification;
- At present, only the fp32 results can be verified;