前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >深度学习实战篇之 ( 十八) -- Pytorch之SeNet

深度学习实战篇之 ( 十八) -- Pytorch之SeNet

作者头像
用户5410712
发布2022-06-01 20:18:26
5180
发布2022-06-01 20:18:26
举报
文章被收录于专栏:居士说AI居士说AI

科普知识

注意力机制(Attention Mechanism)源于对人类视觉的研究。在认知科学中,由于信息处理的瓶颈,人类会选择性地关注所有信息的一部分,同时忽略其他可见的信息。上述机制通常被称为注意力机制。人类视网膜不同的部位具有不同程度的信息处理能力,即敏锐度(Acuity),只有视网膜中央凹部位具有最强的敏锐度。为了合理利用有限的视觉信息处理资源,人类需要选择视觉区域中的特定部分,然后集中关注它。例如,人们在阅读时,通常只有少量要被读取的词会被关注和处理。综上,注意力机制主要有两个方面:决定需要关注输入的哪部分;分配有限的信息处理资源给重要的部分。

前言

上期理论篇文章我们学习了SeNet网络,其核心思想在于对输入的特征在通道维度上进行自适应增强(权重适配),同时由于其架构简单可以独立于任何架构之外,因此可以很容易的嵌入到大多数卷积神经网络实现特征增强的目的。

数据集介绍

1

本次实验数据集我们依旧采用之前的RAFDB人脸表情数据集(7类:愉快,悲伤,厌恶,平和,惊讶,恐惧,愤怒),数据集分布及其样本展示如下:

网络架构

2

SeNet架构较为简单,我们主要看与ResNet网络融合的案例,从层级上来分析,分别是:全局平均池化-->全连接层-->Relu激活函数-->全连接层-->Sigmoid压缩范围到0-1之间。

维度分析:输入维度:[B,C,H,W]

1.全局平均池化层:输入:[B,C,H,W],输出:[B,C]。备注:全局平均池化层的作用在于将特征图[H,w]转变成-->[1,1]的维度。

2.全连接层:输入:[B,C],输出:[B,C/r]

3.ReLU层: 输入:[B,C/r],输出:[B,C/r]

4.全连接层:输入:[B,C/r],输出:[B,C]

5.Sigmoid: 输入:[B,C],输出:[B,C]

代码实践

3

本次代码采用Pytorch框架(version 1.7),基础骨干网络采用ResNet18架构,我们对该网络中的四个残差块分别设计SeNet模块。由于之前对TensorFlow框架已经学习过一点时间,转换到另一框架对大家来说应该不是什么难题,本着一法通万法的原则,之后的实战篇文章我们都采用Pytorch实现,而且不再对其基础网络设计方法,数据集处理方法等进行分享学习了,直接上代码,让大家体验快感。

1.ResNet18四层残差块:

2. SeNet块设计:

3. 嵌入到四个残差块中:

训练情况

4

这里截取训练过程中的一些结果展示,本次训练显卡为:1080Ti(显存11G)相对较小,批数量bachsize为8。

代码托管至码云:https://gitee.com/fengyuxiexie/pytorch_-se-net

The End

本期分享就到这里啦,实战篇我们重在分享代码实现细节,大家如果在学习过程中有疑问或者建议,可随时后台私聊小编哦。

编辑:玥怡居士 | 审核:小圈圈居士

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-04-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 IT进阶之旅 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
代码托管
CODING 代码托管(CODING Code Repositories,CODING-CR)是为开发者打造的云端便捷代码管理工具,旨在为更多的开发者带去便捷、高效的开发体验,全面支持 Git/SVN 代码托管,包括代码评审、分支管理、超大仓库等功能。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档