『paddle』paddleseg 学习笔记:模型训练

  • Post author:
  • Post category:其他





模型训练

我们可以通过 PaddleSeg 提供的脚本对模型进行训练,请确保完成了 PaddleSeg 的安装工作,并且位于 PaddleSeg 目录下,执行以下脚本:

export CUDA_VISIBLE_DEVICES=0 	# 设置 1 张可用的卡
# set CUDA_VISIBLE_DEVICES=0	# windows下请执行此命令
python train.py \
       --config configs/quick_start/bisenet_optic_disc_512x512_1k.yml \
       --do_eval \
       --use_vdl \
       --save_interval 500 \
       --save_dir output



训练参数解释

参数名 用途 是否必选项 默认值
iters 训练迭代次数 配置文件中指定值
batch_size 单卡batch size 配置文件中指定值
learning_rate 初始学习率 配置文件中指定值
config 配置文件
save_dir 模型和visualdl日志文件的保存根路径 output
num_workers 用于异步读取数据的进程数量, 大于等于1时开启子进程读取数据 0
use_vdl 是否开启visualdl记录训练数据
save_interval_iters 模型保存的间隔步数 1000
do_eval 是否在保存模型时启动评估, 启动时将会根据mIoU保存最佳模型至best_model
log_iters 打印日志的间隔步数 10
resume_model 恢复训练模型路径,如:

output/iter_1000
None


注意

:如果想要使用多卡训练的话,需要将环境变量 CUDA_VISIBLE_DEVICES 指定为多卡(不指定时默认使用所有的gpu),并使用 paddle.distributed.launch 启动训练脚本(windows下由于不支持nccl,无法使用多卡训练):

export CUDA_VISIBLE_DEVICES=0,1,2,3 	# 设置 4 张可用的卡
python -m paddle.distributed.launch train.py \
       --config configs/quick_start/bisenet_optic_disc_512x512_1k.yml \
       --do_eval \
       --use_vdl \
       --save_interval 500 \
       --save_dir output


恢复训练:

python train.py \
       --config configs/quick_start/bisenet_optic_disc_512x512_1k.yml \
       --resume_model output/iter_500 \
       --do_eval \
       --use_vdl \
       --save_interval 500 \
       --save_dir output



训练可视化

PaddleSeg 会将训练过程中的数据写入 VisualDL 文件,并实时的查看训练过程中的日志,记录的数据包括:

  1. loss 变化趋势
  2. 学习率变化趋势
  3. 训练时间
  4. 数据读取时间
  5. mean IoU 变化趋势(当打开了

    do_eval

    开关后生效)
  6. mean pixel Accuracy 变化趋势(当打开了

    do_eval

    开关后生效)

使用如下命令启动 VisualDL 查看日志

# 下述命令会在127.0.0.1上启动一个服务,支持通过前端 web 页面查看,可以通过 --host 这个参数指定实际 ip 地址
visualdl --logdir output/

在浏览器输入提示的网址,效果如下:





版权声明:本文为libo1004原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。