diff --git a/docs/tipc_test/README.md b/docs/tipc_test/README.md index 122d8d02286fb100b5d9afc3b4013ddbeba7683a..89d225a455664ec82dba5c35d129135224caabf2 100644 --- a/docs/tipc_test/README.md +++ b/docs/tipc_test/README.md @@ -1 +1,44 @@ -# tipc 文档 +# 飞桨训推一体认证(TIPC)开发文档 + +## 1. TIPC简介 + +飞桨除了基本的模型训练和预测,还提供了支持多端多平台的高性能推理部署工具。飞桨训推一体认证(TIPC)旨在为用户提供所有飞桨模型的训练推理部署打通情况,即TIPC认证信息,同时提供一套自动化测试工具,方便用户进行一键测试。本文主要介绍了TIPC测试的接入规范。 + +
+ +
+ +## 2. 接入TIPC + +对于已完成训练推理功能开发的模型,可以按照本教程接入TIPC测试。模型训练推理功能开发,请参考[飞桨官方文档](https://www.paddlepaddle.org.cn/documentation/docs/zh/guides/index_cn.html)。TIPC接入流程一般分为`开发测试工具`和`撰写测试文档`两步。 + +### 2.1 开发测试工具 + +参考样板间和开发文档完成测试工具开发: + +- 测试工具样板间:https://github.com/PaddlePaddle/PaddleOCR/tree/dygraph/test_tipc +- 测试工具开发文档: + - [基础训练预测](./development_specification_docs/train_infer_python.md) + - [多机多卡训练] + - [混合精度训练] + - [c++预测](./development_specification_docs/inference_cpp.md) + - [Serving](./development_specification_docs/serving.md) + - [Lite ARM CPU](./development_specification_docs/Lite_arm_cpu_cpp_infer.md) + - [Lite OpenCL ARM GPU](./development_specification_docs/Lite_arm_gpu_opencl_cpp_infer.md) + - [Lite Metal ARM GPU] + - [Paddle2ONNX](./development_specification_docs/paddle2onnx.md) + - [Paddle.js] + - [XPU] + - [XPU2] + - [DCU] + - [NPU] + - [Jetson] + - [Windows] + - [MacOS] + +### 2.2 撰写测试文档 + +参考测试文档样板间撰写测试文档: + +- 测试文档样板间:https://github.com/PaddlePaddle/PaddleOCR/blob/dygraph/test_tipc/readme.md + diff --git "a/docs/tipc_test/\345\274\200\345\217\221\346\226\207\346\241\243/Lite_arm_cpu_cpp\351\242\204\346\265\213\346\265\213\350\257\225\345\274\200\345\217\221\350\247\204\350\214\203.md" b/docs/tipc_test/development_specification_docs/Lite_arm_cpu_cpp_infer.md similarity index 100% rename from "docs/tipc_test/\345\274\200\345\217\221\346\226\207\346\241\243/Lite_arm_cpu_cpp\351\242\204\346\265\213\346\265\213\350\257\225\345\274\200\345\217\221\350\247\204\350\214\203.md" rename to docs/tipc_test/development_specification_docs/Lite_arm_cpu_cpp_infer.md diff --git "a/docs/tipc_test/\345\274\200\345\217\221\346\226\207\346\241\243/Lite_arm_gpu_opencl_cpp\351\242\204\346\265\213\346\265\213\350\257\225\345\274\200\345\217\221\350\247\204\350\214\203.md" b/docs/tipc_test/development_specification_docs/Lite_arm_gpu_opencl_cpp_infer.md similarity index 100% rename from "docs/tipc_test/\345\274\200\345\217\221\346\226\207\346\241\243/Lite_arm_gpu_opencl_cpp\351\242\204\346\265\213\346\265\213\350\257\225\345\274\200\345\217\221\350\247\204\350\214\203.md" rename to docs/tipc_test/development_specification_docs/Lite_arm_gpu_opencl_cpp_infer.md diff --git "a/docs/tipc_test/\345\274\200\345\217\221\346\226\207\346\241\243/imgs/autolog_example.png" b/docs/tipc_test/development_specification_docs/images/autolog_example.png similarity index 100% rename from "docs/tipc_test/\345\274\200\345\217\221\346\226\207\346\241\243/imgs/autolog_example.png" rename to docs/tipc_test/development_specification_docs/images/autolog_example.png diff --git "a/docs/tipc_test/\345\274\200\345\217\221\346\226\207\346\241\243/imgs/autolog_results.png" b/docs/tipc_test/development_specification_docs/images/autolog_results.png similarity index 100% rename from "docs/tipc_test/\345\274\200\345\217\221\346\226\207\346\241\243/imgs/autolog_results.png" rename to docs/tipc_test/development_specification_docs/images/autolog_results.png diff --git "a/docs/tipc_test/\345\274\200\345\217\221\346\226\207\346\241\243/imgs/autolog_time.png" b/docs/tipc_test/development_specification_docs/images/autolog_time.png similarity index 100% rename from "docs/tipc_test/\345\274\200\345\217\221\346\226\207\346\241\243/imgs/autolog_time.png" rename to docs/tipc_test/development_specification_docs/images/autolog_time.png diff --git "a/docs/tipc_test/\345\274\200\345\217\221\346\226\207\346\241\243/images/lite_arm_cpu_params.png" b/docs/tipc_test/development_specification_docs/images/lite_arm_cpu_params.png similarity index 100% rename from "docs/tipc_test/\345\274\200\345\217\221\346\226\207\346\241\243/images/lite_arm_cpu_params.png" rename to docs/tipc_test/development_specification_docs/images/lite_arm_cpu_params.png diff --git "a/docs/tipc_test/\345\274\200\345\217\221\346\226\207\346\241\243/images/lite_arm_gpu_opencl_params.png" b/docs/tipc_test/development_specification_docs/images/lite_arm_gpu_opencl_params.png similarity index 100% rename from "docs/tipc_test/\345\274\200\345\217\221\346\226\207\346\241\243/images/lite_arm_gpu_opencl_params.png" rename to docs/tipc_test/development_specification_docs/images/lite_arm_gpu_opencl_params.png diff --git "a/docs/tipc_test/\345\274\200\345\217\221\346\226\207\346\241\243/images/lite_auto_log.png" b/docs/tipc_test/development_specification_docs/images/lite_auto_log.png similarity index 100% rename from "docs/tipc_test/\345\274\200\345\217\221\346\226\207\346\241\243/images/lite_auto_log.png" rename to docs/tipc_test/development_specification_docs/images/lite_auto_log.png diff --git "a/docs/tipc_test/\345\274\200\345\217\221\346\226\207\346\241\243/imgs/mac_train_params.png" b/docs/tipc_test/development_specification_docs/images/mac_train_params.png similarity index 100% rename from "docs/tipc_test/\345\274\200\345\217\221\346\226\207\346\241\243/imgs/mac_train_params.png" rename to docs/tipc_test/development_specification_docs/images/mac_train_params.png diff --git "a/docs/tipc_test/\345\274\200\345\217\221\346\226\207\346\241\243/imgs/pipline.png" b/docs/tipc_test/development_specification_docs/images/pipline.png similarity index 100% rename from "docs/tipc_test/\345\274\200\345\217\221\346\226\207\346\241\243/imgs/pipline.png" rename to docs/tipc_test/development_specification_docs/images/pipline.png diff --git "a/docs/tipc_test/\345\274\200\345\217\221\346\226\207\346\241\243/images/serving_link.jpg" b/docs/tipc_test/development_specification_docs/images/serving_link.jpg similarity index 100% rename from "docs/tipc_test/\345\274\200\345\217\221\346\226\207\346\241\243/images/serving_link.jpg" rename to docs/tipc_test/development_specification_docs/images/serving_link.jpg diff --git "a/docs/tipc_test/\345\274\200\345\217\221\346\226\207\346\241\243/images/serving_params.jpg" b/docs/tipc_test/development_specification_docs/images/serving_params.jpg similarity index 100% rename from "docs/tipc_test/\345\274\200\345\217\221\346\226\207\346\241\243/images/serving_params.jpg" rename to docs/tipc_test/development_specification_docs/images/serving_params.jpg diff --git "a/docs/tipc_test/\345\274\200\345\217\221\346\226\207\346\241\243/images/tipc_cpp_infer.png" b/docs/tipc_test/development_specification_docs/images/tipc_cpp_infer.png similarity index 100% rename from "docs/tipc_test/\345\274\200\345\217\221\346\226\207\346\241\243/images/tipc_cpp_infer.png" rename to docs/tipc_test/development_specification_docs/images/tipc_cpp_infer.png diff --git "a/docs/tipc_test/\345\274\200\345\217\221\346\226\207\346\241\243/images/tipc_cpp_infer_gt.png" b/docs/tipc_test/development_specification_docs/images/tipc_cpp_infer_gt.png similarity index 100% rename from "docs/tipc_test/\345\274\200\345\217\221\346\226\207\346\241\243/images/tipc_cpp_infer_gt.png" rename to docs/tipc_test/development_specification_docs/images/tipc_cpp_infer_gt.png diff --git "a/docs/tipc_test/\345\274\200\345\217\221\346\226\207\346\241\243/images/tipc_cpp_infer_log.png" b/docs/tipc_test/development_specification_docs/images/tipc_cpp_infer_log.png similarity index 100% rename from "docs/tipc_test/\345\274\200\345\217\221\346\226\207\346\241\243/images/tipc_cpp_infer_log.png" rename to docs/tipc_test/development_specification_docs/images/tipc_cpp_infer_log.png diff --git "a/docs/tipc_test/\345\274\200\345\217\221\346\226\207\346\241\243/images/tipc_cpp_infer_params.png" b/docs/tipc_test/development_specification_docs/images/tipc_cpp_infer_params.png similarity index 100% rename from "docs/tipc_test/\345\274\200\345\217\221\346\226\207\346\241\243/images/tipc_cpp_infer_params.png" rename to docs/tipc_test/development_specification_docs/images/tipc_cpp_infer_params.png diff --git "a/docs/tipc_test/\345\274\200\345\217\221\346\226\207\346\241\243/images/tipc_cpp_infer_prepare.png" b/docs/tipc_test/development_specification_docs/images/tipc_cpp_infer_prepare.png similarity index 100% rename from "docs/tipc_test/\345\274\200\345\217\221\346\226\207\346\241\243/images/tipc_cpp_infer_prepare.png" rename to docs/tipc_test/development_specification_docs/images/tipc_cpp_infer_prepare.png diff --git "a/docs/tipc_test/\345\274\200\345\217\221\346\226\207\346\241\243/images/tipc_cpp_infer_res.png" b/docs/tipc_test/development_specification_docs/images/tipc_cpp_infer_res.png similarity index 100% rename from "docs/tipc_test/\345\274\200\345\217\221\346\226\207\346\241\243/images/tipc_cpp_infer_res.png" rename to docs/tipc_test/development_specification_docs/images/tipc_cpp_infer_res.png diff --git "a/docs/tipc_test/\345\274\200\345\217\221\346\226\207\346\241\243/images/tipc_lite_infer.png" b/docs/tipc_test/development_specification_docs/images/tipc_lite_infer.png similarity index 100% rename from "docs/tipc_test/\345\274\200\345\217\221\346\226\207\346\241\243/images/tipc_lite_infer.png" rename to docs/tipc_test/development_specification_docs/images/tipc_lite_infer.png diff --git "a/docs/tipc_test/\345\274\200\345\217\221\346\226\207\346\241\243/imgs/tipc_log_list.png" b/docs/tipc_test/development_specification_docs/images/tipc_log_list.png similarity index 100% rename from "docs/tipc_test/\345\274\200\345\217\221\346\226\207\346\241\243/imgs/tipc_log_list.png" rename to docs/tipc_test/development_specification_docs/images/tipc_log_list.png diff --git "a/docs/tipc_test/\345\274\200\345\217\221\346\226\207\346\241\243/imgs/tipc_log_results.png" b/docs/tipc_test/development_specification_docs/images/tipc_log_results.png similarity index 100% rename from "docs/tipc_test/\345\274\200\345\217\221\346\226\207\346\241\243/imgs/tipc_log_results.png" rename to docs/tipc_test/development_specification_docs/images/tipc_log_results.png diff --git "a/docs/tipc_test/\345\274\200\345\217\221\346\226\207\346\241\243/imgs/train_infer_params.png" b/docs/tipc_test/development_specification_docs/images/train_infer_params.png similarity index 100% rename from "docs/tipc_test/\345\274\200\345\217\221\346\226\207\346\241\243/imgs/train_infer_params.png" rename to docs/tipc_test/development_specification_docs/images/train_infer_params.png diff --git "a/docs/tipc_test/\345\274\200\345\217\221\346\226\207\346\241\243/imgs/train_infer_params1.png" b/docs/tipc_test/development_specification_docs/images/train_infer_params1.png similarity index 100% rename from "docs/tipc_test/\345\274\200\345\217\221\346\226\207\346\241\243/imgs/train_infer_params1.png" rename to docs/tipc_test/development_specification_docs/images/train_infer_params1.png diff --git "a/docs/tipc_test/\345\274\200\345\217\221\346\226\207\346\241\243/imgs/train_infer_params2.png" b/docs/tipc_test/development_specification_docs/images/train_infer_params2.png similarity index 100% rename from "docs/tipc_test/\345\274\200\345\217\221\346\226\207\346\241\243/imgs/train_infer_params2.png" rename to docs/tipc_test/development_specification_docs/images/train_infer_params2.png diff --git "a/docs/tipc_test/\345\274\200\345\217\221\346\226\207\346\241\243/imgs/train_infer_params3.png" b/docs/tipc_test/development_specification_docs/images/train_infer_params3.png similarity index 100% rename from "docs/tipc_test/\345\274\200\345\217\221\346\226\207\346\241\243/imgs/train_infer_params3.png" rename to docs/tipc_test/development_specification_docs/images/train_infer_params3.png diff --git "a/docs/tipc_test/\345\274\200\345\217\221\346\226\207\346\241\243/imgs/train_infer_params_infer.png" b/docs/tipc_test/development_specification_docs/images/train_infer_params_infer.png similarity index 100% rename from "docs/tipc_test/\345\274\200\345\217\221\346\226\207\346\241\243/imgs/train_infer_params_infer.png" rename to docs/tipc_test/development_specification_docs/images/train_infer_params_infer.png diff --git "a/docs/tipc_test/\345\274\200\345\217\221\346\226\207\346\241\243/imgs/train_infer_params_train.png" b/docs/tipc_test/development_specification_docs/images/train_infer_params_train.png similarity index 100% rename from "docs/tipc_test/\345\274\200\345\217\221\346\226\207\346\241\243/imgs/train_infer_params_train.png" rename to docs/tipc_test/development_specification_docs/images/train_infer_params_train.png diff --git "a/docs/tipc_test/\345\274\200\345\217\221\346\226\207\346\241\243/imgs/train_infer_params_train_run.png" b/docs/tipc_test/development_specification_docs/images/train_infer_params_train_run.png similarity index 100% rename from "docs/tipc_test/\345\274\200\345\217\221\346\226\207\346\241\243/imgs/train_infer_params_train_run.png" rename to docs/tipc_test/development_specification_docs/images/train_infer_params_train_run.png diff --git "a/docs/tipc_test/\345\274\200\345\217\221\346\226\207\346\241\243/cpp\351\242\204\346\265\213\346\265\213\350\257\225\345\274\200\345\217\221\350\247\204\350\214\203.md" b/docs/tipc_test/development_specification_docs/inference_cpp.md similarity index 99% rename from "docs/tipc_test/\345\274\200\345\217\221\346\226\207\346\241\243/cpp\351\242\204\346\265\213\346\265\213\350\257\225\345\274\200\345\217\221\350\247\204\350\214\203.md" rename to docs/tipc_test/development_specification_docs/inference_cpp.md index 33a373141ec7625a81a5c56b7f516b814d8466ba..2361dcaaa66905efb69294d7a16845d245981bd7 100644 --- "a/docs/tipc_test/\345\274\200\345\217\221\346\226\207\346\241\243/cpp\351\242\204\346\265\213\346\265\213\350\257\225\345\274\200\345\217\221\350\247\204\350\214\203.md" +++ b/docs/tipc_test/development_specification_docs/inference_cpp.md @@ -56,7 +56,7 @@ C++预测测试工具位于PaddleOCR dygraph分支下的[test_tipc目录](https: ``` test_tipc/ ├── configs/ # 配置文件目录 - ├── ppocr_det_mobile # ppocr_det_mobile模型的测试配置文件目录 + ├── ch_ppocr_mobile_v2.0_det # ch_ppocr_mobile_v2.0_det模型的测试配置文件目录 ├── model_linux_gpu_normal_normal_infer_cpp_linux_gpu_cpu.txt # 测试Linux上c++预测的配置文件 ├── results/ # 预先保存的预测结果,用于和实际预测结果进行精读比对 ├── cpp_ppocr_det_mobile_results_fp32.txt # 预存的mobile版ppocr检测模型c++预测的fp32精度的结果 diff --git "a/docs/tipc_test/\345\274\200\345\217\221\346\226\207\346\241\243/paddle2onnx_develop.md" b/docs/tipc_test/development_specification_docs/paddle2onnx.md similarity index 100% rename from "docs/tipc_test/\345\274\200\345\217\221\346\226\207\346\241\243/paddle2onnx_develop.md" rename to docs/tipc_test/development_specification_docs/paddle2onnx.md diff --git "a/docs/tipc_test/\345\274\200\345\217\221\346\226\207\346\241\243/serving_develop.md" b/docs/tipc_test/development_specification_docs/serving.md similarity index 100% rename from "docs/tipc_test/\345\274\200\345\217\221\346\226\207\346\241\243/serving_develop.md" rename to docs/tipc_test/development_specification_docs/serving.md diff --git "a/docs/tipc_test/\345\274\200\345\217\221\346\226\207\346\241\243/python\345\237\272\347\241\200\350\256\255\347\273\203\351\242\204\346\265\213\345\274\200\345\217\221\346\226\207\346\241\243.md" b/docs/tipc_test/development_specification_docs/train_infer_python.md similarity index 98% rename from "docs/tipc_test/\345\274\200\345\217\221\346\226\207\346\241\243/python\345\237\272\347\241\200\350\256\255\347\273\203\351\242\204\346\265\213\345\274\200\345\217\221\346\226\207\346\241\243.md" rename to docs/tipc_test/development_specification_docs/train_infer_python.md index a8a4b090f1aad447569f815f8365909c587e575d..8c664dc1ee484b06b117af725f734aae83165ad5 100644 --- "a/docs/tipc_test/\345\274\200\345\217\221\346\226\207\346\241\243/python\345\237\272\347\241\200\350\256\255\347\273\203\351\242\204\346\265\213\345\274\200\345\217\221\346\226\207\346\241\243.md" +++ b/docs/tipc_test/development_specification_docs/train_infer_python.md @@ -66,7 +66,7 @@ ## 1.2 TIPC自动化测试 本规范测试的链条如下(其中相邻两个模块之间是两两组合关系),可以根据套件需要,适当删减链条。 -![pipline](./imgs/pipline.png) +![pipline](./images/pipline.png) 上图各模块具体测试点如下: @@ -295,7 +295,7 @@ pip3 install ./dist/auto_log-1.0.0-py3-none-any.whl 使用AutoLog 实现自动化日志输出的功能可以参考PR:https://github.com/PaddlePaddle/PaddleOCR/pull/3182 代码修改有四步,分别是: -![图片](./imgs/autolog_example.png) +![图片](./images/autolog_example.png) 1). 初始化auto_log类:如上图代码所示(参考[PR](https://github.com/PaddlePaddle/PaddleOCR/pull/3182)),调用了auto_log 实现,初始化一个AutoLogger类,传入参数有模型名称、模型精度,batch_size, 输入shape,日志保存路径,inference配置(self.config),pid号和进程名字可选或设置为None,GPU号gpuid; AutoLogger的初始化参数: ``` @@ -314,13 +314,13 @@ logger: # 用于打印日志的logger,如果设置为None,在类中会自动 ``` 2). 预测耗时打点:在模型预测中,统计前处理,预测,后处理时间,传入AutoLogger的preprocess_time, inference_time, postprocess_time中; -![图片](./imgs/autolog_time.png) +![图片](./images/autolog_time.png) 3). 打印输出信息:在完成循环预测后,调用AutoLogger的report函数输出log信息。report函数是必须要调用的,否则,统计内存和显存占用的子进程不会关闭。 其中,text_detector.auto_log.report()实际调用了AutoLogger.report()函数,根据输入的model信息和统计的时间、内存占用信息,规范化输出日志,输入日志格式如下: -![图片](./imgs/autolog_results.png) +![图片](./images/autolog_results.png) 4). 预测结果正确性校验 @@ -334,10 +334,10 @@ python_ppocr_det_mobile_results_fp16.txt python_ppocr_det_mobile_results_fp32.txt ``` 假设在不同配置下可以得到一系列日志文件: -![图片](./imgs/tipc_log_list.png) +![图片](./images/tipc_log_list.png) 配置文件中存放的有不同输入的预测结果: -![图片](./imgs/tipc_log_results.png) +![图片](./images/tipc_log_results.png) 因此,可以分别读取预测日志文件中的预测结果和保存在txt文件中的预测结果,验证两个结果是否是一致的。 @@ -388,7 +388,7 @@ python版本 运行脚本和配置文件 参数1 参数2 参数3 实际上,params.txt 中完成以上参数的设置,test_train_inference_python.sh 脚本根据params.txt中的配置组建出一条完整的运行命令。 以文本检测样板间[ppocr_det_mobile/train_infer_python.txt](https://github.com/PaddlePaddle/PaddleOCR/blob/dygraph/test_tipc/configs/ppocr_det_mobile_params.txt)为例,文件中前22行为训练相关的参数,如下图: -![图片](./imgs/train_infer_params.png) +![图片](./images/train_infer_params.png) |行号 | 参数 | 参数介绍 | 对应PaddleSeg参数设置 | |---|---|---|---| @@ -438,7 +438,7 @@ null:null ### 3.3 inference预测接入自动化测试 inference 相关的参数在params.txt中的第27行到51行,如下图: -![](./imgs/train_infer_params_infer.png) +![](./images/train_infer_params_infer.png) 各行参数介绍和修改方式如下: @@ -523,7 +523,7 @@ status_check() 状态检查函数,获取上条指令运行的状态,如果 ``` 同一个模型要测试的组合可以通过一个txt文件管理,如下,构建了一个test_tipc/configs/ppocr_det_mobile/train_infer_python.txt文件 用于管理训练配置。 -![](./imgs/train_infer_params_train.png) +![](./images/train_infer_params_train.png) 上述部分是test_train_inference_python.sh运行所需要的参数部分,包含正常训练脚本(第16行),量化训练执行脚本(17行),训练所需配置的参数(第4-10行) 在执行test_train_inference_python.sh脚本执行的时候,会解析对应行的参数,如下: @@ -575,14 +575,14 @@ echo $set_batchsize 如果value为空格,或者null,则`func_set_params`返回的结果为空格,在组建命令的时候,这个参数就不会生效,因此,如果不希望设置某个参数,可以把参数设置为null。 最终,所有参数可以组合出一个完整的命令,组合方式: -![](./imgs/train_infer_params_train_run.png) +![](./images/train_infer_params_train_run.png) 上图中273行即是组合出的命令,python对应python3.7, run_train 可以是`ppocr_det_mobile_params.txt`中的`norm_train`,`quant_train`参数后的执行脚本,即要执行正常训练的脚本还是执行量化训练的脚本等等。 ### 4.2 params.txt参数介绍汇总 文件链接 https://github.com/PaddlePaddle/PaddleOCR/blob/dygraph/test_tipc/configs/ppocr_det_mobile_params.txt -![](./imgs/train_infer_params1.png) -![](./imgs/train_infer_params2.png) -![](./imgs/train_infer_params3.png) +![](./images/train_infer_params1.png) +![](./images/train_infer_params2.png) +![](./images/train_infer_params3.png) ### 4.4 Mac端接入TIPC测试 @@ -598,7 +598,7 @@ echo $set_batchsize 训练参数配置参考[链接](https://github.com/PaddlePaddle/PaddleOCR/blob/bc95e05de88dc7484bc2ed1bb11069455c49ec94/test_tipc/configs/ppocr_det_mobile/train_linux_cpu_normal_normal_infer_python_mac_cpu.txt?_pjax=%23js-repo-pjax-container%2C%20div%5Bitemtype%3D%22http%3A%2F%2Fschema.org%2FSoftwareSourceCode%22%5D%20main%2C%20%5Bdata-pjax-container%5D#L1-L26),如下: -![图片](./imgs/mac_train_params.png) +![图片](./images/mac_train_params.png) 可以对比[Linux端参数配置](https://github.com/PaddlePaddle/PaddleOCR/blob/bc95e05de88dc7484bc2ed1bb11069455c49ec94/test_tipc/configs/ppocr_det_mobile/train_infer_python.txt?_pjax=%23js-repo-pjax-container%2C%20div%5Bitemtype%3D%22http%3A%2F%2Fschema.org%2FSoftwareSourceCode%22%5D%20main%2C%20%5Bdata-pjax-container%5D#L1-L26)发现二者的区别。 diff --git "a/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/images/tipc_guide.png" b/docs/tipc_test/tipc_guide.png similarity index 100% rename from "docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/images/tipc_guide.png" rename to docs/tipc_test/tipc_guide.png diff --git "a/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/Lite_arm_cpp\351\242\204\346\265\213\346\265\213\350\257\225\346\226\207\346\241\243\350\247\204\350\214\203.md" "b/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/Lite_arm_cpp\351\242\204\346\265\213\346\265\213\350\257\225\346\226\207\346\241\243\350\247\204\350\214\203.md" deleted file mode 100644 index 5fb8410841e6c58571df5fe70c918b25a3d4f6f9..0000000000000000000000000000000000000000 --- "a/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/Lite_arm_cpp\351\242\204\346\265\213\346\265\213\350\257\225\346\226\207\346\241\243\350\247\204\350\214\203.md" +++ /dev/null @@ -1,109 +0,0 @@ -# 背景 - -基础训练文档对应Lite\_arm\_cpp预测功能测试,主程序为`test_inference_cpp.sh`, 可以在ARM上基于Lite预测库测试模型的C++推理功能。本文介绍Lite\_arm\_cpp预测功能测试文档的撰写规范。 - -# 文档规范 - -本文档和[基础训练预测文档]()大体结构类似,主要去掉了训练相关的部分,文档目录结构如下: - -# 目录 -- [1.测试结论汇总](#测试结论汇总) -- [2.测试流程](#测试流程) - - [2.1 功能测试](#功能测试) - - [2.1.1 基于ARM_CPU测试](#基于ARM_CPU测试) - - [2.1.1 基于ARM_GPU_OPENCL测试](#基于ARM_GPU_OPENCL测试) - - [2.2 运行结果](#运行结果) -- [3.更多教程](#更多教程) - - -## 1. 测试结论汇总 - -目前Lite端的样本间支持以方式的组合: - -**字段说明:** -- 模型类型:包括正常模型(FP32)和量化模型(INT8) -- batch-size:包括1和4 -- threads:包括1和4 -- predictor数量:包括单predictor预测和多predictor预测 -- 预测库来源:包括下载方式和编译方式 -- 测试硬件:ARM\_CPU/ARM\_GPU_OPENCL - -| 模型类型 | batch-size | threads | predictor数量 | 预测库来源 | 测试硬件 | -| :----: | :----: | :----: | :----: | :----: | :----: | -| 正常模型/量化模型 | 1 | 1/4 | 单/多 | 下载方式 | ARM\_CPU/ARM\_GPU_OPENCL | - - -## 2. 测试流程 -运行环境配置请参考[文档](./install.md)的内容配置TIPC的运行环境。 - - -### 2.1 功能测试 - -先运行`prepare_lite_cpp.sh`,运行后会在当前路径下生成`test_lite.tar`,其中包含了测试数据、测试模型和用于预测的可执行文件。将`test_lite.tar`上传到被测试的手机上,在手机的终端解压该文件,进入`test_lite`目录中,然后运行`test_lite_arm_cpp.sh`进行测试,最终在`test_lite/output`目录下生成`lite_*.log`后缀的日志文件。 - - -#### 2.1.1 基于ARM\_CPU测试 - -```shell - -# 数据和模型准备 -bash test_tipc/prepare_lite_cpp.sh ./test_tipc/configs/ppocr_det_mobile/model_linux_gpu_normal_normal_lite_cpp_arm_cpu.txt - -# 手机端测试: -bash test_lite_arm_cpp.sh model_linux_gpu_normal_normal_lite_cpp_arm_cpu.txt - -``` - - -#### 2.1.2 基于ARM\_GPU\_OPENCL测试 - -```shell - -# 数据和模型准备 -bash test_tipc/prepare_lite_cpp.sh ./test_tipc/configs/ppocr_det_mobile/model_linux_gpu_normal_normal_lite_cpp_arm_gpu_opencl.txt - -# 手机端测试: -bash test_lite_arm_cpp.sh model_linux_gpu_normal_normal_lite_cpp_arm_gpu_opencl.txt - -``` - - -**注意**: - -1.由于运行该项目需要bash等命令,传统的adb方式不能很好的安装。所以此处推荐通在手机上开启虚拟终端的方式连接电脑,连接方式可以参考[安卓手机通过termux连接电脑](.https://github.com/PaddlePaddle/PaddleOCR/blob/dygraph/test_tipc/docs/termux_for_android.md)。 - -2.如果测试文本检测和识别完整的pipeline,在执行`prepare_lite_cpp.sh`时,配置文件需替换为`test_tipc/configs/ppocr_system_mobile/model_linux_gpu_normal_normal_lite_cpp_arm_cpu.txt`。在手机端测试阶段,配置文件同样修改为该文件。 - - -### 2.2 运行结果 - -各测试的运行情况会打印在 `./output/` 中: -运行成功时会输出: - -``` -Run successfully with command - ./ocr_db_crnn det ch_PP-OCRv2_det_infer_opt.nb ARM_CPU FP32 1 1 ./test_data/icdar2015_lite/text_localization/ch4_test_images/ ./config.txt True > ./output/lite_ch_PP-OCRv2_det_infer_opt.nb_runtime_device_ARM_CPU_precision_FP32_batchsize_1_threads_1.log 2>&1! -Run successfully with command xxx -... -``` - -运行失败时会输出: - -``` -Run failed with command - ./ocr_db_crnn det ch_PP-OCRv2_det_infer_opt.nb ARM_CPU FP32 1 1 ./test_data/icdar2015_lite/text_localization/ch4_test_images/ ./config.txt True > ./output/lite_ch_PP-OCRv2_det_infer_opt.nb_runtime_device_ARM_CPU_precision_FP32_batchsize_1_threads_1.log 2>&1! -Run failed with command xxx -... -``` - -在./output/文件夹下,会存在如下日志,每一个日志都是不同配置下的log结果: - - - -在每一个log中,都会调用autolog打印如下信息: - - - - - -## 3. 更多教程 - -本文档为功能测试用,更详细的Lite端预测使用教程请参考:[Lite端部署](https://github.com/PaddlePaddle/PaddleOCR/blob/develop/deploy/lite/readme.md)。 diff --git "a/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/TIPC\346\265\213\350\257\225\346\226\207\346\241\243\350\247\204\350\214\203.md" "b/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/TIPC\346\265\213\350\257\225\346\226\207\346\241\243\350\247\204\350\214\203.md" deleted file mode 100644 index 3015d1b16e4c6c288c116fbaf7df4fb71554ccf0..0000000000000000000000000000000000000000 --- "a/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/TIPC\346\265\213\350\257\225\346\226\207\346\241\243\350\247\204\350\214\203.md" +++ /dev/null @@ -1,102 +0,0 @@ -# 目录 -- [1.背景](#背景) -- [2.目录与命名规范](#目录与命名规范) -- [3.文档规范](#文档规范) - - [3.1 主文档规范](#主文档规范) - - [3.2 子文档规范](#子文档规范) - - -# 1. 背景 -各代码仓库完成TIPC训推一体认证工具开发后,同时需要提供相应的**TIPC测试文档**,方便用户查阅每种模型的推理部署打通情况,并可以按照教程进行一键测试。 - -本文将**TIPC测试文档**的书写格式进行规范化,分为`目录规范`和`文档规范`两部分。 - - -# 2. 目录与命名规范 -**训推一体认证(Training and Inference Pipeline Certification(TIPC))工具目录统一命名为`test_tipc`**,位于代码仓库根目录下,下面以[PaddleOCR样板间](https://github.com/PaddlePaddle/PaddleOCR/tree/dygraph/test_tipc)为例说明目录结构规范。 -``` -test_tipc/ -├── configs/ # 配置文件目录 - ├── ppocr_det_mobile # ppocr_det_mobile模型的测试配置文件目录 - ├── det_mv3_db.yml # 测试mobile版ppocr检测模型训练的yml文件 - ├── train_infer_python.txt.txt # 测试Linux上python训练预测(基础训练预测)的配置文件 - ├── model_linux_gpu_normal_normal_infer_cpp_linux_gpu_cpu.txt # 测试Linux上c++预测的配置文件 - ├── model_linux_gpu_normal_normal_infer_python_jetson.txt # 测试Jetson上python预测的配置文件 - ├── train_linux_gpu_fleet_amp_infer_python_linux_gpu_cpu.txt # 测试Linux上多机多卡、混合精度训练和python预测的配置文件 - ├── ... - ├── ppocr_det_server # ppocr_det_server模型的测试配置文件目录 - ├── ... - ├── ppocr_rec_mobile # ppocr_rec_mobile模型的测试配置文件目录 - ├── ... - ├── ppocr_rec_server # ppocr_rec_server模型的测试配置文件目录 - ├── ... - ├── ... -├── results/ # 预先保存的预测结果,用于和实际预测结果进行精读比对 - ├── python_ppocr_det_mobile_results_fp32.txt # 预存的mobile版ppocr检测模型python预测fp32精度的结果 - ├── python_ppocr_det_mobile_results_fp16.txt # 预存的mobile版ppocr检测模型python预测fp16精度的结果 - ├── cpp_ppocr_det_mobile_results_fp32.txt # 预存的mobile版ppocr检测模型c++预测的fp32精度的结果 - ├── cpp_ppocr_det_mobile_results_fp16.txt # 预存的mobile版ppocr检测模型c++预测的fp16精度的结果 - ├── ... -├── prepare.sh # 完成test_*.sh运行所需要的数据和模型下载 -├── test_train_inference_python.sh # 测试python训练预测的主程序 -├── test_inference_cpp.sh # 测试c++预测的主程序 -├── test_serving.sh # 测试serving部署预测的主程序 -├── test_lite_arm_cpu_cpp.sh # 测试lite在arm_cpu上部署的C++预测的主程序 -├── compare_results.py # 用于对比log中的预测结果与results中的预存结果精度误差是否在限定范围内 -└── readme.md # 使用文档 -``` -主要关注: -1. 所有工具位于`test_tipc`目录下,`test_tipc`目录位于代码仓库根目录下; -2. `results`目录存放精度测试所需的gt文件; -3. `doc`目录存放readme.md以外的其他子文档; -4. `prepare.sh`用于准备测试所需的模型、数据等; -5. `test_*.sh`为测试主程序,按照功能分为多个文件,命名格式为`test_[功能]_[语言].sh`。 -6. `configs`目录存放测试所需的所有配置文件,该目录下,按模型名称划分为子目录,子目录中存放所有该模型测试需要用到的配置文件,配置文件的命名遵循如下规范: - -- 基础训练预测配置简单命名为:`train_infer_python.txt`,表示**Linux环境下单机、不使用混合精度训练+python预测**,其完整命名对应`train_linux_gpu_fleet_amp_infer_python_linux_gpu_cpu.txt`,由于本配置文件使用频率较高,这里进行了名称简化。 -- 其他带训练配置命名格式为:`train_训练硬件环境(linux_gpu/linux_dcu/…)_是否多机(fleet/normal)_是否混合精度(amp/normal)_预测模式(infer/lite/serving/js)_语言(cpp/python/java)_预测硬件环境(linux_gpu/mac/jetson/opencl_arm_gpu/...).txt`。如,linux gpu下多机多卡+混合精度链条测试对应配置 `train_linux_gpu_fleet_amp_infer_python_linux_gpu_cpu.txt`,linux dcu下基础训练预测对应配置 `train_linux_dcu_normal_normal_infer_python_dcu.txt`。 -- 仅预测的配置(如serving、lite等)命名格式:`model_训练硬件环境(linux_gpu/linux_dcu/…)_是否多机(fleet/normal)_是否混合精度(amp/normal)_(infer/lite/serving/js)_语言(cpp/python/java)_预测硬件环境(linux_gpu/mac/jetson/opencl_arm_gpu/...).txt`,即,与2相比,仅第一个字段从train换为model,测试时模型直接下载获取,这里的“训练硬件环境”表示所测试的模型是在哪种环境下训练得到的。 - - - -# 3. 文档规范 - -## 3.1 主文档规范 -文档按以下格式进行撰写: - -**推理部署导航** -**1. 简介** - -- 内容:主要说明背景,各代码仓库应该差异不大。 -- 示例:![](images/tipc_guide.png) - -**2. 汇总信息** - -- 内容:给出代码仓库所有模型的预测部署打通情况汇总信息,表格形式呈现,须包含`算法论文`、`模型名称`、`基础训练预测`、`更多训练方式`、`模型压缩`、`其他预测部署`这6个必选字段。 - - 算法论文:该模型对应的算法,可以是算法简称; - - 模型名称:与代码仓库提供模型的名称对应; - - 基础训练预测:基础功能的支持情况,包括模型训练、Paddle Inference Python预测的支持情况,是所有代码仓库所有模型必须支持的功能。本字段有`"支持"`和`空缺`两种取值。 - - 更多训练方式:包括多机多卡、混合精度。 - - 模型压缩:包括裁剪、离线/在线量化、蒸馏。 - - 其他预测部署:补充功能的支持情况,包括Paddle Inference C++预测、Paddle Serving部署、Paddle-Lite部署等,是各代码仓库可选支持的功能。填入已支持的功能,尚未支持的不填即可。支持的功能后注明硬件(lite相关)、语言等信息。 - -- 示例:![](images/tipc_table.png) -- **注意**:表格内填“支持“或填入了信息均表示可以使用本工具进行一键测试,代码仓库已支持但尚未接入测试的,都算还不支持,不应填写。 - -**3. 一键测试工具使用** -目录介绍:测试工具树状图,介绍各目录/文件的功能,示例: -![图片](images/tipc_dir_tree.png) - -测试流程:测试流程整体说明,可参考[PaddleOCR样板间](https://github.com/PaddlePaddle/PaddleOCR/tree/dygraph/test_tipc#%E6%B5%8B%E8%AF%95%E6%B5%81%E7%A8%8B) -![图片](images/tipc_test_pipeline.png) - -**最后需给出跳转链接,到每个test_*.sh的子文档**,如: -![图片](images/tipc_more_tutorial.png) - - -## 3.2 子文档规范 -请参考子文档规范文档: -- [基础训练预测测试文档规范]() -- [cpp预测测试文档规范]() -- [serving测试文档规范]() -- [lite测试文档规范]() diff --git "a/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/cpp\351\242\204\346\265\213\346\265\213\350\257\225\346\226\207\346\241\243\350\247\204\350\214\203.md" "b/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/cpp\351\242\204\346\265\213\346\265\213\350\257\225\346\226\207\346\241\243\350\247\204\350\214\203.md" deleted file mode 100644 index 25839b8b617cf5f730d18122d261b024918285a6..0000000000000000000000000000000000000000 --- "a/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/cpp\351\242\204\346\265\213\346\265\213\350\257\225\346\226\207\346\241\243\350\247\204\350\214\203.md" +++ /dev/null @@ -1,42 +0,0 @@ -# 背景 - -基础训练文档对应C++预测功能测试,主程序为`test_inference_cpp.sh`。本文介绍C++预测功能测试文档的撰写规范。 - -# 文档规范 - -本文档和[基础训练预测文档]()大体结构类似,主要去掉了训练相关的部分,文档目录结构如下: - -### 1.测试结论汇总 - -内容:基于训练是否使用量化,可以将训练产出的模型可以分为`正常模型`和`量化模型`,表格形式给出这两类模型对应的预测功能汇总情况,包含`模型类型`、`device`、`batchsize`、`tensorrt`、`mkldnn`、`cpu多线程`这6个字段。 - -- 模型类型:“正常模型”或“量化模型”; -- device:CPU或GPU,其他字段取值对应本字段指定的环境; -- batchsize:一般包括1、6两种batchsize,根据实际支持情况填写。 -- tensorrt:开启tensorrt支持的精度,包括`fp32`、`fp16`、`int8`三种,当device为CPU时,本字段填`-`。 -- mkldnn:开启mkldnn支持的精度,包括`fp32`、`fp16`、`int8`三种,当device为GPU时,本字段填`-`。 -- cpu多线程:支持时填`支持`,不支持时留空即可,当device为GPU时,本字段填`-`。 - -示例: -![](images/tipc_cpp_infer_table.png) - - -### 2.测试流程 -#### 2.1 功能测试 -内容1:给出C++预测具体测试命令。 -示例: -![](images/tipc_cpp_infer_shell.png) - -内容2:给出预测log的解读指引。 -示例: -![](images/tipc_cpp_infer_output.png) - -#### 2.2 精度测试 -内容:给出精度测试的具体命令和运行结果示例。 -示例: -![](images/tipc_infer_compare_results.png) - -### 3.更多教程 -内容:给出代码仓库中基础训练预测的具体教程链接。 -示例: -![](images/tipc_cpp_infer_more.png) diff --git "a/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/images/.ipynb_checkpoints/tipc_cpp_infer_output-checkpoint.png" "b/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/images/.ipynb_checkpoints/tipc_cpp_infer_output-checkpoint.png" deleted file mode 100644 index b5df28639bcd17057904e30be4247dea59ef2e93..0000000000000000000000000000000000000000 Binary files "a/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/images/.ipynb_checkpoints/tipc_cpp_infer_output-checkpoint.png" and /dev/null differ diff --git "a/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/images/lite_auto_log.png" "b/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/images/lite_auto_log.png" deleted file mode 100644 index d5b6b450d445d0047fb3836bfd9c726adebb7b9f..0000000000000000000000000000000000000000 Binary files "a/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/images/lite_auto_log.png" and /dev/null differ diff --git "a/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/images/lite_log.png" "b/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/images/lite_log.png" deleted file mode 100644 index 2b3e40b3fa2700a4c715269229cdfe582d29f90a..0000000000000000000000000000000000000000 Binary files "a/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/images/lite_log.png" and /dev/null differ diff --git "a/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/images/tipc_cpp_infer_more.png" "b/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/images/tipc_cpp_infer_more.png" deleted file mode 100644 index 292bbe1f63fb03e6ad4c21cd8c3980308263b564..0000000000000000000000000000000000000000 Binary files "a/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/images/tipc_cpp_infer_more.png" and /dev/null differ diff --git "a/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/images/tipc_cpp_infer_output.png" "b/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/images/tipc_cpp_infer_output.png" deleted file mode 100644 index b5df28639bcd17057904e30be4247dea59ef2e93..0000000000000000000000000000000000000000 Binary files "a/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/images/tipc_cpp_infer_output.png" and /dev/null differ diff --git "a/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/images/tipc_cpp_infer_shell.png" "b/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/images/tipc_cpp_infer_shell.png" deleted file mode 100644 index 61e7361fd4787a1ebe63e90f222904fac8e3b84e..0000000000000000000000000000000000000000 Binary files "a/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/images/tipc_cpp_infer_shell.png" and /dev/null differ diff --git "a/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/images/tipc_cpp_infer_table.png" "b/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/images/tipc_cpp_infer_table.png" deleted file mode 100644 index 60cf6fb64c27997978505da0c85f367b081dd54f..0000000000000000000000000000000000000000 Binary files "a/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/images/tipc_cpp_infer_table.png" and /dev/null differ diff --git "a/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/images/tipc_dir_tree.png" "b/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/images/tipc_dir_tree.png" deleted file mode 100644 index 340895ec5063c470543074a45ae867637818fa12..0000000000000000000000000000000000000000 Binary files "a/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/images/tipc_dir_tree.png" and /dev/null differ diff --git "a/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/images/tipc_infer_compare_results.png" "b/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/images/tipc_infer_compare_results.png" deleted file mode 100644 index 244b8648fa91cfc409d0661669ef29f061d3bfa7..0000000000000000000000000000000000000000 Binary files "a/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/images/tipc_infer_compare_results.png" and /dev/null differ diff --git "a/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/images/tipc_more_tutorial.png" "b/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/images/tipc_more_tutorial.png" deleted file mode 100644 index e1e25d2745eb0589a59ee1a550381af456f05be0..0000000000000000000000000000000000000000 Binary files "a/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/images/tipc_more_tutorial.png" and /dev/null differ diff --git "a/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/images/tipc_serving_model.jpg" "b/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/images/tipc_serving_model.jpg" deleted file mode 100644 index 57112236286ea1608a0d741e373d8f48bd59f33d..0000000000000000000000000000000000000000 Binary files "a/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/images/tipc_serving_model.jpg" and /dev/null differ diff --git "a/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/images/tipc_table.png" "b/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/images/tipc_table.png" deleted file mode 100644 index 9cc9147097e42adb1ea19c34df392b6cd2d119bb..0000000000000000000000000000000000000000 Binary files "a/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/images/tipc_table.png" and /dev/null differ diff --git "a/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/images/tipc_test_pipeline.png" "b/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/images/tipc_test_pipeline.png" deleted file mode 100644 index f99f23d7050eb61879cf317c0d7728ef14531b08..0000000000000000000000000000000000000000 Binary files "a/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/images/tipc_test_pipeline.png" and /dev/null differ diff --git "a/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/paddle2onnx_text.md" "b/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/paddle2onnx_text.md" deleted file mode 100644 index 1ccf3a023da384bbf15b25c7c926d67802aecffe..0000000000000000000000000000000000000000 --- "a/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/paddle2onnx_text.md" +++ /dev/null @@ -1,58 +0,0 @@ -## 背景 - -Paddle2ONNX 预测功能测试的主程序为 `test_paddle2onnx.sh`,可以测试基于 Paddle2ONNX 的部署功能。本文介绍 Paddle2ONNX 预测功能测试文档的撰写规范。 - -## 文档规范 - -本文档和[基础训练预测文档](todo:add_basic_link)大体结构类似,主要去掉了训练相关的部分,文档目录结构如下: - -### 1.测试结论汇总 - -内容:基于训练是否使用量化,可以将训练产出的模型可以分为`正常模型`和`量化模型`,表格形式给出这两类模型对应的预测功能汇总情况,包含`模型类型`、`device`这2个字段。 - -- device:CPU 或 GPU,其他字段取值对应本字段指定的环境; - -示例: - -| 模型类型 |device | -| ---- | ---- | -| 正常模型 | GPU | -| 正常模型 | CPU | -| 量化模型 | GPU | -| 量化模型 | CPU | - - -### 2.测试流程 -#### 2.1 功能测试 -内容:给出 Paddle2ONNX 预测具体测试命令。 -示例: - -先运行`prepare.sh`准备数据和模型,然后运行`test_paddle2onnx.sh`进行测试,最终在```test_tipc/output```目录下生成`paddle2onnx_infer_*.log`后缀的日志文件。 - -```shell -bash test_tipc/prepare.sh ./test_tipc/configs/ppocr_det_mobile/model_linux_gpu_normal_normal_paddle2onnx_python_linux_cpu.txt "paddle2onnx_infer" - -# 用法: -bash test_tipc/test_paddle2onnx.sh ./test_tipc/configs/ppocr_det_mobile/model_linux_gpu_normal_normal_paddle2onnx_python_linux_cpu.txt -``` - -#### 运行结果 - -各测试的运行情况会打印在 `test_tipc/output/results_paddle2onnx.log` 中: -运行成功时会输出: - -``` -Run successfully with command - paddle2onnx --model_dir=./inference/ch_ppocr_mobile_v2.0_det_infer/ --model_filename=inference.pdmodel --params_filename=inference.pdiparams --save_file=./inference/det_mobile_onnx/model.onnx --opset_version=10 --enable_onnx_checker=True! -Run successfully with command - python test_tipc/onnx_inference/predict_det.py --use_gpu=False --image_dir=./inference/ch_det_data_50/all-sum-510/ --det_model_dir=./inference/det_mobile_onnx/model.onnx 2>&1 ! -``` - -运行失败时会输出: - -``` -Run failed with command - paddle2onnx --model_dir=./inference/ch_ppocr_mobile_v2.0_det_infer/ --model_filename=inference.pdmodel --params_filename=inference.pdiparams --save_file=./inference/det_mobile_onnx/model.onnx --opset_version=10 --enable_onnx_checker=True! -... -``` - -#### 2.2 精度测试 - -由于 Paddle2ONNX 调用了 onnx 预测,因此不做精度对比。 diff --git "a/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/python\345\237\272\347\241\200\350\256\255\347\273\203\351\242\204\346\265\213\346\265\213\350\257\225\346\226\207\346\241\243\350\247\204\350\214\203.md" "b/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/python\345\237\272\347\241\200\350\256\255\347\273\203\351\242\204\346\265\213\346\265\213\350\257\225\346\226\207\346\241\243\350\247\204\350\214\203.md" deleted file mode 100644 index 219f933663d4a85463fc1b9a879e33008d540e68..0000000000000000000000000000000000000000 --- "a/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/python\345\237\272\347\241\200\350\256\255\347\273\203\351\242\204\346\265\213\346\265\213\350\257\225\346\226\207\346\241\243\350\247\204\350\214\203.md" +++ /dev/null @@ -1,309 +0,0 @@ -# 背景 - -基础训练文档对应基础训练预测功能测试,主程序为`test_train_inference_python.sh`。本文介绍基础训练预测在Linux端,Mac端,Windows端,Jeston端的使用方法。 - -# 文档规范 - -本文档为TIPC的基础训练预测功能测试文档。包含linux端,Mac端,Windows端,jeston端的测试方法。 - -### 1.基础训练预测规范 -基础训练预测工具测试的功能包括训练和Python预测两部分,汇总结论也分为`训练相关`和`预测相关`两部分。 -下面以[PaddleOCR样板间](https://github.com/PaddlePaddle/PaddleOCR/tree/dygraph/test_tipc)为例说明目录结构规范。 -```shell -test_tipc/ -├── configs/ # 配置文件目录 - ├── ppocr_det_mobile/ # ppocr检测模型mobile版本的配置文件和参数文件夹 - ├── det_mv3_db.yml # 测试mobile版ppocr检测模型训练的yml文件 - ├── train_infer_python.txt. # 测试mobile版ppocr检测模型训练+预测的参数配置文件 - ├── train_linux_cpu_normal_normal_infer_python_mac.txt # Mac端测试mobile版ppocr检测模型的参数配置文件 - ├── train_linux_gpu_normal_normal_infer_python_windows.txt # Windows端测试mobile版ppocr检测模型的参数配置文件 - ├── model_linux_gpu_normal_normal_infer_python_jetson.txt # Jeston端测试mobile版ppocr检测模型的参数配置文件 - ├── ... -├── results/ # 预先保存的预测结果,用于和实际预测结果进行精读比对 - ├── python_ppocr_det_mobile_results_fp32.txt # 预存的mobile版ppocr检测模型python预测fp32精度的结果 - ├── python_ppocr_det_mobile_results_fp16.txt # 预存的mobile版ppocr检测模型python预测fp16精度的结果 - ├── cpp_ppocr_det_mobile_results_fp32.txt # 预存的mobile版ppocr检测模型c++预测的fp32精度的结果 - ├── cpp_ppocr_det_mobile_results_fp16.txt # 预存的mobile版ppocr检测模型c++预测的fp16精度的结果 - ├── ... -├── prepare.sh # 完成test_*.sh运行所需要的数据和模型下载 -├── test_train_inference_python.sh # 测试python训练预测的主程序 -├── test_inference_cpp.sh # 测试c++预测的主程序 -├── test_serving.sh # 测试serving部署预测的主程序 -├── test_lite.sh # 测试lite部署预测的主程序 -├── compare_results.py # 用于对比log中的预测结果与results中的预存结果精度误差是否在限定范围内 -└── readme.md # 使用文档 -``` -主要关注: -1. 所有工具位于`test_tipc`目录下,`test_tipc`目录位于套件根目录下; -2. `configs`目录存放测试所需的所有配置文件; -2. `results`目录存放精度测试所需的gt文件; -3. `doc`目录存放readme.md以外的其他子文档; -4. `prepare.sh`用于准备测试所需的模型、数据等; -5. `test_*.sh`为测试主程序,按照功能分为多个文件,命名格式为`test_[功能]_[语言].sh`。 - - -(1)训练相关 - -内容:给出套件所有模型的基础训练预测打通情况汇总信息,表格形式呈现,须包含`算法名称`、`模型名称`、`单机单卡`、`单机多卡`、`多机多卡`、`模型压缩(单机多卡)`这6个字段。 - -- 算法名称:该模型对应的算法,可以是算法简称; -- 模型名称:与套件提供模型的名称对应; -- 单机单卡:单机单卡训练的支持情况,包括`正常训练`和`混合精度`两种模式,支持哪种模式就填写哪种。 -- 单机多卡:同上。 -- 多机多卡:同上。 -- 模型压缩(单机多卡):单机多卡模式下,支持的模型压缩算法,分别给出`正常训练`、`混合精度`、`离线量化`三种情况的模型压缩算法支持情况。 - -示例: -| 算法名称 | 模型名称 | 单机单卡 | 单机多卡 | 多机多卡 | 模型压缩(单机多卡) | -| :---- | :---- | :---- | :---- | :---- | :---- | -| DB | ch_ppocr_mobile_v2.0_det| 正常训练
混合精度 | 正常训练
混合精度 | 正常训练
混合精度 | 正常训练:FPGM裁剪、PACT量化
离线量化(无需训练) | -| DB | ch_ppocr_server_v2.0_det| 正常训练
混合精度 | 正常训练
混合精度 | 正常训练
混合精度 | 正常训练:FPGM裁剪、PACT量化
离线量化(无需训练) | -| CRNN | ch_ppocr_mobile_v2.0_rec| 正常训练
混合精度 | 正常训练
混合精度 | 正常训练
混合精度 | 正常训练:PACT量化
离线量化(无需训练) | -| CRNN | ch_ppocr_server_v2.0_rec| 正常训练
混合精度 | 正常训练
混合精度 | 正常训练
混合精度 | 正常训练:PACT量化
离线量化(无需训练) | -|PP-OCR| ch_ppocr_mobile_v2.0| 正常训练
混合精度 | 正常训练
混合精度 | 正常训练
混合精度 | - | -|PP-OCR| ch_ppocr_server_v2.0| 正常训练
混合精度 | 正常训练
混合精度 | 正常训练
混合精度 | - | -|PP-OCRv2| ch_PP-OCRv2 | 正常训练
混合精度 | 正常训练
混合精度 | 正常训练
混合精度 | - | - - -(2)预测相关 - -内容:基于训练是否使用量化,可以将训练产出的模型可以分为`正常模型`和`量化模型`,表格形式给出这两类模型对应的预测功能汇总情况,包含`模型类型`、`device`、`batchsize`、`tensorrt`、`mkldnn`、`cpu多线程`这6个字段。 - -- 算法名称:该模型对应的算法,可以是算法简称; -- device:CPU或GPU,其他字段取值对应本字段指定的环境; -- batchsize:一般包括1、6两种batchsize,根据实际支持情况填写。 -- tensorrt:开启tensorrt支持的精度,包括`fp32`、`fp16`、`int8`三种,当device为CPU时,本字段填`-`。 -- mkldnn:开启mkldnn支持的精度,包括`fp32`、`fp16`、`int8`三种,当device为GPU时,本字段填`-`。 -- cpu多线程:支持时填`支持`,不支持时留空即可,当device为GPU时,本字段填`-`。 - -基于训练是否使用量化,可以将训练产出的模型可以分为`正常模型`和`量化模型`,这两类模型对应的预测功能汇总如下: - -| 模型类型 |device | batchsize | tensorrt | mkldnn | cpu多线程 | -| ---- | ---- | ---- | :----: | :----: | :----: | -| 正常模型 | GPU | 1/6 | fp32/fp16 | - | - | -| 正常模型 | CPU | 1/6 | - | fp32/fp16 | 支持 | -| 量化模型 | GPU | 1/6 | int8 | - | - | -| 量化模型 | CPU | 1/6 | - | int8 | 支持 | - - - - -### 2.测试流程 -#### 2.1 安装依赖 -安装测试本功能所需的依赖,包括`autolog`工具和PaddleSlim。 -[autolog](https://github.com/LDOUBLEV/AutoLog)是一个辅助工具,用户规范化打印inference的输出结果。 -autolog安装方式如下,参考文档:https://github.com/LDOUBLEV/AutoLog -``` -git clone https://github.com/LDOUBLEV/AutoLog -pip3 install -r requirements.txt -python3 setup.py bdist_wheel -pip3 install ./dist/auto_log-1.0.0-py3-none-any.whl -``` - -PaddleSlim安装方式如下,参考文档https://github.com/PaddlePaddle/PaddleSlim: -``` -pip3 install paddleslim -``` - - -#### 2.2 Linux端功能测试 -内容:分别给出5种模式下的具体测试命令。 -参考文档:https://github.com/PaddlePaddle/PaddleOCR/blob/dygraph/test_tipc/docs/test_train_inference_python.md#22-%E5%8A%9F%E8%83%BD%E6%B5%8B%E8%AF%95 -示例: - -先运行`prepare.sh`准备数据和模型,然后运行`test_train_inference_python.sh`进行测试,最终在```test_tipc/output```目录下生成`python_infer_*.log`格式的日志文件。 - - -`test_train_inference_python.sh`包含5种运行模式,每种模式的运行数据不同,分别用于测试速度和精度,分别是: - -- 模式1:lite_train_lite_infer,使用少量数据训练,用于快速验证训练到预测的走通流程,不验证精度和速度; -```shell -bash test_tipc/prepare.sh ./test_tipc/configs/ppocr_det_mobile/train_infer_python.txt 'lite_train_lite_infer' -bash test_tipc/test_train_inference_python.sh ./test_tipc/configs/ppocr_det_mobile/train_infer_python.txt 'lite_train_lite_infer' -``` - -- 模式2:lite_train_whole_infer,使用少量数据训练,一定量数据预测,用于验证训练后的模型执行预测,预测速度是否合理; -```shell -bash test_tipc/prepare.sh ./test_tipc/configs/ppocr_det_mobile/train_infer_python.txt 'lite_train_whole_infer' -bash test_tipc/test_train_inference_python.sh ../test_tipc/configs/ppocr_det_mobile/train_infer_python.txt 'lite_train_whole_infer' -``` - -- 模式3:whole_infer,不训练,全量数据预测,走通开源模型评估、动转静,检查inference model预测时间和精度; -```shell -bash test_tipc/prepare.sh ./test_tipc/configs/ppocr_det_mobile/train_infer_python.txt 'whole_infer' -# 用法1: -bash test_tipc/test_train_inference_python.sh ../test_tipc/configs/ppocr_det_mobile/train_infer_python.txt 'whole_infer' -# 用法2: 指定GPU卡预测,第三个传入参数为GPU卡号 -bash test_tipc/test_train_inference_python.sh ./test_tipc/configs/ppocr_det_mobile/train_infer_python.txt 'whole_infer' '1' -``` - -- 模式4:whole_train_whole_infer,CE: 全量数据训练,全量数据预测,验证模型训练精度,预测精度,预测速度; -```shell -bash test_tipc/prepare.sh ./test_tipc/configs/ppocr_det_mobile/train_infer_python.txt 'whole_train_whole_infer' -bash test_tipc/test_train_inference_python.sh ./test_tipc/configs/ppocr_det_mobile/train_infer_python.txt 'whole_train_whole_infer' -``` - -- 模式5:klquant_whole_infer,测试离线量化; -```shell -bash test_tipc/prepare.sh ./test_tipc/configs/ppocr_det_mobile/train_infer_python.txt 'klquant_whole_infer' -bash test_tipc/test_train_inference_python.sh ./test_tipc/configs/ppocr_det_mobile/train_infer_python.txt 'klquant_whole_infer' -``` - -运行相应指令后,在`test_tipc/output`文件夹下自动会保存运行日志。如'lite_train_lite_infer'模式下,会运行训练+inference的链条,因此,在`test_tipc/output`文件夹有以下文件: -``` -test_tipc/output/ -|- results_python.log # 运行指令状态的日志 -|- norm_train_gpus_0_autocast_null/ # GPU 0号卡上正常训练的训练日志和模型保存文件夹 -|- pact_train_gpus_0_autocast_null/ # GPU 0号卡上量化训练的训练日志和模型保存文件夹 -...... -|- python_infer_cpu_usemkldnn_True_threads_1_batchsize_1.log # CPU上开启Mkldnn线程数设置为1,测试batch_size=1条件下的预测运行日志 -|- python_infer_gpu_usetrt_True_precision_fp16_batchsize_1.log # GPU上开启TensorRT,测试batch_size=1的半精度预测日志 -...... -``` - - -#### 2.3. MAC端功能测试 - -Mac端不包含GPU,并且CPU不支持mkldnn预测,因此在Mac端无需测试tipc中关于GPU和mkldnn相关的部分。 - -为了方便Mac端功能测试,把需要测试的功能拆分为了新的参数文件`./test_tipc/configs/ppocr_det_mobile/train_mac_cpu_normal_normal_infer_python_mac_cpu.txt` - -除了修改配置文件之外,其余测试方法同2.1节的功能测试方法: - -先运行`prepare.sh`准备数据和模型,然后运行`test_train_inference_python.sh`进行测试,最终在```test_tipc/output```目录下生成`python_infer_*.log`格式的日志文件。 - -`test_train_inference_python.sh`包含5种运行模式,每种模式的运行数据不同,分别用于测试速度和精度,分别是: - -- 模式1:lite_train_lite_infer,使用少量数据训练,用于快速验证训练到预测的走通流程,不验证精度和速度; -```shell -# 同linux端运行不同的是,Mac端测试使用新的配置文件mac_ppocr_det_mobile_params.txt, -# 配置文件中默认去掉了GPU和mkldnn相关的测试链条 -bash test_tipc/prepare.sh ./test_tipc/configs/ppocr_det_mobile/train_mac_cpu_normal_normal_infer_python_mac_cpu.txt 'lite_train_lite_infer' -bash test_tipc/test_train_inference_python.sh ./test_tipc/configs/ppocr_det_mobile/train_mac_cpu_normal_normal_infer_python_mac_cpu.txt 'lite_train_lite_infer' -``` - -- 模式2:lite_train_whole_infer,使用少量数据训练,一定量数据预测,用于验证训练后的模型执行预测,预测速度是否合理; -```shell -bash test_tipc/prepare.sh ./test_tipc/configs/ppocr_det_mobile/train_mac_cpu_normal_normal_infer_python_mac_cpu.txt 'lite_train_whole_infer' -bash test_tipc/test_train_inference_python.sh ./test_tipc/configs/ppocr_det_mobile/train_mac_cpu_normal_normal_infer_python_mac_cpu.txt 'lite_train_whole_infer' -``` - -- 模式3:whole_infer,不训练,全量数据预测,走通开源模型评估、动转静,检查inference model预测时间和精度; -```shell -bash test_tipc/prepare.sh ./test_tipc/configs/ppocr_det_mobile/train_mac_cpu_normal_normal_infer_python_mac_cpu.txt 'whole_infer' -# 用法1: -bash test_tipc/test_train_inference_python.sh ./test_tipc/configs/ppocr_det_mobile/train_mac_cpu_normal_normal_infer_python_mac_cpu.txt 'whole_infer' -# 用法2: 指定GPU卡预测,第三个传入参数为GPU卡号 -bash test_tipc/test_train_inference_python.sh ./test_tipc/configs/ppocr_det_mobile/train_mac_cpu_normal_normal_infer_python_mac_cpu.txt 'whole_infer' '1' -``` - -- 模式4:whole_train_whole_infer,CE: 全量数据训练,全量数据预测,验证模型训练精度,预测精度,预测速度;(Mac端不建议运行此模式) -```shell -bash test_tipc/prepare.sh ./test_tipc/configs/ppocr_det_mobile/train_mac_cpu_normal_normal_infer_python_mac_cpu.txt 'whole_train_whole_infer' -bash test_tipc/test_train_inference_python.sh ./test_tipc/configs/ppocr_det_mobile/train_mac_cpu_normal_normal_infer_python_mac_cpu.txt 'whole_train_whole_infer' -``` - -- 模式5:klquant_whole_infer,测试离线量化; -```shell -bash test_tipc/prepare.sh ./test_tipc/ppocr_det_mobile/train_mac_cpu_normal_normal_infer_python_mac_cpu.txt 'klquant_whole_infer' -bash test_tipc/test_train_inference_python.sh test_tipc/configs/ppocr_det_mobile/train_mac_cpu_normal_normal_infer_python_mac_cpu.txt 'klquant_whole_infer' -``` - - -#### 2.4 Windows端功能测试 - -windows端的功能测试同Linux端,为了方便区分Windows端功能测试,把需要测试的功能拆分为了新的参数文件`./test_tipc/configs/ppocr_det_mobile/train_windows_gpu_normal_normal_infer_python_windows_cpu_gpu.txt` - -除了修改配置文件之外,其余测试方法同2.1节的功能测试方法。 - -先运行`prepare.sh`准备数据和模型,然后运行`test_train_inference_python.sh`进行测试,最终在```test_tipc/output```目录下生成`python_infer_*.log`格式的日志文件。 - -`test_train_inference_python.sh`包含5种运行模式,每种模式的运行数据不同,分别用于测试速度和精度,分别是: - -- 模式1:lite_train_lite_infer,使用少量数据训练,用于快速验证训练到预测的走通流程,不验证精度和速度; -```shell -bash test_tipc/prepare.sh ./test_tipc/configs/ppocr_det_mobile/train_windows_gpu_normal_normal_infer_python_windows_cpu_gpu.txt 'lite_train_lite_infer' -bash test_tipc/test_train_inference_python.sh ./test_tipc/configs/ppocr_det_mobile/train_windows_gpu_normal_normal_infer_python_windows_cpu_gpu.txt 'lite_train_lite_infer' -``` - -- 模式2:lite_train_whole_infer,使用少量数据训练,一定量数据预测,用于验证训练后的模型执行预测,预测速度是否合理; -```shell -bash test_tipc/prepare.sh ./test_tipc/configs/ppocr_det_mobile/train_windows_gpu_normal_normal_infer_python_windows_cpu_gpu.txt 'lite_train_whole_infer' -bash test_tipc/test_train_inference_python.sh ./test_tipc/configs/ppocr_det_mobile/train_windows_gpu_normal_normal_infer_python_windows_cpu_gpu.txt 'lite_train_whole_infer' -``` - -- 模式3:whole_infer,不训练,全量数据预测,走通开源模型评估、动转静,检查inference model预测时间和精度; -```shell -bash test_tipc/prepare.sh ./test_tipc/configs/ppocr_det_mobile/train_windows_gpu_normal_normal_infer_python_windows_cpu_gpu.txt 'whole_infer' -# 用法1: -bash test_tipc/test_train_inference_python.sh ./test_tipc/configs/ppocr_det_mobile/train_windows_gpu_normal_normal_infer_python_windows_cpu_gpu.txt 'whole_infer' -# 用法2: 指定GPU卡预测,第三个传入参数为GPU卡号 -bash test_tipc/test_train_inference_python.sh ./test_tipc/configs/ppocr_det_mobile/train_windows_gpu_normal_normal_infer_python_windows_cpu_gpu.txt 'whole_infer' '1' -``` - -- 模式4:whole_train_whole_infer,CE: 全量数据训练,全量数据预测,验证模型训练精度,预测精度,预测速度; -```shell -bash test_tipc/prepare.sh ./test_tipc/configs/ppocr_det_mobile/train_windows_gpu_normal_normal_infer_python_windows_cpu_gpu.txt 'whole_train_whole_infer' -bash test_tipc/test_train_inference_python.sh ./test_tipc/configs/ppocr_det_mobile/train_windows_gpu_normal_normal_infer_python_windows_cpu_gpu.txt 'whole_train_whole_infer' -``` - -- 模式5:klquant_whole_infer,测试离线量化; -```shell -bash test_tipc/prepare.sh ./test_tipc/configs/ppocr_det_mobile/train_windows_gpu_normal_normal_infer_python_windows_cpu_gpu.txt 'klquant_whole_infer' -bash test_tipc/test_train_inference_python.sh test_tipc/configs/ppocr_det_mobile/train_windows_gpu_normal_normal_infer_python_windows_cpu_gpu.txt 'klquant_whole_infer' -``` - -#### 2.5 Jeston端功能测试 - -Jeston产品是Nvidia推出的开发者套件,用于部署AI模型。Jeston系列的产品有Jeston Nano, TX,NX等等。本节以PaddleOCR检测模型和JestonNX为例,介绍如何在Jeston上接入TIPC预测推理的测试。 - -Jeston的CPU性能远差于笔记本或者台式机,因此在Jeston上,只需要测试GPU上预测相关的链条即可,包括GPU预测,GPU+TensorRT(fp32),GPU+TensorRT(fp16)预测。 - -Jeston上无需测试TIPC训练部分,仅需要测试预测推理部分即可,因此,仅需要测试inferenc部分。 -jeston 的测试脚本为`test_inference_jeston.sh`,测试方法如下: - -- 模式3:whole_infer,不训练,全量数据预测,走通开源模型评估、动转静,检查inference model预测时间和精度; -```shell -bash test_tipc/prepare.sh ./test_tipc/configs/ppocr_det_mobile/model_linux_gpu_normal_normal_infer_python_jetson.txt 'whole_infer' -# 用法1: -bash test_tipc/test_inference_jeston.sh ./test_tipc/configs/ppocr_det_mobile/model_linux_gpu_normal_normal_infer_python_jetson.txt 'whole_infer' -``` - - -#### 2.6 精度测试 - -使用compare_results.py脚本比较模型预测的结果是否符合预期,主要步骤包括: -- 提取日志中的预测坐标; -- 从本地文件中提取保存好的坐标结果; -- 比较上述两个结果是否符合精度预期,误差大于设置阈值时会报错。 - -运行命令: -```shell -python3.7 test_tipc/compare_results.py --gt_file=./test_tipc/results/python_*.txt --log_file=./test_tipc/output/python_*.log --atol=1e-3 --rtol=1e-3 -``` - -参数介绍: -- gt_file: 指向事先保存好的预测结果路径,支持*.txt 结尾,会自动索引*.txt格式的文件,文件默认保存在test_tipc/result/ 文件夹下 -- log_file: 指向运行test_tipc/test_train_inference_python.sh 脚本的infer模式保存的预测日志,预测日志中打印的有预测结果,比如:文本框,预测文本,类别等等,同样支持python_infer_*.log格式传入 -- atol: 设置的绝对误差 -- rtol: 设置的相对误差 - -运行结果: -正常运行效果如下: -``` -Assert allclose passed! The results of python_infer_cpu_usemkldnn_False_threads_1_batchsize_1.log and ./test_tipc/results/python_ppocr_det_mobile_results_fp32.txt are consistent! -``` - -出现不一致结果时的运行输出: -``` -...... -Traceback (most recent call last): - File "test_tipc/compare_results.py", line 140, in - format(filename, gt_filename)) -ValueError: The results of python_infer_cpu_usemkldnn_False_threads_1_batchsize_1.log and the results of ./test_tipc/results/python_ppocr_det_mobile_results_fp32.txt are inconsistent! -``` - - - - - diff --git "a/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/serving_test.md" "b/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/serving_test.md" deleted file mode 100644 index a7b56737722fb771fe0c4d8e734e95dee54c8de6..0000000000000000000000000000000000000000 --- "a/docs/tipc_test/\346\265\213\350\257\225\346\226\207\346\241\243/serving_test.md" +++ /dev/null @@ -1,44 +0,0 @@ - -**目录** -- [背景](#--) -- [文档规范](#----) - * [1.测试结论汇总](#1------) - * [2.测试流程](#2----) - + [2.1 功能测试](#21-----) - + [2.2 精度测试](#22-----) - -# 背景 -PaddleServing 预测功能测试的主程序为 `test_serving.sh`,可以测试基于 PaddleServing 的部署功能。本文介绍 PaddleServing 预测功能测试文档的撰写规范。 - -# 文档规范 - -本文档和基础训练预测文档大体结构类似,主要去掉了训练相关的部分。 - -## 1.测试结论汇总 - -内容:基于训练是否使用量化,可以将训练产出的模型可以分为`正常模型`和`量化模型`,表格形式给出这两类模型对应的预测功能汇总情况,包含`模型类型`、`device`、`batchsize`、`tensorrt`、`mkldnn`、`cpu多线程`这6个字段。 - -- 算法名称:该模型对应的算法,可以是算法简称; -- device:CPU 或 GPU,其他字段取值对应本字段指定的环境; -- batchsize:一般包括1、6两种 batchsize,根据实际支持情况填写。 -- tensorrt:开启 tensorrt 支持的精度,包括`fp32`、`fp16`、`int8`三种,当 device 为 CPU 时,本字段填`-`。 -- mkldnn:开启 mkldnn 支持的精度,包括`fp32`、`fp16`、`int8`三种,当 device 为 GPU 时,本字段填`-`。 -- cpu多线程:支持时填`支持`,不支持时留空即可,当 device 为 GPU 时,本字段填`-`。 - -示例: - -| 模型类型 |device | batchsize | tensorrt | mkldnn | cpu多线程 | -| ---- | ---- | ---- | :----: | :----: | :----: | -| 正常模型 | GPU | 1/6 | fp32/fp16 | - | - | -| 正常模型 | CPU | 1/6 | - | fp32 | 支持 | -| 量化模型 | GPU | 1/6 | int8 | - | - | -| 量化模型 | CPU | 1/6 | - | int8 | 支持 | - -## 2.测试流程 -### 2.1 功能测试 -内容:给出 PaddleServing 预测具体测试命令。 -示例: -![图片](images/tipc_serving_model.jpg) -### 2.2 精度测试 - -由于 PaddleServing 调用了 python inference 预测,因此不做精度对比。