配环境
创建项目时,自动使用PaddlePaddle【自动安装CUDA10.1】和python3.7。
安装paddledetection(创建项目时,已经安装了paddlepaddle)
#notebook中用!
# 下载PaddleDetection
!git clone https://gitee.com/paddlepaddle/PaddleDetection
# 移到work目录下,持久安装
!mv PaddleDetection work
#配置PaddleDetection环境
!pip install -r /home/aistudio/work/PaddleDetection/requirements.txt
#安装paddledetection
python setup.py install
#运行需要 COCO-API
pip install pycocotools
#安装可视化工具VisualDL
python -m pip install visualdl -i https://mirror.baidu.com/pypi/simple
训练
相关概念
一个epoch:所有训练样本在神经网络中都进行了一次正向传播和一次反向传播。
在训练时,将所有数据迭代训练一次是不够的,需要反复多次才能拟合收敛。
随着 epoch 数量的增加,神经网络中权重更新迭代的次数增多,曲线从最开始的不拟合状态,慢慢进入优化拟合状态,最终进入过拟合
epoch 的个数是非常重要的。对于不同的数据集来说,epoch 数量是不同的。epoch 大小与数据集的多样化程度有关,多样化程度越强,epoch 应该越大。
batch size:实际训练中,由于内存的原因,不能一次将所有样本进行训练,所以一次将batch size个样本进行训练。
迭代数iters:样本数/batch size,完成一次 epoch 所需的 batch 个数
训练
#将数据集解压到指定目录
unzip tile_r2_no_model.zip -d /home/aistudio/work/PaddleDetection/dataset/tile_voc
# 边训练边测试 CPU需要约1小时(use_gpu=false),1080Ti GPU需要约5分钟。
# -c 参数表示指定使用哪个配置文件
# -o 参数表示指定配置文件中的全局变量(覆盖配置文件中的设置),这里设置使用gpu,
# --eval 参数表示边训练边评估,会自动保存一个评估结果最的名为best_model.pdmodel的模型
python tools/train.py -c configs/yolov3_mobilenet_v1_roadsign.yml --eval
#训练时,记录数据
python tools/train.py -c configs/yolov3_mobilenet_v1_roadsign.yml \
--use_vdl=true \
--vdl_log_dir=vdl_dir/scalar \
--eval
#通过 visualdl 命令实时查看变化曲线:https://github.com/PaddlePaddle/VisualDL/blob/develop/README_CN.md
visualdl --logdir vdl_dir/scalar/ 【--host 127.0.0.1 --port 8080 可不用使用,是默认的】
tensorboard --logdir vdl_dir/scalar
# 评估 默认使用训练过程中保存的best_model
# -c 参数表示指定使用哪个配置文件
# -o 参数表示指定配置文件中的全局变量(覆盖配置文件中的设置),需使用单卡评估
CUDA_VISIBLE_DEVICES=0 python tools/eval.py -c configs/yolov3_mobilenet_v1_roadsign.yml -o use_gpu=true
# -c 参数表示指定使用哪个配置文件
# -o 参数表示指定配置文件中的全局变量(覆盖配置文件中的设置)
# --infer_img 参数指定预测图像路径
# 预测结束后会在output文件夹中生成一张画有预测结果的同名图像
python tools/infer.py -c configs/yolov3_mobilenet_v1_roadsign.yml -o use_gpu=true --infer_img=demo/road554.png
# 训练后再评估
# 训练时,不评估,且记录loss
export CUDA_VISIBLE_DEVICES=0
python tools/train.py -c configs/faster_rcnn_r50_1x.yml use_gpu=true
注意
config中epoch还是iteration?
paddlepaddle version<1.4之前使用静态图,使用参数最大轮数max_iter = epoch/batch size
paddlepaddle version>=1.4 动态图,使用参数epoch
版权声明:本文为CSDN博主「puspos」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/puspos/article/details/121122458
暂无评论