基于昇腾NPU部署PP-YOLOE-L_human模型
一、运行环境准备
1.拉取镜像
docker pull ccr-2vdh3abv-pub.cnc.bj.baidubce.com/device/paddle-npu:cann800-ubuntu20-npu-910b-base-aarch64-gcc84
2.启动容器
docker run -it --name paddle-npu-dev -v $(pwd):/work \
--privileged --network=host --shm-size=128G -w=/work \
-v /usr/local/Ascend/driver:/usr/local/Ascend/driver \
-v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi \
-v /usr/local/dcmi:/usr/local/dcmi \
-e ASCEND_RT_VISIBLE_DEVICES="0,1,2,3" \
ccr-2vdh3abv-pub.cnc.bj.baidubce.com/device/paddle-npu:cann800-ubuntu20-npu-910b-base-$(uname -m)-gcc84 /bin/bash
参数说明:
① --name paddle-npu-dev
作用:指定容器名称。
② -v $(pwd):/work
作用:挂载本地目录到容器内 /work 目录。
可调整:
可以修改 $(pwd) 为实际路径,例如 -v /data/projects:/work,让容器访问宿主机的数据。
③ --shm-size=128G
作用:设置共享内存大小,影响数据处理和计算效率。
可调整:
若内存有限,可降低,如 --shm-size=32G,但可能影响大规模训练。
若训练任务需要更大共享内存,可提高,如 --shm-size=256G。
3.安装飞桨 CPU 安装包
pip install paddlepaddle -i https://www.paddlepaddle.org.cn/packages/nightly/cpu
4.安装飞桨 NPU 插件包
pip install paddle-custom-npu -i https://www.paddlepaddle.org.cn/packages/nightly/npu
5.安装 PaddleX 代码库
git clone https://github.com/PaddlePaddle/PaddleX.git
cd PaddleX
pip install -e .(注意带上最后的”.”)
6.安装目标检测库
paddlex --install PaddleDetection
二、数据准备
1.Demo 数据下载
cd PaddleX
wget https://paddle-model-ecology.bj.bcebos.com/paddlex/data/widerperson_coco_examples.tar -P ./dataset
tar -xf ./dataset/widerperson_coco_examples.tar -C ./dataset/
2.数据校验
python main.py -c paddlex/configs/modules/human_detection/PP-YOLOE-L_human.yaml \
-o Global.mode=check_dataset \
-o Global.dataset_dir=./dataset/widerperson_coco_examples
命令运行成功后会在log中打印出Check dataset passed !信息
三、模型训练
# 解决 libgomp 在 arm 机器上报错
# "libgomp cannot allocate memory in static TLS block"
export LD_PRELOAD=/usr/local/lib/python3.10/dist-packages/scikit_learn.libs/libgomp-d22c30c5.so.1.0.0:/usr/lib/aarch64-linux-gnu/libGLdispatch.so.0:/usr/lib/aarch64-linux-gnu/libgomp.so.1
执行命令开启训练:
python main.py -c paddlex/configs/modules/human_detection/PP-YOLOE-L_human.yaml \
-o Global.mode=train \
-o Global.dataset_dir=./dataset/widerperson_coco_examples \
-o Global.output=ppyoloe_l_human_output \
-o Global.device="npu:0,1,2,3"
四、模型评估
python main.py -c paddlex/configs/modules/human_detection/PP-YOLOE-L_human.yaml \
-o Global.mode=evaluate \
-o Global.dataset_dir=./dataset/widerperson_coco_examples \
-o Evaluate.weight_path=./ppyoloe_l_human_output/best_model/best_model/model.pdparams \
-o Global.device="npu:0,1,2,3"
五、模型推理
python main.py -c paddlex/configs/modules/human_detection/PP-YOLOE-L_human.yaml \
-o Global.mode=predict \
-o Predict.model_dir="./ppyoloe_l_human_output/best_model/inference" \
-o Predict.input="https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/human_detection.jpg" \
-o Global.device="npu:0,1,2,3"
- 点赞
- 收藏
- 关注作者
评论(0)