「全国大学生智能汽车比赛」是教育部提倡的大学生科技 A 类比赛,中国高等教育学会将其列为含金量最高的大学生比赛之一。截至 2023 年,曾经举办十八届,较量每年吸引包含清华、上交、复旦、北航等 500 多所高校,超 10 万名大学生加入,是晋升学生翻新实际能力和造就团队精神的国家级创意性科技比赛。
齐全模型组作为较量中深刻应用人工智能技术的竞速组别,在比赛中引入了更多人工智能元素和技术,受到越来越多学生与高校教师们的欢送。
为了让大家从线上练习赛的学习与实际中,积攒更多深度学习教训与迷信方法论,咱们为大家筹备了培训直播课和老手教程,干货满满。
线上赛培训,本周六见!
- 培训工夫: 2024 年 3 月 2 日 11:00
- 线上链接: 退出官网社群获取
- 培训讲师: 百度飞桨开发者技术专家 (PPDE)、前百度飞桨北京领航团团长郑博培
- 培训内容: 指标检测工作从入门到进阶
除直播课之外,河池学院飞桨领航团团长黄德攒也为大家梳理了深度学习入门实际和线上赛打榜的流程,快来一睹为快。
深度学习入门实际 6 步走,暨线上赛打榜流程
第一步:环境配置
git clone https://gitee.com/PaddlePaddle/PaddleDetection.git -b develop
倡议应用 develop 分支哦!局部状况下须要应用 release2.3.2 以前的分支。
第二步:装置依赖
# 装置 PaddleDetection
%cd PaddleDetection
!pip install -r requirements.txt
# 编译装置 paddledet
!python setup.py install
%cd ~
第三步:数据筹备
- 解压官网数据集 Car2024
# 解压数据集
!unzip -oq /home/aistudio/data/data257994/Car2024.zip
- 生成标签文件(训练集 train.txt 以及验证集 val.txt)
- 将 VOC 格局标签文件转换成 COCO 格局(.json)标签文件(训练集 train.json 与验证集 val.json)
- 瞅一眼转换是否胜利
- 确定你的数据集的门路
- 依据数据集的门路,批改如下文件 PaddleDetection/configs/datasets/coco_detection.yml
TrainDataset:
name: COCODataSet
image_dir: Images #更改为你的图像数据文件夹的名字
anno_path: train.json #训练集标签文件,个别状况下转换后生成在数据集文件夹的根目录下
dataset_dir: /home/aistudio/work/data3374 #数据集地位
data_fields: ['image', 'gt_bbox', 'gt_class', 'is_crowd']
EvalDataset:
name: COCODataSet #解释如上
image_dir: Images
anno_path: val.json
dataset_dir: /home/aistudio/work/data3374
allow_empty: true
TestDataset:
name: ImageFolder
anno_path: val.json
dataset_dir: /home/aistudio/work/data3374
第四步:参数调整与模型训练
# 模型训练
%cd ~
%cd PaddleDetection
!python tools/train.py -c configs/picodet/picodet_m_320_coco_lcnet.yml
picodet_m_320_coco_lcnet.yml 中,各个超参数的值不同可能导致模型构造、精度、成果有出入。
_BASE_: [
'../datasets/coco_Car2024.yml',
'../runtime.yml',
'_base_/picodet_v2.yml',
'_base_/optimizer_300e.yml',
'_base_/picodet_320_reader.yml',
]
# 模型权重门路,模型保留的中央哦
weights: output/picodet_m_320_coco/best_model
# 在反向流传时查找未应用的参数以进步内存利用率
find_unused_parameters: True
# 是否应用指数挪动均匀来稳固模型的训练
use_ema: true
# 总训练轮数
epoch: 300 # 调大可能进步模型性能,但也可能导致过拟合,训练工夫减少
# 每隔多少个 epoch 保留一次模型的快照
snapshot_epoch: 10 # 调大可能缩小存储开销,但减少训练工夫
# 训练时的读取器配置
TrainReader:
batch_size: 48 # 调大可能进步训练速度,但可能导致 GPU 内存不足
# 学习率相干配置
LearningRate:
# 根底学习率
base_lr: 0.24 # 调大可能减速模型收敛,但也可能导致发散
# 学习率调度策略
schedulers:
- !CosineDecay
max_epochs: 300 # 余弦退火策略,学习率在 300 轮内进行余弦退火
- !LinearWarmup
start_factor: 0.1 # 预热学习率的初始比例
steps: 300 # 预热所需的步数
- 不小心中断训练后,从新复原训练
python tools/train.py
-c configs/picodet/picodet_m_320_coco_lcnet.yml --eval
-r output/picodet_m_320_coco/best_model
第五步:模型测试
%cd ~
%cd PaddleDetection
# 更换 "--infer_img" 里的图片门路以预测不同的图片
!python tools/infer.py -c configs/picodet/picodet_m_320_coco_lcnet.yml
--infer_img=/home/aistudio/Car2024/images/crosswalk74.jpg
--output_dir=infer_output/
--draw_threshold=0.5
-o weights=/home/aistudio/PaddleDetection/output/picodet_m_320_coco_lcnet/ 你的最新模型权重文件. pdparams --use_vdl=Ture
第六步:模型导出与提交
- 训练模型过程中会产生一些两头模型即 checkpoints,须要将最优模型文件导出:
%cd ~
%cd PaddleDetection
# 将 "-o weights" 里的模型门路换成你本人训好的模型
!python tools/export_model.py -c configs/picodet/picodet_m_320_coco_lcnet.yml
-o weights=/home/aistudio/PaddleDetection/output/picodet_m_320_coco_lcnet/best_model TestReader.fuse_normalize=true
- 最初一步就是提交内容的整顿:将文件夹进行调整,并将搁置依赖文件的 PaddleDetection 文件夹中无关内容进行删除,最终的文件状态如下所示(模型名称依据本人的状况而定):
线上练习赛常见问题整顿
-
error① :list index out of range
谬误可能的呈现起因:1. 模型的标签配置与模型不匹配 2. 数据集有问题 3. 模型导出时对应权重与对应的 config 文件不统一
-
error② :the predict.py script failed to run
解决办法:1. 检查和调整 env(依赖库,常为 PaddleDetection 文件夹);2. 查看 predict.py 中的门路配置
- 装置 PaddleDetection 时的版本关联明确
- 线上赛门路图
作者:河池学院飞桨领航团团长黄德攒
并同时致谢群内:中二短尾猫
校对:Jungle