diff --git a/tests/docs/test_cpp.md b/tests/docs/test_cpp.md index fa42bcb3a2f159076e4cc5566c33903708c6537b..d10a3c2becc17a268291525dbcac936452b83867 100644 --- a/tests/docs/test_cpp.md +++ b/tests/docs/test_cpp.md @@ -2,20 +2,19 @@ C++预测功能测试的主程序为`test_cpp.sh`,可以测试基于C++预测库的模型推理功能。 -## 测试结论汇总 +## 1. 测试结论汇总 -| 算法名称 | 模型名称 |device | batchsize | mkldnn | cpu多线程 | tensorrt | 离线量化 | -| ---- | ---- | ---- | ---- | ---- | ---- | ----| --- | -| DB |ch_ppocr_mobile_v2.0_det| CPU/GPU | 1/6 | 支持 | 支持 | fp32/fp16/int8 | 支持 | -| DB |ch_ppocr_server_v2.0_det| CPU/GPU | 1/6 | 支持 | 支持 | fp32/fp16/int8 | 支持 | -| CRNN |ch_ppocr_mobile_v2.0_rec| CPU/GPU | 1/6 | 支持 | 支持 | fp32/fp16/int8 | 支持 | -| CRNN |ch_ppocr_server_v2.0_rec| CPU/GPU | 1/6 | 支持 | 支持 | fp32/fp16/int8 | 支持 | -|PP-OCR|ch_ppocr_server_v2.0 | CPU/GPU | 1/6 | 支持 | 支持 | fp32/fp16/int8 | 支持 | -|PP-OCR|ch_ppocr_server_v2.0 | CPU/GPU | 1/6 | 支持 | 支持 | fp32/fp16/int8 | 支持 | +基于训练是否使用量化,进行本测试的模型可以分为`正常模型`和`量化模型`,这两类模型对应的C++预测功能汇总如下: +| 模型类型 |device | batchsize | tensorrt | mkldnn | cpu多线程 | +| ---- | ---- | ---- | :----: | :----: | :----: | +| 正常模型 | GPU | 1/6 | fp32/fp16 | - | - | +| 正常模型 | CPU | 1/6 | - | fp32 | 支持 | +| 量化模型 | GPU | 1/6 | int8 | - | - | +| 量化模型 | CPU | 1/6 | - | | 支持 | - -## 1. 功能测试 +## 2. 测试流程 +### 2.1 功能测试 先运行`prepare.sh`准备数据和模型,然后运行`test_cpp.sh`进行测试,最终在```tests/output```目录下生成`cpp_infer_*.log`后缀的日志文件。 ```shell @@ -28,14 +27,14 @@ bash tests/test_cpp.sh ./tests/configs/ppocr_det_mobile_params.txt '1' ``` -## 2. 精度测试 +### 2.2 精度测试 使用compare_results.py脚本比较模型预测的结果是否符合预期,主要步骤包括: - 提取日志中的预测坐标; - 从本地文件中提取保存好的坐标结果; - 比较上述两个结果是否符合精度预期,误差大于设置阈值时会报错。 -### 使用方式 +#### 使用方式 运行命令: ```shell python3.7 tests/compare_results.py --gt_file=./tests/results/cpp_*.txt --log_file=./tests/output/cpp_*.log --atol=1e-3 --rtol=1e-3 @@ -47,7 +46,7 @@ python3.7 tests/compare_results.py --gt_file=./tests/results/cpp_*.txt --log_fi - atol: 设置的绝对误差 - rtol: 设置的相对误差 -### 运行结果 +#### 运行结果 正常运行效果如下图: @@ -55,5 +54,7 @@ python3.7 tests/compare_results.py --gt_file=./tests/results/cpp_*.txt --log_fi 出现不一致结果时的运行输出: -*** + +## 3. 更多教程 + 本文档为功能测试用,更详细的c++预测使用教程请参考:[服务器端C++预测](https://github.com/PaddlePaddle/PaddleOCR/tree/dygraph/deploy/cpp_infer) diff --git a/tests/docs/test_python.md b/tests/docs/test_python.md index 05270600ef106b130fc9c0947cfafb3bbd0f7350..b3dcc6e4589ba567c7b682740c0bbdf31c78e88c 100644 --- a/tests/docs/test_python.md +++ b/tests/docs/test_python.md @@ -2,7 +2,7 @@ Python功能测试的主程序为`test_python.sh`,可以测试基于Python的模型训练、评估、推理等基本功能,包括裁剪、量化、蒸馏。 -## 测试结论汇总 +## 1. 测试结论汇总 - 训练相关: @@ -25,8 +25,8 @@ Python功能测试的主程序为`test_python.sh`,可以测试基于Python的 | 量化模型 | GPU | 1/6 | int8 | - | - | | 量化模型 | CPU | 1/6 | - | int8 | 支持 | - -## 1. 安装依赖 +## 2. 测试流程 +### 2.1 安装依赖 - 安装PaddlePaddle >= 2.0 - 安装PaddleOCR依赖 ``` @@ -43,7 +43,7 @@ Python功能测试的主程序为`test_python.sh`,可以测试基于Python的 ``` -## 2. 功能测试 +### 2.2 功能测试 先运行`prepare.sh`准备数据和模型,然后运行`test_python.sh`进行测试,最终在```tests/output```目录下生成`infer_*.log`格式的日志文件。 test_python.sh包含四种运行模式,每种模式的运行数据不同,分别用于测试速度和精度,分别是: @@ -82,14 +82,14 @@ bash tests/test_python.sh tests/configs/ppocr_det_mobile_params.txt 'klquant_in ``` -## 3. 精度测试 +### 2.3 精度测试 使用compare_results.py脚本比较模型预测的结果是否符合预期,主要步骤包括: - 提取日志中的预测坐标; - 从本地文件中提取保存好的坐标结果; - 比较上述两个结果是否符合精度预期,误差大于设置阈值时会报错。 -### 使用方式 +#### 使用方式 运行命令: ```shell python3.7 tests/compare_results.py --gt_file=./tests/results/python_*.txt --log_file=./tests/output/python_*.log --atol=1e-3 --rtol=1e-3 @@ -101,7 +101,7 @@ python3.7 tests/compare_results.py --gt_file=./tests/results/python_*.txt --log - atol: 设置的绝对误差 - rtol: 设置的相对误差 -### 运行结果 +#### 运行结果 正常运行效果如下图: @@ -109,7 +109,8 @@ python3.7 tests/compare_results.py --gt_file=./tests/results/python_*.txt --log 出现不一致结果时的运行输出: -*** + +## 3. 更多教程 本文档为功能测试用,更丰富的训练预测使用教程请参考: [模型训练](https://github.com/PaddlePaddle/PaddleOCR/blob/dygraph/doc/doc_ch/training.md) [基于Python预测引擎推理](https://github.com/PaddlePaddle/PaddleOCR/blob/dygraph/doc/doc_ch/inference.md) diff --git a/tests/readme.md b/tests/readme.md index 05e3271f7cfea67411b7ce76e41031d2aad90dc6..557ea12698e2856299bdded0f1588ccbc95f1b0e 100644 --- a/tests/readme.md +++ b/tests/readme.md @@ -1,17 +1,21 @@ # 推理部署导航 +## 1. 简介 + 飞桨除了基本的模型训练和预测,还提供了支持多端多平台的高性能推理部署工具。本文档提供了PaddleOCR中所有模型的推理部署导航,方便用户查阅每种模型的推理部署打通情况,并可以进行一键测试。