本文主要是介绍深度学习——日常小点积累,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
写在前面
本文记录了日常遇到的和深度学习相关的一切知识,极其琐碎、杂乱,仅供个人记录,借鉴意义约为0哈哈哈。
卷积拆分
描述:比如将一个3乘3的卷积换为一个3乘1的卷积+一个1乘3的卷积。
特点:减少参数量
在哪见到:
- inception v3
”学习Factorization into small convolutions的思想,将一个二维卷积拆分成两个较小卷积,例如将7*7卷积拆成1*7卷积和7*1卷积。这样做的好处是降低参数量。paper中指出,通过这种非对称的卷积拆分,比对称的拆分为几个相同的卷积效果更好,可以处理更多,更丰富的空间特征。“
- P3D(Pseudo-3D Residual Networks)
这个是视频处理模型,“这篇文章是用1*3*3卷积和3*1*1卷积代替3*3*3卷积(前者用来获取spatial维度的特征,实际上和2D的卷积没什么差别;后者用来获取temporal维度的特征,因为倒数第三维是帧的数量),毕竟这样做可以大大减少计算量,增加模型深度。而如果采用3D卷积来做的话,速度和存储正是瓶颈 ”
联想用途:
- 视频
- 3D图像处理
动态batch
描述:训练
特点:
关联:
1. 论文AdaBatch: Adaptive Batch Sizes for Training Deep Neural Networks
链接:https://openreview.net/pdf?id=SkytjjU8G
模型量化
参考博客
- https://chenrudan.github.io/blog/2018/10/02/networkquantization.html
- https://zhuanlan.zhihu.com/p/64744154shufflenet
推理框架和训练框架
训练框架:tensorflow、pytorch、keras、caffe、mxnet等
推理框架:阿里的mnn(移动端部署),腾讯的ncnn(移动端部署场景),NVIDIA的TensorRT(NIVDIA的GPU),Intel的OpenVINO(Intel CPU)等等
动态图和静态图
动态图框架:pytorch
静态图框架:TensorFlow、caffe
在cs231n的课件中有介绍动态、静态图的区别
几种常见类型的卷积
转置卷积:可用于上菜样;可改变填充和步长得到不同输出尺寸
扩张卷积:扩张率;增大感受野
可分离卷积(空间、深度可分离):空间可分——3×3分成3×1和1×3;深度可分——3×3分成DW3×3和1×1
分组卷积:输入通道和卷积核都在分;训练很大的网络时效果较好
参考博客:
- https://zhuanlan.zhihu.com/p/57575810
BottleNeck结构
参考资料:
- https://zhuanlan.zhihu.com/p/98874284
- https://zhuanlan.zhihu.com/p/98692254
FLOPs、FLOPS、Multi-add
FLOPS:全大写,是floating point operations per second的缩写,意指每秒浮点运算次数,理解为计算速度。是一个衡量硬件性能的指标。
FLOPs:最后一个s小写,是floating point operations的缩写(s表复数),意指浮点运算数,理解为计算量。可以用来衡量算法/模型的复杂度。
Multi-add:乘法和加法操作
模型大小和参数量的关系
模型大小的单位通常是M(MByte,Byte是一个字节,8个比特位),参数量通常用float32表示。
因此模型大小字节数=参数量×4
这篇关于深度学习——日常小点积累的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!