码字不易,欢迎给个赞! 从2020年,transformer开始在CV领域大放异彩:图像分类(ViT, DeiT),目标检测(DETR,Deformable DETR),语义分割(SETR,MedT),图像生成(GANsformer)等。而从深度学习暴发以来,CNN一直是CV领域的主流模型,而且取得了很好的效果,相比之下transformer却独霸NLP领域,transformer在CV领域
码字不易,勿忘点赞! 2021年见证了vision transformer的大爆发,随着谷歌提出ViT之后,一大批的vision transformer的工作席卷计算机视觉任务。除了vision transformer,另外一个对计算机视觉影响比较大的工作就是Open AI在2021年1月份发布的DALL-E和CLIP,这两个都属于结合图像和文本的多模态模型,其中DALL-E是基于文本来生成
码字不易,别忘点赞! 最近Meta大佬团队(FixRes,DeiT,ResMLP等作者团队)在论文Three things everyone should know about Vision Transformers提出了关于ViT的三点改进建议,它们分别涉及到如何加速ViT,如何对ViT进行finetune,以及如何改进ViT的patch预处理层来提升基于MIM(图像掩码)的无监督训练。这
新技能get,欢迎点赞! 近期PyTorch发布了新的版本1.11,和这次新版本同时的发布还有两个新的torch库:TorchData和functorch,其中TorchData对标TensorFlow的tf.data,而functorch对标谷歌的JAX。TorchData提供了一种新的数据构建方式:DataPipes,以替代PyTorch现有的torch.utils.data.Datas
自从ViT提出之后,在过去的一年里(2021年),基于transformer的模型在计算机视觉各个领域全面超越CNN模型。然而,这很大程度上都归功于Local Vision Transformer模型,Swin Transformer是其中重要代表。原生的ViT模型其计算量与图像大小的平方成正比,而Local Vision Transformer模型由于采用local attention(eg.
码字不易,欢迎点赞! 前段时间,一篇匿名论文Patches Are All You Need? 火了,这篇文章提出用基于卷积的block来替换ViT中的transformer block,这样就变成了基于patch的卷积网络ConvMixer,它和ViT模型一样都属于同质架构(isotropic architecture):模型主体是由相同的blocks重复串联而成。一旦block固定,基于
近日,PyTorch1.10版本发布,这个版本在分布式训练方面正式发布了ZeroRedundancyOptimizer,对标微软在DeepSpeed中发布的ZeRO,它可以wrap其它任意普通优化器如SGD和Adam等,主要是实现optimizer state在DDP训练过程中切分,从而减少每个节点(进程或者设备)的显存使用。此外,这个版本也发布了Join,这个是一个上下文管理器,用来处理分布式训
近期,Facebook发布了FSDP(Fully Sharded Data Parallel),这个是对标微软在DeepSpeed中提出的ZeRO,FSDP可以看成PyTorch中的DDP优化版本,本身也是数据并行,但是和DDP不同的是,FSDP采用了parameter sharding,所谓的parameter sharding就是将模型参数也切分到各个GPUs上,而DDP每个GPU都要保存一份
码字不易,求赞! Vision Transformer历史文章: 小小将:SOTA模型Swin Transformer是如何炼成的 小小将:CPVT:一个卷积就可以隐式编码位置信息 小小将:PVT:可用于密集任务backbone的金字塔视觉transformer 小小将:"未来"的经典之作ViT:transformer is all you need! 近期,随着PVT和Swi
码字不易,欢迎点赞! BatchNorm作为一种特征归一化方法基本是CNN网络的标配。BatchNorm可以加快模型收敛速度,防止过拟合,对学习速率更鲁棒,但是BatchNorm由于在batch上进行操作,如果使用不当可能会带来副作用。近期Facebook AI的论文Rethinking "Batch" in BatchNorm系统且全面地对BatchNorm可能会带来的问题做了总结,同时也
自动编码器(Autoencoder,AE) 变分自动编码器(Variational Autoencoder,VAE) CVAE VAE的代码实现 总结 参考 2022年第一篇文章,码字不易,求star! “What I cannot create, I do
记得点赞,欢迎start基于detectron2的SwinT实现:xiaohu2015/SwinT_detectron2 最近,微软亚研院提出的Swin Transformer在目标检测和分割任务上取得了新的SOTA:在COCO test-dev 达到58.7 box AP和51.1 mask AP,在ADE20K val上达到53.5 mIoU。Swin Transformer的成功恰恰说明了
近日,FAIR的最新论文Masked Autoencoders Are Scalable Vision Learners(何恺明一作)提出了一种更简单有效的用于ViT无监督训练的方法MAE,并在ImageNet-1K数据集上的top-1 acc达到新的SOTA:87.8%(无额外训练数据)。自从ViT火了之后,一些研究者就开始尝试研究ViT的无监督学习,比如Mocov3用对比学习的方法无监督训练V
FixRes是Facebook在19年提出的一个应用于图像分类的简单优化策略,论文名是Fixing the train-test resolution discrepancy,在这篇论文中作者发现了在ImageNet数据集上的分类模型中常采用的数据增强会导致训练和测试时的物体分辨率(resolution)不一致,继而提出FixRes策略来改善这个问题:常规训练后再采用更大的分辨率对模型的class
码字不易,欢迎给个赞! 基于CPVT的PVT在目标检测上表现还是不错的: https://github.com/xiaohu2015/pvt_detectron2github.com/xiaohu2015/pvt_detectron2 对于transformer来说,由于self-attention操作是permutation-invariant的,所以需要一个 positional
一个模型的性能除了和网络结构本身有关,还非常依赖具体的训练策略,比如优化器,数据增强以及正则化策略等(当然也很训练数据强相关,训练数据量往往决定模型性能的上线)。近年来,图像分类模型在ImageNet数据集的top1 acc已经由原来的56.5(AlexNet,2012)提升至90.88(CoAtNet,2021,用了额外的数据集JFT-3B),这进步除了主要归功于模型,算力和数据的提升,也与训练
欢迎点赞detectron2实现的fcos:GitHub - xiaohu2015/ddetection 相比two-stage方法,one-stage的目标检测算法更受追捧。one-stage的模型目前可以分为两大类:anchor-based和anchor-free方法。基于anchor-based的检测模型包括SSD,YOLOv3,RetinaNet等,这些模型需要在每个位置预先定义一系
对于实例分割来说,主流的做法还是基于先检测后分割的流程,比如最流行的Mask RCNN模型就是构建在Faster RCNN基础上。目前基于one-stage的物体检测模型已经在速度和性能上超越two-stage模型,同样地,大家也希望能找到one-stage的实例分割模型来替换Mask RCNN。目前这方面的工作主要集中在三个方向: Mask encoding:对2D mask编码为1D
无论是CV还是NLP领域,学习一个好的特征或者表达至关重要。对于NLP, 通过无监督方法学习特征已经取得好大的成功,但是在CV领域,目前主流的方案还是采用ImageNet上的有监督pretrain模型。这是因为NLP任务的输入如words属于一个离散空间,而CV任务的输入图片属于一个高维连续空间。不过,目前的一些CV领域的无监督学习方法也取得了一些较大的进展,这里介绍的MoCo就是一种比较流行
知识蒸馏是将一个已经训练好的网络迁移到另外一个新网络,常采用teacher-student学习策略,已经被广泛应用在模型压缩和迁移学习中。这里要介绍的MEAL V2是通过知识蒸馏提升ResNet50在ImageNet上的分类准确度,MEAL V2不需要修改网络结构,也不需要其他特殊的训练策略和数据增强就可以使原始ResNet50的Top-1准确度提升至80%+,这是一个非常nice的work。
码字不易,欢迎点赞! 基于图像掩码(MIM,Masked image modeling)的自监督方法让ViT实现了更好的微调性能,比如基于MAE预训练的ViT-B可以在ImageNet-1K数据集达到83.6%准确度,这要超过之前基于对比学习的模型,如基于DINO的ViT-B只能达到82.8%。近日微软AI(SwinTransformer原团队)在论文Contrastive Learning
码字不易,欢迎给个赞! 自从ViT之后,关于vision transformer的研究呈井喷式爆发,从思路上分主要沿着两大个方向,一是提升ViT在图像分类的效果;二就是将ViT应用在其它图像任务中,比如分割和检测任务上,这里介绍的PVT(Pyramid Vision Transformer) 就属于后者。PVT相比ViT引入了和CNN类似的金字塔结构,使得PVT像CNN那样作为backbon
PyTorch1.9版本正式发布了torch.fx预览版,而在1.10版本发布了稳定版本,torch.fx这个工具包的主要功能是实现对nn.Module实例的变换,或者说用来操作模型。听起来这个功能有点怪,但是如果你深入了解的话,你会发现其实它的用处还不少。这里先简单介绍一下torch.fx核心概念,然后介绍它的几个具体应用实例。 torch.fx主要有3个组件:符号追踪器(symbolic
物体检测和分割应该算是计算机视觉中常用的而且也比较酷的任务。但相比图像分类,物体检测和分割任务难度更大,另外一点是就是代码实现也更复杂。对于物体检测和分割,目前有以下几个通用的开源项目: Detectron:FAIR出品,基于caffe2; maskrcnn-benchmark:FAIR出品,基于PyTorch,可以看成Detectron的PyTorch升级版; MMDetection:
近期,timm库作者在ResNet strikes back: An improved training procedure in timm中提出了ResNet模型的训练优化策略,基于优化的训练策略,ResNet50在ImageNet数据集上top-1 accuracy达到80.4,大幅度超过之前的baseline:76.1(+4.3)。无独有偶,torchvision团队也在近日发布了他们在优化
目前基于深度学习的目标检测模型无不依赖CNN分类网络来作为特征提取器,如SSD采用VGG,YOLO采用DarkNet,Faster R-CNN采用ResNet,我们一般称这些网络为目标检测模型的backbone。ResNet是目标检测模型最常用的backbone,DenseNet其实比ResNet提取特征能力更强,而且其参数更少,计算量(FLOPs)也更少,用于目标检测虽然效果好,但是速度较慢,这
神经网络训练加速的最简单方法是使用GPU,对弈神经网络中常规操作(矩阵乘法和加法)GPU运算速度要倍超于CPU。随着模型或数据集越来越大,一个GPU很快就会变得不足。例如,BERT和GPT-2等大型语言模型是在数百个GPU上训练的。对于多GPU训练,需要一种在不同GPU之间对模型和数据进行切分和调度的方法。 PyTorch是非常流行的深度学习框架,它在主流框架中对于灵活性和易用性的平衡最好。Py
码字不易,欢迎给个赞! 欢迎交流与转载,文章会同步发布在公众号:机器学习算法工程师(Jeemy110) 训练目标检测模型的一个难点是样本不均衡,特别是正负样本比例严重失衡。目前解决这类问题主要是两种方案(见综述Imbalance Problems in Object Detection: A Review):一是hard sampling方法,从所有样本中选择一定量的正样本和负样本,只有被
码字不易,欢迎给个赞! 欢迎交流与转载,文章会同步发布在公众号:机器学习算法工程师(Jeemy110) TensorFlow虽是深度学习领域最广泛使用的框架,但是对比PyTorch这一动态图框架,采用静态图(Graph模式)的TensorFlow确实是难用。好在最近TensorFlow支持了eager模式,对标PyTorch的动态执行机制。更进一步地,Google在最近推出了全
本文翻译自One-shot object detection,原作者保留版权。 作为计算机视觉领域的一项重要任务,目标检测是要找到一张图片里的感兴趣物体: 这比图像分类任务更高级,因为分类只需要告诉图像中主要物体是什么,然而目标检测要找到多个物体,不仅要分类,而且要定位出它们在图像中的位置。目标检测模型不仅要预测出各个物体的边界框(bounding boxes),还要给出每个物体的分类概率
码字不易,欢迎给个赞! 欢迎交流与转载,文章会同步发布在公众号:机器学习算法工程师(Jeemy110) MobileNet网络是Google提出主要应用在移动端的轻量级CNN网络,之前的文章(CNN模型之MobileNet)已经对MobileNetv1版本进行了详细的介绍。目前,Google已经公开了MobileNetv2,它相比v1更高效。MobileNetv2依然使用v1中的depth
码字不易,欢迎给个赞! 欢迎交流与转载,文章会同步发布在公众号:机器学习算法工程师(Jeemy110) 说起CNN分类网络,无法避开的是Google提出的Inception网络。Inception网络开始于2014年的GoogLeNet,并经历了几次版本的迭代,一直到目前最新的Inception-v4,每个版本在性能上都有一定的提升。这里简单介绍Inception网络的迭代史,重点讲述各个
码字不易,欢迎给个赞! 欢迎交流与转载,文章会同步发布在公众号:机器学习算法工程师(Jeemy110) 近来,深度CNN网络如ResNet和DenseNet,已经极大地提高了图像分类的准确度。但是除了准确度外,计算复杂度也是CNN网络要考虑的重要指标,过复杂的网络可能速度很慢,一些特定场景如无人车领域需要低延迟。另外移动端设备也需要既准确又快的小模型。为了满足这些需求,一些轻量级的CNN网
码字不易,欢迎给个赞! 欢迎交流与转载,文章会同步发布在公众号:机器学习算法工程师(Jeemy110) 本文翻译自Avoiding headaches with tf.metrics,原作者保留版权。 1. 概述 本文将深入介绍Tensorflow内置的评估指标算子,以避免出现令人头疼的问题。 tf.metrics.accuracy() tf.metrics.precision
码字不易,欢迎给个赞! 欢迎交流与转载,文章会同步发布在公众号:机器学习算法工程师(Jeemy110) 2017年历史文章汇总|深度学习mp.weixin.qq.com/s/6whjnKgzrVTLoBq3Xd6zuw 本文翻译自 Measuring Object Detection models - mAP - What is Mean Average Precision?tar
DenseNet:比ResNet更优的CNN模型 前言 在计算机视觉领域,卷积神经网络(CNN)已经成为最主流的方法,比如最近的GoogLenet,VGG-19,Incepetion等模型。CNN史上的一个里程碑事件是ResNet模型的出现,ResNet可以训练出更深的CNN模型,从而实现更高的准确度。ResNet模型的核心是通过建立前面层与后面层之间的“短路连接”(shortcuts,s
深度学习中的正则化策略综述(附Python代码) 本文翻译自An Overview of Regularization Techniques in Deep Learning (with Python code),原作者保留版权。 引言 数据科学专家面临的最常见问题之一是如何避免过拟合。 你是否遇到过模型在训练数据上表现特别好,却无法预测测试数据的情形? 或者你在公共排行榜比赛中刚开
你知道如何计算CNN感受野吗?这里有一份详细指南 本文翻译自: A guide to receptive field arithmetic for Convolutional Neural Networksmedium.com/mlreview/a-guide-to-receptive-field-arithmetic-for-convolutional-neural-networks-
实例介绍TensorFlow的输入流水线 前言 在训练模型时,我们首先要处理的就是训练数据的加载与预处理的问题,这里称这个过程为输入流水线(input pipelines,或输入管道,参考)。在TensorFlow中,典型的输入流水线包含三个流程(ETL流程): 提取(Extract):从存储介质(如硬盘)中读取数据,可能是本地读取,也可能是远程读取(比如在分布式存储系统HDFS)
CUDA编程入门极简教程 前言 2006年,NVIDIA公司发布了CUDA,CUDA是建立在NVIDIA的CPUs上的一个通用并行计算平台和编程模型,基于CUDA编程可以利用GPUs的并行计算引擎来更加高效地解决比较复杂的计算难题。近年来,GPU最成功的一个应用就是深度学习领域,基于GPU的并行计算已经成为训练深度学习模型的标配。目前,最新的CUDA版本为CUDA 9。 GPU并不是一个独立运行
码字不易,欢迎给个赞! 欢迎交流与转载,文章会同步发布在公众号:机器学习算法全栈工程师(Jeemy110) 微信公众号链接: 重磅|基于深度学习的目标检测综述(一)mp.weixin.qq.com/s?__biz=MzUyMjE2MTE0Mw==&mid=2247485715&idx=2&sn=7f6fddcf6cc21332313ab72eafa92bf2&
前言 目标检测近年来已经取得了很重要的进展,主流的算法主要分为两个类型(参考RefineDet):(1)two-stage方法,如R-CNN系算法,其主要思路是先通过启发式方法(selective search)或者CNN网络(RPN)产生一系列稀疏的候选框,然后对这些候选框进行分类与回归,two-stage方法的优势是准确度高;(2)one-stage方法,如Yolo和SSD,其主要思路是均匀
前言 在前面的一篇文章中,我们详细介绍了YOLOv1的原理以及实现过程。这篇文章接着介绍YOLOv2的原理以及实现,YOLOv2的论文全名为YOLO9000: Better, Faster, Stronger,它斩获了CVPR 2017 Best Paper Honorable Mention。在这篇文章中,作者首先在YOLOv1的基础上提出了改进的YOLOv2,然后提出了一种检测与分类联合训练
前言 当我们谈起计算机视觉时,首先想到的就是图像分类,没错,图像分类是计算机视觉最基本的任务之一,但是在图像分类的基础上,还有更复杂和有意思的任务,如目标检测,物体定位,图像分割等,见图1所示。其中目标检测是一件比较实际的且具有挑战性的计算机视觉任务,其可以看成图像分类与定位的结合,给定一张图片,目标检测系统要能够识别出图片的目标并给出其位置,由于图片中目标数是不定的,且要给出目标的精确位置,目
CNN模型之ShuffleNet 引言 ShuffleNet是旷视科技最近提出的一种计算高效的CNN模型,其和MobileNet和SqueezeNet等一样主要是想应用在移动端。所以,ShuffleNet的设计目标也是如何利用有限的计算资源来达到最好的模型精度,这需要很好地在速度和精度之间做平衡。ShuffleNet的核心是采用了两种操作:pointwise group convolution和
欢迎交流与转载,文章会同步发布在公众号:机器学习算法全栈工程师(Jeemy110) 本文翻译自ResNet, AlexNet, VGG, Inception: Understanding various architectures of Convolutional Networks,原作者保留版权 卷积神经网络在视觉识别任务上的表现令人称奇。好的CNN网络是带有上百万参数和许多隐含
引言 深度残差网络(Deep residual network, ResNet)的提出是CNN图像史上的一件里程碑事件,让我们先看一下ResNet在ILSVRC和COCO 2015上的战绩: 图1 ResNet在ILSVRC和COCO 2015上的战绩 ResNet取得了5项第一,并又一次刷新了CNN模型在ImageNet上的历史: 图2 ImageNet分类Top
欢迎交流与转载,文章会同步发布在公众号:机器学习算法全栈工程师(Jeemy110) 引言 循环神经网络(Recurrent Neural Network, RNN)是神经网络家族的重要成员,而且也是深度学习领域中的得力干将,因为深度学习广泛应用的领域如语音识别,机器翻译等都有RNN的身影。与经典的神经网络不同,RNN主要解决的是样本数据为序列的建模问题,如语音序列,语言序列。因为对
欢迎交流与转载,文章会同步发布在公众号:机器学习算法全栈工程师(Jeemy110) 引言 自动编码器是一种无监督的神经网络模型,它可以学习到输入数据的隐含特征,这称为编码(coding),同时用学习到的新特征可以重构出原始输入数据,称之为解码(decoding)。从直观上来看,自动编码器可以用于特征降维,类似主成分分析PCA,但是其相比PCA其性能更强,这是由于神经网络模型可以提取
欢迎交流与转载,文章会同步发布在公众号:机器学习算法全栈工程师(Jeemy110) 引言 深度学习模型的训练本质上是一个优化问题,而常采用的优化算法是梯度下降法(GD)。对于GD算法,最重要的就是如何计算梯度。此时,估计跟多人会告诉你:采用BP(backpropagation)算法,这没有错,因为神经网络曾经的一大进展就是使用BP算法计算梯度提升训练速度。但是从BP的角度,很多人陷
欢迎交流与转载,文章会同步发布在公众号:机器学习算法全栈工程师(Jeemy110) 引言 实践深度学习肯定要至少学习并掌握一个深度学习框架。这里我们介绍一个最流行的深度学习框架:Tensorflow。Tensorflow是谷歌公司在2015年9月开源的一个深度学习框架。虽然我们称Tensorflow为一种深度学习框架,但是看看官网: 图1 Tensorflow官网界面 可以看到,从
欢迎交流与转载,文章会同步发布在公众号:机器学习算法全栈工程师(Jeemy110) 引言 SqueezeNet是Han等提出的一种轻量且高效的CNN模型,它参数比AlexNet少50x,但模型性能(accuracy)与AlexNet接近。在可接受的性能下,小模型相比大模型,具有很多优势:(1)更高效的分布式训练,小模型参数小,网络通信量减少;(2)便于模型更新,模型小,客户端程序容易更新;(3
概述 梯度下降算法(Gradient Descent Optimization)是神经网络模型训练最常用的优化算法。对于深度学习模型,基本都是采用梯度下降算法来进行优化训练的。梯度下降算法背后的原理:目标函数 关于参数 的梯度将是损失函数(loss function)上升最快的方向。而我们要最小化loss,只需要将参数沿着梯度相反的方向前进一个步长,就可以实现目标函数(loss functi
引言 卷积神经网络(CNN)已经普遍应用在计算机视觉领域,并且已经取得了不错的效果。图1为近几年来CNN在ImageNet竞赛的表现,可以看到为了追求分类准确度,模型深度越来越深,模型复杂度也越来越高,如深度残差网络(ResNet)其层数已经多达152层。 图1 CNN在ImageNet上的表现(来源:CVPR2017) 然而,在某些真实的应用场景如移动或者嵌入式设备,如此大而复杂的模型是难以
积分
粉丝
勋章
TA还没有专栏噢
第三方账号登入
看不清?点击更换
第三方账号登入
QQ 微博 微信