模型结果校验¶
一、工具的作用¶
校验对应平台(OpenCL,Metal,Cuda,ARM)的模型输出结果是否正确。
二、编译¶
编译model_check工具需要将以下宏设置为ON:
- 打开以下选项编译TNN(编译方法参照TNN编译文档)
TNN_CPU_ENABLETNN_MODEL_CHECK_ENABLE- 对应device的宏,如
TNN_OPENCL_ENABLE,TNN_ARM_ENABLE
三、校验工具使用¶
1. 命令¶
./model_check [-h] [-p] [-m] [-d] [-i] [-n] [-s] [-o] [-f] <param>
2. 参数说明¶
| 命令参数 | 是否必须 | 带参数 | 参数说明 |
|---|---|---|---|
| -h, --help | 输出命令提示。 | ||
| -p, --proto | √ | √ | 指定tnnproto模型描述文件。 |
| -m, --model | √ | √ | 指定tnnmodel模型参数文件。 |
| -d, --device | √ | √ | 指定模型执行的平台,如OPENCL,ARM,METAL等。 |
| -i, --input | √ | 指定输入文件。目前支持格式为: • 文本文件(文件后缀为.txt) • 常用图片格式文件(文件后缀为 .jpg .jpeg .png .bmp) 如果不指定,则会使用 (-1, 1) 随机输入 |
|
| -n, --bias | √ | 预处理,仅对输入为图片时有效。对输入数据各通道进行bias操作,参数格式为:0.0,0.0,0.0 | |
| -s, --scale | √ | 预处理,仅对输入为图片时有效。对输入数据各通道进行scale操作,参数格式为:1.0,1.0,1.0 | |
| -o, --output | 是否保存最终的输出。 | ||
| -f, --ref | √ | 采用指定输出进行结果对比。目前支持格式为: • 文本文件(文件后缀为.txt),数据存储按照NCHW格式,以换行符分隔。 |
四、执行脚本¶
五、工具限制¶
- 目前只支持fp32的模型校验;
- 目前只针对fp32精度下的结果进行校验;