深度学习模型训练和关键参数调优详解
一、模型选择
从任务类型出发,选择最合适的模型。
回归任务(人脸关键点检测)
在模型组网时,主要使用2个模块,分别是Inception模块和空间注意力模块。 Inception模块:增加网络深度和宽度的同时减少参数。 空间注意力模块:聚焦于局部信息的机制(最具信息量的部分),比如,图像中的某一个图像区域。随着任务的变化,注意力区域往往会发生变化。
分类任务(图像分类)
常常使用CIFAR数据集评估算法的性能。
场景任务
这里说的场景任务是针对某一个特定的场景开发的深度学习任务,相比于回归和分类任务来说,场景任务的难度更高。这里说的场景任务包括但不限于目标检测、图像分割、文本生成、语音合成、强化学习等。
目标检测:基于PaddleX的YOLOv3模型快速实现昆虫检测; 人像分割:基于PaddleX核心分割模型 Deeplabv3+Xcetion65 & HRNet_w18_small_v1 实现人像分割,PaddleX提供了人像分割的预训练模型; 文字识别:基于chinese_ocr_db_crnn_mobile实现文字识别,识别图片当中的汉字。
二、模型训练
- 基于高层API训练模型
通过Model.prepare接口来对训练进行提前的配置准备工作,包括设置模型优化器,Loss计算方法,精度计算方法等。 - 使用PaddleX训练模型
- 模型训练通用配置基本原则
(1)每个输入数据的维度要保持一致,且一定要和模型输入保持一致。 (2)配置学习率衰减策略时,训练的上限轮数一定要计算正确。 (3)BatchSize不宜过大,太大容易内存溢出,且一般为2次幂。
三、超参优化
一般来说,超参数有:学习率,迭代次数,网络的层数,每层神经元的个数等等,常见的超参数有以下三类:网络结构(神经元数量),优化参数(优化器,学习率,衰减策略),正则化系数。 手动调整超参数的四大方法 1)使用提前停止来确定训练的迭代次数 2)让学习率从高逐渐降低 3)宽泛策略 4)小批量数据(mini-batch)大小不必最优
四、效果展示
1.可视化输入与输出 2.巧用VisualDL 3.权重可视化
原文链接:百度飞浆第三课
|