MulT: An End-to-End Multitask Learning Transformer 多任务共享注意力

【论文精读】| MulT —— Multimodal Transformer for Unaligned Multimodal Language Sequences 首篇跨模态Transformer 阅读详情

文章

       同时学习多个高级视觉任务,包括深度估计、语义分割、reshading表面法线估计、2D 关键点检测和边缘检测。

  • 与单个任务Transformer相比,跨任务联合培训的Transformer模型能否提高每个任务的性能?
  • 在基于Transformer的框架中,可以显式地对任务之间的依赖关系进行编码吗?
  • 多任务Transformer可以推广到相似领域吗?

       我们提出了一个端到端的多任务学习转换器框架MulT,用于同时学习多个高级视觉任务,包括深度估计、语义分割、重阴影、表面法线估计、二维关键点检测和边缘检测。基于Swin-transformer模型,我们的框架将输入图像编码为共享表示,并使用特定于任务的基于transformer的解码器头对每个视觉任务进行预测。我们方法的核心是一种共享注意机制,它对任务之间的依赖关系进行建模。我们在多个多任务基准上评估了我们的模型,结果表明我们的MulT框架UT既可以执行最先进的多任务卷积神经网络模型,也可以执行所有相应的单任务转换器模型。我们的实验进一步强调了在所有任务中共享注意力的好处,并证明了我们的MulT模型是健壮的,可以很好地推广到新的领域。

        MulT: An End-to-End Multitask Learning Transformer
       Code:https://github.com/IVRL/MulT

1. ☞ 简介

        在本文中研究了变压器在多任务学习中的使用。(虽然有一些作品研究了如何使用转换器来处理多个输入模式,如图像和文本,但它们通常专注于单个任务,例如视觉问答,但[20]除外,它处理多个语言任务,但只处理一个视觉任务。相比之下,我们的目标是连接涵盖2D、3D和语义域的多个视觉任务。)

       我们引入了MulT,它包括一个基于转换器的编码器,用于将输入图像转换为任务共享的潜在表示,然后具有任务特定头的转换器解码器,用于生成每个任务的最终预测。 贡献总结:
• 我们提出了一种端到端多任务转换器体系结构,它在一个模型中处理多个高级视觉任务。
• 我们在多个任务的transformer解码器之间引入了shared attention(共同关注☺)。这种共享注意力机制进一步提高了每个视觉任务的性能。
• 我们的框架使我们能够了解跨高级愿景任务的相互依赖性。
• 我们表明,与现有的多任务卷积模型相比,我们的模型在不同视觉任务上的平均误差更低,可以推广和适应新的领域【42,54】。

       我们对各种任务进行了详尽的实验和分析,结果表明,我们的MulT模型不仅改善了单任务体系结构的性能,而且在基准上(如Taskonomy[55]、Replica[43]、NYU[32]和CocoDoom[30])也优于最先进的基于CNN的多任务模型(如图1所示)

2. 模型 MulT: A Multitask Transformer

在这里插入图片描述

       对于基于transformer的编码器,我们使用一个名为Swin transformer的金字塔主干,将视觉特征嵌入到包含全局上下文信息的隐藏状态列表(a list of hidden states that incorporates global contextual information)中。然后,我们应用transformer解码器对编码图像中的标记化映射进行逐步解码和上采样。最后,将transformer解码器的表示传递给特定于任务的头部。例如一个简单的两层分类器(在分割的情况下),它输出最终的预测。鉴于MulT的简单性,它可以很容易地扩展到更多的任务。我们的经验表明,我们的模型可以联合学习6个不同的任务,并且可以很好地推广到新的领域。

网络的详细信息

3.1. Encoder Module

       编码器采用SWN-L,它以金字塔的方式将堆叠变压器应用于分辨率逐渐降低的特征,从而产生分层多尺度编码特征,如图2所示。
       特别是,按照ResNet[18]的结构和设计规则,依次定义了四个阶段:每个阶段都包含一个面片嵌入步骤,该步骤降低了空间分辨率并增加了通道尺寸,以及一个变压器块的柱状序列。
       第一阶段中的初始基本贴片嵌入使用大小为pH=pW=4和通道大小为C=192的方形贴片执行,无需添加“类”token;
       所有三个后续阶段中的面片合并采用前一阶段的输出标记,在2D表示中对其进行重塑,并通过按通道串联和线性变换将相邻标记聚集在大小为pH=pW=2的非重叠面片中,从而将产生的通道数减半(从而使通道数相对于输入标记加倍)。
       这种方法将分辨率减半,并在每个中间阶段将通道尺寸加倍,与典型的完全卷积主干的行为相匹配,并生成与大多数以前的视觉任务体系结构兼容的特征金字塔(输出大小为原始分辨率的1/4、1/8、1/16、1/32)。(后边有关swin-transformer窗口划分等设计略去。)

