笔记 | 百度飞浆AI达人创造营:深度学习模型训练和关键参数调优详解
针对特定场景任务从模型选择、模型训练、超参优化、效果展示这四个方面进行模型开发。
一、模型选择
从任务类型出发,选择最合适的模型。
1.回归任务
从使用Numpy推导,到使用深度学习框架,一步步走进最简单的回归任务:当人工智能邂逅蓝桥杯算法题,会擦出怎样的火花/p>
人脸关键点检测
完整代码详见基于空间注意力SAM的GoogLeNet实现人脸关键点检测并自动添加表情贴纸
- 1-17:人脸的下轮廓
- 18-27:眉毛
- 28-36: 鼻子
- 37-48:眼睛
- 49-68:嘴巴
人脸关键点检测任务中,输出为 人脸关键点的数量x2,即每个人脸关键点的横坐标与纵坐标。在模型组 时,主要使用2个模块,分别是Inception模块和空间注意力模块。增加空间注意力模块是为了提高模型效果。
- Inception模块
GoogLeNet是由Inception模块进行组成的,GoogLeNet采用了模块化的结构,因此修改 络结构时非常简单方便。
- 空间注意力模块
空间注意力聚焦在“哪里”是最具信息量的部分。计算空间注意力的方法是沿着通道轴应用平均池化和最大池操作,然后将它们连接起来生成一个有效的特征描述符。
2.分类任务
CIFAR-10数据集也是分类任务中一个非常经典的数据集,在科研中,常常使用CIFAR数据集评估算法的性能。
图像分类
基于CIFAR-10数据集实现图像10分类。项目完整代码详见:从论文到代码深入解析带有门控单元的gMLP算法
gMLP中,最核心的部分就是空间选通单元(Spatial Gating Unit,SGU),它的结构如下图所示:
查看 络结构:
gMLP是由一个个gMLP block构成的,上面我们已经把gMLP block中最重要的空间选通单元(Spatial Gating Unit,SGU)实现了,接下来我们只需要拿来用即可,代码如下:
import paddleimport paddle.nn as nnclass gMLPBlock(nn.Layer): def __init__(self, dim, dim_ff, seq_len, act = None):super(gMLPBlock, self).__init__()self.proj_in = nn.Sequential( nn.Linear(dim, dim_ff), nn.GELU())self.sgu = SpatialGatingUnit(dim_ff, seq_len, act)self.proj_out = nn.Linear(dim_ff // 2, dim) def forward(self, x):x = self.proj_in声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!