一、模型选择
回归任务:人脸关键点检测,又要速度,又要精度
场景任务:
- 昆虫检测,不会瞬时移动,但是数量要清楚,所以应该选择精度比较高的模型。
paddlex调用模型的api:paddlex.det.模型名称,具体可以看api文档
-
人像分割,比如会议室换背景,需要速度块,但是精度可以不用太高PaddleX
-
文字识别,PaddleHub,能用就直接用,PaddleX用于训练的多
二、模型训练
常用优化器adam,GSD,也有超参数可以进行优化,比如学习率
使用paddlex进行训练的方式
-
pdx.datasets.VOCDetection使用这个api进行数据处理,需要传数据集位置,训练列表和验证列表
-
pdx.det.使用这个API进行模型加载,模型的输出类别数一定要改其他可以用默认的
-
使用刚刚的api创建出来的model使用train方法即可开始训练了,可以设置的参数有epoch和学习率等,具体可以查看对应的api文档。
三、超参优化
一般来说,超参数有:学习率,迭代次数,网络的层数,每层神经元的个数等等。
可以分为三类:网络结构(神经元数量),优化参数(优化器,学习率,衰减策略),正则化系数
学习率的调整太大,可能会不收敛,太小可能会训练得很慢,一般是使用warm_up的学习率衰减策略(刚开始设计的时候需要较大的学习率,随着学习的深入就逐渐下降学习率,但是不能小于0)
四、可视化结果
可以直接使用matplotelib查看预测结果,e还可以使用VisualDL对模型的训练loss进行可视化,还有不同学习率的影响对比图,以及模型的网络结构图。