0. 引子 在训练轻量化模型时,经常发生的情况就是,明明 GPU 很闲,可速度就是上不去,用了多张卡并行也没有太大改善. 如果什么优化都不做,仅仅是使用nn.DataParallel这个模块,那么实测大概只能实现一点几倍的加速(按每秒处理的总图片数计算),不管用多少张卡.因为卡越多,数据传输的开销就越大,副作用就越大. 为了提高GPU服务器的资源利用率,尝试了一些加速的手段. 基于Pytorch1.6.0版本实现,官方支持amp功能,不再需要外部apex库: 此外比较重要的库是Dali. 梳理了…
自 2012 年 AlexNet 以来,卷积神经网络在图像分类.目标检测.语义分割等领域获得广泛应用.随着性能要求越来越高,AlexNet 已经无法满足大家的需求,于是乎各路大牛纷纷提出性能更优越的 CNN 网络,如 VGG.GoogLeNet.ResNet.DenseNet 等.由于神经网络的性质,为了获得更好的性能,网络层数不断增加,从 7 层 AlexNet 到 16 层 VGG,再从 16 层 VGG 到 GoogLeNet 的 22 层,再到 152 层 ResNet,更有上千层的 R…
​  前言  由于内存和计算资源有限,在嵌入式设备上部署卷积神经网络 (CNN) 很困难.特征图中的冗余是那些成功的 CNN 的一个重要特征,但在神经架构设计中很少被研究. 论文提出了一种新颖的 Ghost 模块,可以从廉价操作中生成更多的特征图.提出的 Ghost 模块可以作为即插即用的组件来升级现有的卷积神经网络.堆叠Ghost Module建立了轻量级的 GhostNet. GhostNet 可以实现比 MobileNetV3 更高的识别性能(例如 75.7% 的 top-1 准确率),并…
自 2012 年 AlexNet 以来,卷积神经网络在图像分类.目标检测.语义分割等领域获得广泛应用.随着性能要求越来越高,AlexNet 已经无法满足大家的需求,于是乎各路大牛纷纷提出性能更优越的 CNN 网络,如 VGG.GoogLeNet.ResNet.DenseNet 等.由于神经网络的性质,为了获得更好的性能,网络层数不断增加,从 7 层 AlexNet 到 16 层 VGG,再从 16 层 VGG 到 GoogLeNet 的 22 层,再到 152 层 ResNet,更有上千层的 R…
MobileNet v2 论文链接:https://arxiv.org/abs/1801.04381 MobileNet v2是对MobileNet v1的改进,也是一个轻量化模型. 关于MobileNet v1的介绍,请看这篇:对MobileNet网络结构的解读 MobileNet v1遗留下的问题 1)结构问题 MobileNet v1的结构非常简单,是一个直筒结构,这种结构的性价比其实不高,后续一系列的ResNet,DenseNet等结构已经证明通过复用图像特征,使用Concat/Eltw…
CNN结构演变总结(一)经典模型 导言: 上一篇介绍了经典模型中的结构演变,介绍了设计原理,作用,效果等.在本文,将对轻量化模型进行总结分析. 轻量化模型主要围绕减少计算量,减少参数,降低实际运行时间,简化底层实现方式等这几个方面,提出了深度可分离卷积,分组卷积,可调超参数降低空间分辨率和减少通道数,新的激活函数等方法,并针对一些现有的结构的实际运行时间作了分析,提出了一些结构设计原则,并根据这些原则来设计重新设计原结构. 注:除了以上这种直接设计轻量的.小型的网络结构的方式外,还包括使用知识蒸…
伴随着互联网的发展,从桌面端走向Web端.移动端必然的趋势.互联网技术的兴起极大地改变了我们的娱乐.生活和生产方式.尤其是HTML5/WebGL技术的发展更是在各个行业内引起颠覆性的变化.随着WebGL标准被广泛接受,出现了许多基于HTML5的开源三维引擎,如threejs.scenejs等.尤其threejs使用非常广泛,一方面由于其使用门槛较低,另一方面是其支持若干种三维文件格式,如stl.obj.3ds.obj.dae.fbx等.对于中小规模的三维模型,使用threejs可以快速搭建一个基…
近年提出的四个轻量化模型进行学习和对比,四个模型分别是:SqueezeNet.MobileNet.ShuffleNet.Xception. SqueezeNet https://arxiv.org/pdf/1602.07360.pdf MobileNet https://arxiv.org/pdf/1704.04861.pdf Xception https://arxiv.org/pdf/1610.02357.pdf ShuffleNet https://arxiv.org/pdf/1707.0…
0 引言 Marvin是普林斯顿视觉实验室(PrincetonVision)于2015年提出的轻量化GPU加速的多维深度学习网络框架.该框架采用纯c/c++编写,除了cuda和cudnn以外,不依赖其他库,编译非常简单,功能也相当强大,用于深度神经网络的快速原型开发非常好用.缺点在于没有提供API,所有的代码集中在marvin.hpp一个文件中,读起来非常困难.好在提供了视频格式的PPT,对框架和代码进行解读.下面将基于官网视频/ppt对该框架进行介绍. 1 相关链接 不想看我翻译的同学可以直接…
模型训练的三要素:数据处理.损失函数.优化算法    数据处理(模块torch.utils.data) 从线性回归的的简洁实现-初始化模型参数(模块torch.nn.init)开始 from torch.nn import init # pytorch的init模块提供了多中参数初始化方法 init.normal_(net[0].weight, mean=0, std=0.01) #初始化net[0].weight的期望为0,标准差为0.01的正态分布tensor init.constant_(…