Bootstrap

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


模型训练

我们可以通过 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_1000None

注意:如果想要使用多卡训练的话,需要将环境变量 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/

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

;