未验证 提交 976123fa 编写于 作者: A andyjpaddle 提交者: GitHub

add Windows TIPC (#5484)

* add windows tipc

* add windows tipc

* update win tipc doc
Co-authored-by: NMissPenguin <lichenxia1991@163.com>
上级 7b6bd30d
......@@ -15,11 +15,10 @@
- 模型压缩:包括裁剪、离线/在线量化、蒸馏。
- 其他预测部署:包括Paddle Inference C++预测、Paddle Serving部署、Paddle-Lite部署等。
| 算法论文 | 模型名称 | 模型类型 | 基础<br>训练预测 | 更多<br>训练方式 | 模型压缩 | 其他预测部署 |
| :--- | :--- | :----: | :--------: | :---- | :---- | :---- |
| MobileNetV3 | mobilenet_v3_small | 分类 | 支持 | 混合精度<br> | - | - |
| MobileNetV3 | mobilenet_v3_small | 分类 | 支持 | - | PACT量化训练<br> | - |
| MobileNetV3 | mobilenet_v3_small | 分类 | 支持 | - | 离线量化训练<br> | - |
| 算法论文 | 模型名称 | 模型类型 | 基础<br>训练预测 | 更多<br>训练方式 | 更多<br>部署方式 | Slim训练部署 | 更多<br>训练环境 |
| :--- | :--- | :----: | :--------: | :---- | :---- | :---- | :---- |
| MobileNetV3 | mobilenet_v3_small | 分类 | 支持 | 混合精度 | | PACT量化<br>离线量化 | Windows |
## 3. 测试工具简介
......@@ -77,4 +76,4 @@ test_tipc
- [Linux XPU2 基础训练推理测试]
- [Linux DCU 基础训练推理测试]
- [Linux NPU 基础训练推理测试]
- [Windows GPU/CPU 基础训练推理测试]
- [Windows GPU/CPU 基础训练推理测试](docs/test_windows_train_inference_python.md)
===========================train_params===========================
model_name:mobilenet_v3_small
python:python
gpu_list:0
use-gpu:True
--epochs:lite_train_lite_infer=5|whole_train_whole_infer=90
--output-dir:./output/
--batch-size:lite_train_lite_infer=4|whole_train_whole_infer=128
--pretrained:null
train_model_name:latest.pdparams
--data-path:./lite_data
##
trainer:norm_train
norm_train:train.py --workers=0
##
===========================eval_params===========================
eval:train.py --test-only --workers=0
##
===========================infer_params===========================
--save-inference-dir:./output/mobilenet_v3_small_infer/
--pretrained:
norm_export:tools/export_model.py --model=mobilenet_v3_small
##
train_model:./mobilenet_v3_small_pretrained.pdparams
infer_export:tools/export_model.py --model=mobilenet_v3_small
##
inference:deploy/inference_python/infer.py
--use-gpu:True|False
--batch-size:1
--model-dir:./output/mobilenet_v3_small_infer/
--img-path:./images/demo.jpg
--benchmark:True
\ No newline at end of file
# Windows GPU/CPU 基础训练推理测试
Windows GPU/CPU 基础训练推理测试的主程序为`test_train_inference_python.sh`,可以测试基于Python的模型训练、评估、推理等基本功能。
在Windows平台上执行命令和Linux平台略有不同,主要体现在:下载与解压数据、设置环境变量、数据加载等方面。此外Windows平台只支持单卡的训练与预测,DataLoader只支持单进程模式,因此需要设置 workers 为0。
## 1. 测试结论汇总
- 训练相关:
| 算法名称 | 模型名称 | 单机单卡 | 单机多卡 |
| :----: | :----: | :----: | :----: |
| MobileNetV3 | mobilenet_v3_small | 正常训练 | 不支持 |
- 推理相关:
| 算法名称 | 模型名称 | device_CPU | device_GPU | batchsize |
| :----: | :----: | :----: | :----: | :----: |
| MobileNetV3 | mobilenet_v3_small | 支持 | 支持 | 1 |
## 2. 测试流程
### 2.1 准备数据
用于基础训练推理测试的数据位于`test_images/lite_data.tar`,直接解压即可(如果已经解压完成,则无需运行下面的命令)。
```bash
python -c "import shutil;shutil.unpack_archive('test_images/lite_data.tar', extract_dir='./',format='tar')"
```
执行该命令后,会在当前路径下解压出对应的数据集文件夹`lite_data`
### 2.2 准备预训练模型
使用下面的命令下载 MobileNetV3 预训练模型,便于后续测试模型评估、预测、推理部署等功能。
```bash
pip install wget
python -c "import wget;wget.download('https://paddle-model-ecology.bj.bcebos.com/model/mobilenetv3_reprod/mobilenet_v3_small_pretrained.pdparams')"
```
### 2.3 准备环境
- 安装PaddlePaddle:如果您已经安装了2.2或者以上版本的paddlepaddle,那么无需运行下面的命令安装paddlepaddle。
```
# 需要安装2.2及以上版本的Paddle
# 安装GPU版本的Paddle
pip install paddlepaddle-gpu==2.2.0
# 安装CPU版本的Paddle
pip install paddlepaddle==2.2.0
```
- 安装依赖
```
pip install -r requirements.txt
```
- 安装AutoLog(规范化日志输出工具)
```
pip install https://paddleocr.bj.bcebos.com/libs/auto_log-1.2.0-py3-none-any.whl
```
- 安装 Git
在windows下想要执行shell脚本,需要使用到"Git Bash",所以需要先安装Git,具体可百度搜索安装方法。
### 2.4 功能测试
测试方法如下所示,希望测试不同的模型文件,只需更换为自己的参数配置文件,即可完成对应模型的测试。
```bash
bash test_tipc/test_train_inference_python.sh ${your_params_file} lite_train_lite_infer
```
`mobilenet_v3_small``Windows GPU/CPU 基础训练推理测试`为例,命令如下所示。
```bash
bash test_tipc/test_train_inference_python.sh test_tipc/configs/mobilenet_v3_small/win_train_infer_python.txt lite_train_lite_infer
```
输出结果如下,表示命令运行成功。
```bash
Run successfully with command - python train.py --workers=0 --output-dir=./log/mobilenet_v3_small/lite_train_lite_infer/norm_train_gpus_0 --epochs=5 --batch-size=4!
......
Run successfully with command - python deploy/inference_python/infer.py --use-gpu=False --model-dir=./log/mobilenet_v3_small/lite_train_lite_infer/norm_train_gpus_0 --batch-size=1 --benchmark=True > ./log/mobilenet_v3_small/lite_train_lite_infer/python_infer_cpu_batchsize_1.log 2>&1 !
```
在开启benchmark参数时,可以得到测试的详细数据,包含运行环境信息(系统版本、CUDA版本、CUDNN版本、驱动版本),Paddle版本信息,参数设置信息(运行设备、线程数、是否开启内存优化等),模型信息(模型名称、精度),数据信息(batchsize、是否为动态shape等),性能信息(CPU,GPU的占用、运行耗时、预处理耗时、推理耗时、后处理耗时),如下图所示
<div align="center">
<img src="../../../../tipc/windows_train_infer_python/images/autolog_win_demo.png">
</div>
该信息可以在运行log中查看,以`mobilenet_v3_small`为例,log位置在`./log/mobilenet_v3_small/lite_train_lite_infer/python_infer_cpu_batchsize_1.log`
如果运行失败,也会在终端中输出运行失败的日志信息以及对应的运行命令。可以基于该命令,分析运行失败的原因。
......@@ -7,12 +7,12 @@
- [2.1 命令解析](#2.1)
- [2.2 配置文件和运行命令映射解析](#2.2)
- [3. 基本训练推理功能测试开发](#3)
- [2.1 准备待测试的命令](#3.1)
- [2.2 准备数据与环境](#3.2)
- [2.3 准备开发所需脚本](#3.3)
- [2.4 填写配置文件](#3.4)
- [2.5 验证配置正确性](#3.5)
- [2.6 撰写说明文档](#3.6)
- [3.1 准备待测试的命令](#3.1)
- [3.2 准备数据与环境](#3.2)
- [3.3 准备开发所需脚本](#3.3)
- [3.4 填写配置文件](#3.4)
- [3.5 验证配置正确性](#3.5)
- [3.6 撰写说明文档](#3.6)
- [4. FAQ](#4)
<a name="1"></a>
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册