:::info
我们的口号是:没有困难的工作,只有勇敢的狗狗 !
:::
## 环境准备
### PaddleDetection 环境安装
```bash
# export LD_LIBRARY_PATH=/usr/lib64/
git clone -b develop https://github.com/PaddlePaddle/PaddleDetection --depth=1
python -m pip install paddlepaddle-gpu==2.5.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
cd PaddleDetection
pip install -r requirements.txt --user -i https://pypi.tuna.tsinghua.edu.cn/simple
python setup.py install --user
python ppdet/modeling/tests/test_architectures.py
```
### 测试环境准备
```bash
# 提前下载一个小型的coco数据集用于测试
wget -nc -P ./dataset/coco/ https://bj.bcebos.com/v1/paddledet/data/cocomini.zip --no-check-certificate
cd ./dataset/coco/ && unzip cocomini.zip
mv -u cocomini/* ./
# 回到PaddleDetection目录
cd ../../
wget https://paddle-qa.bj.bcebos.com/benchmark/tools.tar.gz && tar xvf tools.tar.gz && export BENCHMARK_ROOT=$PWD/tools/
# test_tipc 在 PaddleDetection目录下
bash test_tipc/prepare.sh test_tipc/configs/mask_rcnn/mask_rcnn_r50_1x_coco_train_infer_python.txt benchmark_train;
bash test_tipc/benchmark_train.sh test_tipc/configs/mask_rcnn/mask_rcnn_r50_1x_coco_train_infer_python.txt benchmark_train dynamic_bs2_fp32_DP_N1C1;
```
:::info
dynamic_bs2_fp32_DP_N1C1,表示的是bs=2,fp32训练,N1C1单机单卡。如果要换bs,就相应改为dynamic_bs4_fp32_DP_N1C1;换amp训练就改为dynamic_bs2_fp16_DP_N1C1
:::
## 婷姐语录
1、修改的原则是没改变模型结构,不影响训练精度指
2、对于dataloader的参数配置,可以调,但是调之前应该问一个问题,有没有必要调,模型现在读数据的过程是它的训练瓶颈吗?如果是,应该调什么参数会加快数据的读取
3、分析方法:分析一下它训练时间的构成,有几大部分,占比如何?去分析每一个过程是不是有瓶颈,借助Profile和nsight 工具分析,找到优化动机,解决对性能影响最大的那些问题,才有可能提升速度。
4、nsys和ncu的区别:分析模型用nsys ,ncu用来分析kernel