3.2. Decoder Module

(主要描述了跳跃连接的结构)
       受【57】中提出的两个基于CNN的解码器的启发,我们开发了相应的基于变压器的概念相似的版本。一般的想法是用加窗变压器块代替卷积层。具体而言,我们的解码器架构由四个阶段组成,每个阶段包含一个由2个转换器块组成的序列,总共8个。在每个阶段中,两个顺序转换器块允许我们通过交替的规则和移位窗口配置(如编码器中)来利用窗口间连接。在连续的阶段之间,我们使用上采样层将空间分辨率提高一倍,通道尺寸降低一半;因此,我们在第一、第二、第三和第四阶段将注意力头的数量分别调整为48、24、12、6。
       生成的特征映射的空间/通道形状与编码器级的输出相匹配,编码器级的输出通过跳过连接传递到相应的解码器级。这产生了一种沙漏结构,具有镜像编码器-解码器通信:解码器的较低分辨率级由较高级别的较深编码特征引导,解码器的较高分辨率级由较低级别的较浅编码特征引导,允许以从粗到细的方式逐渐恢复信息,并在更相关的地方利用不同的语义级别。注意,解码器的每一级中的第一变换块使用常规窗口分区,而第二变换块使用移位窗口分区;这可以很容易地扩展到使用更长的变压器块序列,只要长度是2的倍数,这就可以在两种配置之间交替。
       为了执行多任务预测,我们在所有任务中共享编码器,并使用具有相同体系结构但参数值不同的特定于任务的解码器。然后,我们只需将特定于任务的头附加到解码器。例如,一个为语义分割和深度预测联合训练的模型将有两个特定于任务的头部:一个预测K通道,然后是用于语义分割的softmax,另一个预测单个通道,然后是用于深度估计的sigmoid。

❊ 3.3. Shared Attention

       计算任务t的自注意的标准方法是仅从它自己的解码器输出xt中获取键、查询和值向量。本文的计算方法如图3所示:

在这里插入图片描述

在这里插入图片描述

项目含义注释
x t x^t xt某次解码器的上采样输出解码器输入
x s a x_{sa} xsa​以相同分辨率运行的编码器的输出解码器输入
q s a r q^r_{sa} qsar​querylinear( x s a x_{sa} xsa​)
k s a r k^r_{sa} ksar​keylinear( x s a x_{sa} xsa​)
x r x^r xr一个特定参考任务r的解码器输出
C r C^r Cr通道个数
B r B^r Brbias
v t v_t vt​对于任务t的value
x ^ t = A s a r v t \hat x^t = A^r_{sa}v^t x^t=Asar​vt

       得到q,k,v只后进行多头注意力计算:

在这里插入图片描述

项目含义注释
h e a d i t ( x ^ i t , W i t ) = x ^ i t ⋅ W i t head^t_i(\hat x^t_i, W^t_i) =\hat x_i^t\cdot W_i^t headit​(x^it​,Wit​)=x^it​⋅Wit​
$ W_i^t$对于任务t的可学权重
x ^ i t \hat x_i^t x^it​ x ^ t \hat x^t x^t的第i个通道
W表示多头注意力权重计算 M H A t MHA^t MHAt公式中的W

       从经验来看,参考任务选择为surface normal task 。

       请注意,我们的共同关注不同于之前的工作【8】中引入的共同关注,其中值和键通过编码器层的跳过连接传递。图4显示了在任务中添加共享注意机制的效果,其中,与不使用共享注意的MulT模型相比,使用共享注意机制的MulT改进了所有任务的结果。

LOSS

来自transformer解码器模块的特征映射被输入到不同的任务头,以进行后续预测。每个类头包括一个线性层以输出一个H×W×1贴图,其中H,W是输入图像的尺寸。我们采用基于加权和(11)的任务特定损失来联合训练网络,其中损失在每个任务的地面真实值和最终预测之间计算。特别是,我们分别使用交叉熵进行分割,旋转损失用于深度,L1损失用于曲面法线、2D关键点、2D边和重着色。请注意,我们使用这些损失来保持与基线的一致性【42、54、55】。

       

参考与更多

