0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

利用ImageNet训练了一个能降噪、超分和去雨的图像预训练模型

深度学习实战 来源:深度学习实战 作者:深度学习实战 2021-03-03 16:05 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

说到Transformer,大家可能会想到BERT[1]、GPT-3[2]等等,这些都是利用无监督训练的大型预训练模型。既然Transformer也能用在CV上,那么能不能做类似的事情呢?这篇论文利用ImageNet训练了一个能降噪、超分和去雨的图像预训练模型(IPT)。

Motivation

目前很多low-level的task其实都是有一定相关性的,就是在一个low-level task上预训练对另一个task是有帮助的,但是目前几乎没有人去做相关的工作。而且pre-training在某些数据稀缺的task上就很有必要,并且无论在CV还是NLP,使用pre-trained model是非常常见的事情。对于一些输入和输出都是image的low-level算法来说,目前的pre-trained model显然是不适合的。

准备数据集

因为Transformer需要大量的数据去拟合,所以必须使用一个大型的数据集。在这篇论文中,作者用的是imagenet。对于imagenet的每一张图片生成各种任务对应的图像对,例如对于超分(super-resolution)来说,模型的输入数据是imagenet经过下采样的数据,而标签是原图。

IPT

在上篇文章介绍过了,因为Transformer本身是用于NLP领域的,输入应该是一个序列,因此这篇的论文做法和ViT[3]一样,首先需要把feature map分块,每个patch则视为一个word。但是不同的是,因为IPT是同时训练多个task,因此模型定义了多个head和tail分别对应不同的task。

整个模型架构包含四个部分:用于提取特征的heads、Transformer Encoder、Transformer Decoder和把feature map还原成输出的tails。

Heads

不同的head对应于不同的task,由于IPT需要处理多个task,因此是一个multi-head的结构,每个head由3层卷积层组成。Heads要完成的任务可以描述为:fH = Hi(x),x是输入图像,f是第i个Head的输出。

Transformer encoder

在输入Transformer前,需要将Head输出的feature map分成一个个patch,同样还需要加入位置编码信息,与ViT不同,这里是直接相加就可以作为Transformer Encoder的输入了,不需要做linear projection。

ef62fdc4-778b-11eb-8b86-12bb97331649.png

fpi是feature map的一个patch,Epi∈ RP*P×C是fpi的learnable position encoding。LN是layer normalization,MSA是多头self-attention模块,FFN是feed forward network。

Transformer decoder

Transformer decoder的输入时encoder的输出和task embedding。这些task embedding是可训练的,不同的task embedding代表处理不同的task。decoder的计算可以表示如下:

efacf5dc-778b-11eb-8b86-12bb97331649.png

fEi是指encoder的输出,fDi是指decoder的输出。

Tails

Tails与Heads是相对应的,但是不同的tail的输出的大小可能不一样,例如超分,做超分时输出比输入的图像大,因此与其它的tail输出的大小可能不一样。

Loss

loss由两部分组成,分别是Lcontrastive和Lsupervised的加权和。

Lsupervised是指IPT的输出与label的L1 loss。

加入Lcontrastive是为了最小化Transformer decoder对于来自同一张图的不同patch的输出的距离,最大化对于不同图片的patch之间的输出的距离。

实验与结果

作者用了32块NVIDIA Tesla V100,以256的batch size训练了200个epoch。

Reference

[1]Jacob Devlin, Ming-Wei Chang, Kenton Lee, and KristinaToutanova. Bert: Pre-training of deep bidirectionaltransformers for language understanding. arXiv preprintarXiv:1810.04805, 2018.

[2]Tom B Brown, Benjamin Mann, Nick Ryder, Melanie Subbiah, Jared Kaplan, Prafulla Dhariwal, Arvind Neelakantan, Pranav Shyam, Girish Sastry, Amanda Askell, et al.Language models are few-shot learners. arXiv preprintarXiv:2005.14165, 2020.

[3]Dosovitskiy A, Beyer L, Kolesnikov A, et al. An image is worth 16x16 words: Transformers for image recognition at scale[J]. arXiv preprint arXiv:2010.11929, 2020.

责任编辑:lq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 模型
    +关注

    关注

    1

    文章

    3648

    浏览量

    51710
  • 数据集
    +关注

    关注

    4

    文章

    1230

    浏览量

    26044
  • nlp
    nlp
    +关注

    关注

    1

    文章

    491

    浏览量

    23188

原文标题:视觉新范式Transformer之IPT

