深度学习、图像算法学习记录

深度学习加速

综述文档:
winograd
ncnn框架

1.修改模型结构,优化模型内存访问次数,加速。
VGG 和 InceptionNet : 将5x5卷积替换成两个3x3卷积,既提升了网络深度,又减少了参数量.
MobileNet :深度可分离卷积,最后用1x1卷积组合,直接大量缩减模型参数量。
DenseNet 和 GhostNet :Reuse Feature Map,复用之前层的featureMap。

2.分布式训练
torch.nn.parallel.DistributedDataParallel: 在多个GPU复制一份模型副本,单独计算batch,计算完后,平均梯度值再广播到所有GPU,更新。

3.矩阵乘法(卷积转为矩阵乘法)

  • 多线程
  • 算法改进(Fast Fourier Transform、Strassen、Winograd)

4.知识蒸馏
自蒸馏:Be Your Own Teacher: Improve thePerformance of Convolutional Neural Networks viaSelf Distillation
想解决的问题:教师学生模型,在训练教师模型时需要挑选模型,不断验证的时间很长,且学生模型大多数无法超过教师模型。

提升性能的技巧

1.图像降噪,数据增广加随机噪声;
2.注意力机制:

  • Squeeze-and-Excitation(SE),通过全局池化压缩输入到1x1xC,然后通过1x1卷积压缩到C/16通道,再解压回到C通道,最后用sigmoid获得每个通道的权重,表示每个通道的重要程度;
  • Convolutional Block Attention Module(CBAM),空间注意力+通道注意力。通道注意力类似SE;空间注意力则是通过融合输入的C通道,得到1通道的图,再用sigmoid得到每个像素位置的权重,表示每个位置的重要程度;
  • Efficient Channel Attention(ECA),通道注意力机制,相比SE,更高效。

经典论文:

attention is all you need
resnet
mobilenet系列
pix2pix
ALIKED

论文解读

ALIKED
1.结构?
4个block,通过1x1卷积+上采样组合所有block的特征,然后通过一个SMH (Score Map Head )得到Score Map,再通过DKD模块(NMS)得到特征点位置(64x64x128),同时得到对应点的描述子。

2.卷积无法保证提取到的点是仿射不变的?aliked中怎么解决该问题的?
答:因为卷积带有特定模式,比如检测横线的卷积,在特征图做仿射变换后变成非横线,卷积就检测不到了。

ATTENTION IS ALL YOU NEED
1.QKV结构,QKV是通过输入做Linear得到,Linear的权重为可学习参数;
2.通过QK点乘,得到对应的V的重要程度权重,再用权重与V乘,得到每个v加权后的注意力值;
3.QK点乘实际是计算的余弦相似度。

工具:

神经网络可视化工具(每一层输出的可视化,用以指导每层网络的设计是否合理):https://blog.51cto.com/u_16099181/8552104

Winograd

卷积运算转为矩阵乘法后,存在很多重复值,等效稀疏矩阵,比普通矩阵实际少很多计算量。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Bryce-Lin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值