更多
Swin-Unet
End-to-End Multi-Task Learning with Attention
10、31、41 提到了使用变压器解决多个任务的问题,除了使用共享主干之外,这些工作都不旨在编码任务之间的强依赖关系

MulT模型 MulT模型(Multimodal Transformer)是一种用于处理未对齐多模态语言序列的Transformer模型。该模型由卡内基梅隆大学的Yao-Hung Hubert Tsai和Shaojie Bai等人于2019年提出,并在ACL 2019会议上发表。MulT模型的核心是跨模态注意力机制(Crossmodal Attention),它通过成对的跨模态Transformer模块实现不同模态之间的交互和融合。 阅读详情

相关推荐

深度学习的 Transfer Learning 与 MultiTask Learning:跨领域应用

1.背景介绍 深度学习是人工智能领域的一个重要分支,它主要通过模拟人类神经网络的结构和学习过程来实现智能化的计算机系统。随着数据量的增加和计算能力的提高,深度学习已经取得了显著的成果,如图像识别、自然语言处理、语音识别等。然而,深度学习模型的训练通常需要大量的数据和计算资源,这限制了其应用范围和效率。因此,在实际应用中,我们需要寻求一种更高效、更广泛的

AI天才研究院 644

CVPR2022 MulT: 端到端的多任务学习transformer

CVPR2022 MulT: 端到端的多任务学习transformer,一个端到端的多任务学习transformer框架MulT,该框架可以同时学习对各高级视觉任务,包括深度估计,语义分割,reshading重着色,表面法线估计,2D关键点检测和边缘检测。

qq_35831906的博客 6000

bert-multitask-learning:用于多任务学习的BERT

多任务学习专家 注意:从0.4.0开始,tf版本必须大于等于2.1。 安装 pip install bert-multitask-learning 它是什么 这个项目使用变压器(基于拥抱面部变压器)进行多模式多任务学习。 我为什么需要这个 在原始的BERT代码中,多任务学习或多GPU训练都不可行。 另外,该项目的初衷是NER,它在原始BERT代码中没有有效的脚本。 总而言之,与原始bert回购相比,此回购具有以下功能: 多模式多任务学习(重写大部分代码的主要原因)。 多GPU训练 支持序列标记(例如NER)和Encoder-Decoder Seq2Seq(带变压器解码器)。 支持哪些类型

2019_ACL_Multimodal Transformer for Unaligned Multimodal Language Sequences

Multimodal Transformer for Unaligned Multimodal Language Sequences 论文地址:https://arxiv.org/abs/1906.00295 对多模态人类语言序列数据进行建模的主要挑战: 1.每种模态的序列的采样方法不同,因此不同数据是未对齐的(就是一段文字,采样后与之相匹配的视频片段或音频片段与之并未对其) 2.跨模态的元素之间的长期依赖关系(哭泣可能与之前所说过的话有关系) 本文提出MulT来解决上述问题。 通过电影评论的实例视频剪

tcn760的博客 4388

Qwen3.5本地部署实战:4B模型在RTX3060上离线运行指南

大语言模型本地化部署正从云端服务转向终端设备,其核心是模型轻量化、硬件适配与推理引擎协同优化。基于INT4量化感知训练和GGUF格式支持,Qwen3.5在结构精简、Tokenizer轻量及显存友好性方面显著优于前代,使4B级别模型可在RTX 3060等中端显卡上稳定运行。该技术路径兼顾低延迟响应(<2秒)、数据隐私保障与离线可用性,广泛适用于法律文书分析、医疗文档处理、教育AI助手等对安全性与实时性双重要求的场景。本文聚焦Qwen3.5-4B量化部署全流程,涵盖llama.cpp编译调优、GPU层加载策略及

weixin_32181267的博客 365

PX4无人机-Gazebo仿真实现动态目标追踪的视觉控制方案

本文详细介绍了PX4无人机在Gazebo仿真环境中实现动态目标追踪的视觉控制方案。从PX4与Gazebo仿真环境搭建、动态目标追踪核心技术栈、仿真环境深度定制技巧到追踪算法的优化实践,提供了全面的技术指导和常见问题排查方法,帮助开发者高效实现无人机视觉追踪功能。

weixin_29196315的博客 450

MulT论文

对MulT论文模型的笔记,针对多模态语言序列分析中的两大挑战:模态不对齐和跨模态长期依赖问题。通过引入方向性跨模态注意力机制,MulT无需显式对齐即可实现端到端建模。实验表明,MulT在CMU-MOSI、CMU-MOSEI和IEMOCAP数据集上均优于现有方法,并能有效捕捉非同步模态间的语义关联。该模型为处理异步多模态数据提供了新范式,突破了传统方法依赖人工对齐的局限。