文章出处:【微信号:gh_a204797f977b,微信公众号:深度学习实战】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    在Ubuntu20.04系统中训练神经网络模型些经验

    模型。 我们使用MNIST数据集,训练卷积神经网络(CNN)模型,用于手写数字识别。
    发表于 10-22 07:03

    基于大规模人类操作数据训练的VLA模型H-RDT

    近年来,机器人操作领域的VLA模型普遍基于跨本体机器人数据集训练,这类方法存在两大局限:不同机器人本体和动作空间的差异导致统训练困难;现
    的头像 发表于 08-21 09:56 776次阅读
    基于大规模人类操作数据<b class='flag-5'>预</b><b class='flag-5'>训练</b>的VLA<b class='flag-5'>模型</b>H-RDT

    海思SD3403边缘计算AI数据训练概述

    模型,将模型转化为嵌入式AI模型模型升级AI摄像机,进行AI识别应用。 AI训练模型是不断迭
    发表于 04-28 11:11

    请问如何在imx8mplus上部署和运行YOLOv5训练模型

    我正在从事 imx8mplus yocto 项目。我已经在自定义数据集上的 YOLOv5 上训练了对象检测模型。它在 ubuntu 电脑上运行良好。现在我想在我的 imx8mplus 板上运行该模型
    发表于 03-25 07:23

    用PaddleNLP为GPT-2模型制作FineWeb二进制训练数据集

    作者:算力魔方创始人/英特尔创新大使刘力 《用PaddleNLP在4060单卡上实践大模型训练技术》发布后收到读者热烈反响,很多读者要求进步讲解更多的技术细节。本文主要针对大语言
    的头像 发表于 03-21 18:24 3816次阅读
    用PaddleNLP为GPT-2<b class='flag-5'>模型</b>制作FineWeb二进制<b class='flag-5'>预</b><b class='flag-5'>训练</b>数据集

    利用RAKsmart服务器托管AI模型训练的优势

    AI模型训练需要强大的计算资源、高效的存储和稳定的网络支持,这对服务器的性能提出了较高要求。而RAKsmart服务器凭借其核心优势,成为托管AI模型训练的理想选择。下面,AI部落小编为
    的头像 发表于 03-18 10:08 521次阅读

    训练好的ai模型导入cubemx不成功怎么处理?

    训练好的ai模型导入cubemx不成功咋办,试了好几个模型压缩了也不行,ram占用过大,有无解决方案?
    发表于 03-11 07:18

    从Open Model Zoo下载的FastSeg大型公共训练模型,无法导入名称是怎么回事?

    从 Open Model Zoo 下载的 FastSeg 大型公共训练模型。 运行 converter.py 以将 FastSeg 大型模型转换为中间表示 (IR): pyth
    发表于 03-05 07:22

    用PaddleNLP在4060单卡上实践大模型训练技术

    作者:算力魔方创始人/英特尔创新大使刘力 之前我们分享了《从零开始训练大语言模型需要投资多少钱》,其中高昂的
    的头像 发表于 02-19 16:10 2128次阅读
    用PaddleNLP在4060单卡上实践大<b class='flag-5'>模型</b><b class='flag-5'>预</b><b class='flag-5'>训练</b>技术

    腾讯公布大语言模型训练新专利

    大语言模型训练过程中引入第摘要文本和第二摘要文本,为模型提供了更为丰富的学习信息。这两摘要文本在信息量上存在差异,且第
    的头像 发表于 02-10 09:37 713次阅读

    【「基于大模型的RAG应用开发与优化」阅读体验】+大模型微调技术解读

    集对模型进行进训练的过程。 大模型微调是利用训练
    发表于 01-14 16:51

    模型训练框架(五)之Accelerate

    Hugging Face 的 Accelerate1是用于简化和加速深度学习模型训练的库,它支持在多种硬件配置上进行分布式训练,包括 C
    的头像 发表于 01-14 14:24 1767次阅读

    KerasHub统、全面的训练模型

    深度学习领域正在迅速发展,在处理各种类型的任务中,训练模型变得越来越重要。Keras 以其用户友好型 API 和对易用性的重视而闻名,始终处于这动向的前沿。Keras 拥有专用的内
    的头像 发表于 12-20 10:32 771次阅读

    GPU是如何训练AI大模型

    在AI模型训练过程中,大量的计算工作集中在矩阵乘法、向量加法和激活函数等运算上。这些运算正是GPU所擅长的。接下来,AI部落小编带您了解GPU是如何训练AI大模型的。
    的头像 发表于 12-19 17:54 1322次阅读

    使用英特尔AI PC为YOLO模型训练加速

    之后,情况有了新的变化,PyTorch2.5正式开始支持英特尔显卡,也就是说,此后我们能够借助英特尔 锐炫 显卡来进行模型训练了
    的头像 发表于 12-09 16:14 2099次阅读
    使用英特尔AI PC为YOLO<b class='flag-5'>模型</b><b class='flag-5'>训练</b>加速