IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 飞桨 PP-PicoDet 配置与训练 -> 正文阅读

[人工智能]飞桨 PP-PicoDet 配置与训练

论文 PP-PicoDet
项目github地址

1. 安装

1.1 conda 安装 paddlepaddle

 conda create -n paddle python=3.8  # 创建python环境
 conda activate paddle  # 进入环境
  python3 -c "import platform;print(platform.architecture()[0]);print(platform.machine())"    # 输出x86_64。确认Python和pip是64bit,并且处理器架构是x86_64,目前PaddlePaddle不支持arm64架构。

飞桨官网 选择合适的安装版本安装

conda install paddlepaddle-gpu==2.1.3 cudatoolkit=11.2 -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/Paddle/ -c conda-forge 

安装环境验证

使用python进入python解释器,

import paddle.fluid
paddle.fluid.install_check.run_check()

如果出现“Your Paddle Fluid is installed succesfully!”,说明您已成功安装。

如果希望在多卡环境下使用PaddleDetection,请首先安装NCCL 2。NCCL是Nvidia Collective multi-GPU Communication Library的简称,它是一个实现多GPU的collective communication通信(all-gather, reduce, broadcast)库,Nvidia做了很多优化。
conda 安装 nccl :

conda install -c conda-forge nccl
或者
conda install -c conda-forge/label/cf202003 nccl

1.2 安装 PaddleDetection

PaddleDetection是百度基于paddlepaddle开发的目标检测开发套件,提供了从数据准备、模型训练、模型评估、模型导出到模型部署的全流程。

# 克隆PaddleDetection仓库
cd <path/to/clone/PaddleDetection>
git clone https://github.com/PaddlePaddle/PaddleDetection.git  

# 安装其他依赖
pip install -r requirements.txt

# 编译安装paddledet
cd PaddleDetection
python setup.py install

报错 :No module named Cython
解决方法:pip install Cython

确保安装成功:

python ppdet/modeling/tests/test_architectures.py

测试通过后会提示信息如下:

----------------------------------------------------------------------
Ran 7 tests in 1.587s
OK

接下来快速体验目标检测效果

# 在GPU上预测一张图片
export CUDA_VISIBLE_DEVICES=0
python tools/infer.py -c configs/ppyolo/ppyolo_r50vd_dcn_1x_coco.yml -o use_gpu=true weights=https://paddledet.bj.bcebos.com/models/ppyolo_r50vd_dcn_1x_coco.pdparams --infer_img=demo/000000014439.jpg

会在output文件夹下生成一个画有预测结果的同名图像。

2. PP-PicoDet 训练自己的数据集(COCO)

参考:30分钟快速上手PaddleDetection

2.1 修改配置文件

在PaddleDetection 2.0后续版本,采用了模块解耦设计,用户可以组合配置模块实现检测器,并可自由修改覆盖各模块配置。

1 修改主配置文件 configs/picodet/picodet_s_416_coco.yml

_BASE_: [
  '../datasets/coco_detection.yml',   # 设置数据集
  '../runtime.yml',  #  公共运行参数,否使用GPU、每多少个epoch存储checkpoint等
  '_base_/picodet_esnet.yml',   # 设置网络结构
  '_base_/optimizer_300e.yml',   # 设置优化器 epoch 学习率等
  '_base_/picodet_416_reader.yml',     # 设置加载数据尺寸、batch_size等
]

weights: output/picodet_s_416_coco/model_final  # 训练模型保存路径
...

注意 :各模块配置文件的配置参数可以直接copy到主配置文件中进行修改。在主配置文件中重写的配置参数会覆盖掉加载的配置参数。
为方便起见下面2-6条的配置文件也可以不在各文件中分别修改,而是在主配置文件中集中覆写。

2 修改数据集配置文件 configs/detasets/coco_detection.yml。建议不要直接修改,而是拷贝到主配置文件直接修改。数据集路径可以写绝对路径,也可以写相对路径。

...
num_classes: 80  # 改为自己的检测类别数 
TrainDataset:
  !COCODataSet
    image_dir: train2017  
    anno_path: annotations/instances_train2017.json
    dataset_dir: dataset/coco  # 建议写绝对路径
    ...

3 根据自己的需求,修改(或覆写)数据读取配置文件configs/picodet/_base_/picodet_416_reader.yml

worker_num: 6
TrainReader:
	...
	- BatchRandomResize: {target_size: [352, 384, 416, 448, 480], random_size: True, random_interp: True, keep_ratio: False}  # 多尺度训练参数,间隔 32
	...
	batch_size: 80  # 根据GPU卡数调整
...
EvalReader:
	...
  batch_size: 8  # 验证默认batch size 为 8
  	...

4 覆写 configs/picodet/_base_/optimizer_300e.yml
默认学习率是适配多GPU训练(8x GPU),若使用单GPU训练,须对应调整学习率(例如,除以8)。

epoch: 300
LearningRate:
  base_lr: 0.05  # 单卡建议学习率 
  ...

5 覆写 configs/runtime.yml

use_gpu: true
log_iter: 20
save_dir: output
snapshot_epoch: 5  # 每隔 5个epoch eval 一次 
print_flops: false

6 根据需要修改模型文件_base_/picodet_esnet.yml

2.2 训练

PaddleDetection提供了单卡/多卡训练模式,满足用户多种训练需求

GPU单卡训练

export CUDA_VISIBLE_DEVICES=0 #windows和Mac下不需要执行该命令
python tools/train.py -c configs/picodet/picodet_s_416_coco.yml

GPU多卡训练

export CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 #指定可见的gpu。windows和Mac下不需要执行该命令
python -m paddle.distributed.launch --gpus 0,1,2,3,4,5,6,7 tools/train.py -c configs/picodet/picodet_s_416_coco.yml

建添加 --eval ,边训练,边评估

export CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 #windows和Mac下不需要执行该命令
python -m paddle.distributed.launch --gpus 0,1,2,3,4,5,6,7 tools/train.py -c configs/picodet/picodet_s_416_coco.yml --eval

在训练中交替执行评估, 评估在每个epoch训练结束后开始。每次评估后还会评出最佳mAP模型保存到best_model文件夹下。

如果验证集很大,测试将会比较耗时,建议调整configs/runtime.yml 文件中的 snapshot_epoch配置以减少评估次数,或训练完成后再进行评估。

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-11-10 12:23:57  更:2021-11-10 12:24:56 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 6:13:48-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码