2503_91974535的博客 1055

coreldraw sp2精简版 x4_CorelDRAW X4下载-CorelDRAW X4 SP2 精简版_Win10镜像官网

CorelDRAW X4 SP2是一个专业图形设计软件,专用于矢量图形编辑与排版,借助其丰富的内容和专业图形设计、照片编辑和网站设计软件,您将能够随心所欲地表达自己的风格与创意,轻松创作徽标标志、广告标牌、车身贴和传单、模型绘制、插图描画、排版及分色输出等。CorelDRAW X4 SP2软件特色CorelDraw X4 相比两年前的 CorelDraw X3 加入了大量新特性,总计有50项以上,...

weixin_30346025的博客 8901

关于多模态情感识别MULT模型复现遇到的问题

mult模型,跨模态注意力

qq_52679708的博客 694

SystemVerilog学习总结

因为选择的offer是IC验证,以前学的是设计,所以只能再学systemverilog(SV)和UVM了。在学习SV和UVM之前,我认为需要学习以下几个部分:数字电路、c++和verilog。因为IC验证确实有不少别的专业之前没学过数字电路和Verilog,所以还是最好先学习一下。 知识点的总结主要是通过systemverilog验证-测试平台编写指南这本书进行的,所以请看书。通过对这本书的目录进行重点的划分,然后再进行相关知识点的总结。最后,给出自己收集的别的博主IC EDA环境的虚拟机,以及使用虚拟机需

博主毕竟还是人,肯定会有错误,各位看的时候发现错误提出来就好 1万+

yanshee 机器人全流程指南

2.点击yanshee app右上角根据提示操作 3.当手机显示成功连接 ,按下机器人胸前按钮说出“ip地址”4.根据机器人播报的ip地址加上:8888使用浏览器访问,你就会看到 jupyterd的界面,里面可以新建文件也可以改他存在的文件。我们使了yanshee机器人,这个是面向K12、中高职、高校学生推出的开源人形机器人教育平台,应用于课程教学、竞赛、科研活动等场景。我们接下来可以根据这些apl做许多好玩的,比如控制他运动,跳舞唱歌,it`s easy。注意电脑,手机,机器人必须连同一个网。

qq_44827929的博客 7613

Multi-Task Transformer 开源项目教程

Multi-Task Transformer 开源项目教程 1. 项目的目录结构及介绍 Multi-Task-Transformer/ ├── README.md ├── requirements.txt ├── setup.py ├── config/ │ ├── default.yaml │ ├── experiment.yaml ├── data/ │ ├── processed...

gitblog_01053的博客 988

[Dify实战] 多轮对话状态管理:上下文保持与槽位填充

本文探讨了基于LLM的对话应用中多轮对话状态管理的核心挑战与解决方案。文章指出,单纯的"能聊"远远不够,关键在于建立有效的状态管理机制,包括上下文保持和槽位填充两大核心能力。通过Dify实战视角,详细阐述了如何设计工程化落地方案:采用混合策略的上下文管理(窗口+摘要+关键槽位)、JSON Schema强约束的槽位抽取、统一状态对象存储、冲突处理机制和优化追问策略。文章特别强调,合理的状态管理能将"聊天"转化为"可执行的业务流程",避免模型成为&qu

技术小甜甜:传播可落地技术,帮助个人和企业降低解决真实场景问题的成本 238

BERT模型embedding层和MultHeadedSelfAttention层代码解析

2021SC@SDUSC

m0_53444618的博客 1626

【网络安全 | 渗透工具】Githack工具安装及使用教程详析

本文仅分享Githack工具基本安装及使用相关知识不承担任何法律责任。Git是一个非常流行的开源分布式版本控制系统,它被广泛用于协同开发和代码管理。许多网站和应用程序都使用Git作为其代码管理系统,并将其部署到生产环境中以维护其代码库。然而,在配置不当的情况下,可能会导致.git文件夹被直接部署到线上环境中,这可能会导致Git泄露问题。可通过githack下载泄露的Git存储库,以获取包含未加密密码、凭据和敏感信息的站点代码库。使用githack下载Git存储库的方法有两种。本文仅分享。

等风来 3万+

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

多任务:End-to-End Multi-Task Learning with Attention

论文摘要: We propose a novel multi-task learning architecture,which allows learning of task-specific feature-level attention. Our design, the Multi-Task Attention Network (MTAN), consists of a single shar...

qq_21157073的博客 6014

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

CRNN论文翻译——中英文对照

文章作者:Tyan 博客:noahsnail.com &nbsp;|&nbsp; 优快云 &nbsp;|&nbsp; 简书 声明:作者翻译论文仅为学习,如有侵权请联系作者删除博文,谢谢! 翻译论文汇总:https://github.com/SnailTyan/deep-learning-papers-translation An End-to-End Trainable Neural N...

SnailTyan 1万+

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

【无标题】

从上图中可以看出,所提出的模型由一个共享的编码器encoder,一个共享的解码器deocder,以及三个独立的解码器decoder组成,后面这三个独立的deocder对应表格识别的三个子任务。1.共享的编码器encoder将输入的表格图像编码成序列特征。2.将序列特征输入到共享的解码器decoder中。3.2的结果输入到structure decoder预测HTML标签结构4.2的结果输入到cell-bbox deocder预测单元格边框坐标。

mohen_777的博客 761

AAAI2023 | DeMT: CNN+Transformer实现多任务学习(分割/深度估计等四项SOTA!)

点击下方卡片,关注“自动驾驶之心”公众号ADAS巨卷干货,即可获取今天是春节后的第一篇原创,关于多任务学习,AAAI2023的work,如果您有相关工作需要分享,请在文末联系我们!>>点击进入→自动驾驶之心技术交流群论文名称:Deformable Mixer Transformer for Multi-Task Learning of Dense Prediction卷积神经网络(CN...

CV_Autobot的博客 2363

多任务学习(Multi-task Learning)方法总结

多任务学习(multi task learning)简称为MTL。简单来说有多个目标函数loss同时学习的就算多任务学习。多任务既可以每个任务都搞一个模型来学,也可以一个模型多任务学习来一次全搞定的。作者丨Anticoder@知乎链接丨https://zhuanlan.zhihu.com/p/59413549背景:只专注于单个模型可能会忽略一些相关任务中可能提升目标任务的潜在信息,通过进行一定程度...

idol24的博客 6174

2021-IEEE论文-深度神经网络在文档图像表格识别中的应用现状及性能分析

2021年5月12日收到, 2021年6月4日接受, 出版日期2021年6月9日, 当前版本日期2021年6月24日。 摘要 - Abstract   表格识别的第一阶段是检测文档中的表格区域。随后,在第二阶段识别表格结构,以便从各个单元中提取信息。表格检测和结构识别是表格理解领域的关键问题。然而,由于表格中存在大量的多样性和不对称性,导致了表格分析是一项复杂的任务,因此它是文档图像分析中一个活跃的研究领域。图形处理单元计算能力的最新进展使深度神经网络的性能优于传统的最先进的机器学习方法。表格理解从深度

jyjy0608的博客 5866

12.UniT:Multimodal Multitask Learning with a Unified Transformer

1.动机 UniT,它通过统一transformer联合学习跨不同领域的多个任务。我们的UniT模型可以同时处理8个数据集上的7个任务,从对象检测到视觉和语言推理以及自然语言理解,同时通过紧凑的模型参数集实现每个任务的强大性能。 我们提出了一个统一的transformer模型UniT,它可以同时学习跨不同领域的最重要的任务,从对象检测到自然语言理解和多模态推理。基于transformer编码器-解码器体系结构,我们的UniT模型用编码器对每个输入模态进行编码,并在编码输入表示...

qq_41887799的博客 1386

【CV】计算机视觉中什么是Low level任务和High level任务?

Low-level任务:常见的包括 Super-Resolution,denoise, deblur, dehze, low-light enhancement, deartifacts等。简单来说,是把特定降质下的图片还原成好看的图像,现在基本上用end-to-end的模型来学习这类 ill-posed问题的求解过程,客观指标主要是PSNR,SSIM,大家指标都刷的很高。目前面临以下几点问题: 泛化性差,换个数据集,同种任务变现就很差 客观指标与主观感受存在,GAP,指标刷很高,人眼观感不佳,用GAN可缓

qq_43426078的博客 1万+

MOTR: End-to-End Multiple-Object Tracking with Transformer 详细解读

一篇MOT领域基于Transformer的工作,是第一个真正严格意义上端到端的多目标跟踪框架,超越了此前的TransTrack和TrackFormer等工作。后续的GTR也借鉴了此算法。

ZauberC的博客 6085
上一篇: tensorflow keras 学习笔记
下一篇: latex tips 正比于 \propto
FakeOccupational
博客等级 码龄6年 2万+粉丝 1727原创
评论 8
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值