Supervised Fine-tuning in turn Improves Visual Foundation Models

简介

从NLP中的监督微调(Supervised Fine-tuning)获得的灵感,本文探索了细粒度SFT在预训练后增强视觉基础模型潜力。本文提出了一种二阶段方法ViSFT释放视觉基础模型细粒度知识。具体地,通过一些域内任务执行视觉联合学习增强视觉基础模型,然后在域外基准任务上进行测试。

模型细节

第一阶段,使用EVA-CLIP模型中预训练的ViT作为backbone并将其冻结。然后独立连接检测、分割、描述头进行微调。该步骤目标是获得与ViT特征兼容的任务头。在第二阶段,用LoRA权重增强ViT,并连接所有任务头进行微调。除了增加的LoRA权重外其他模块将重新冻结。

LoRA更新矩阵

对于EVA-ViT的查询和值嵌入层内的预训练权重矩阵 W q / v ∈ R d × k W_{q/v}\in \mathbb{R}^{d\times k} Wq/vRd×k,本文通过引入低秩分解对齐更新添加约束 W q / v + Δ W = W q / v + B A W_{q/v}+\Delta W=W_{q/v}+BA Wq/v+ΔW=Wq/v+BA B ∈ R d × r , A ∈ R r × k B\in \mathbb{R}^{d\times r},A\in \mathbb{R}^{r\times k} BRd×r,ARr×k。在训练第二阶段,权重矩阵 W q , W v W_{q},W_{v} Wq,Wv冻结, A , B A,B A,B包含可训练参数。对于 h q / v = W q / v x h_{q/v}=W_{q/v}x hq/v=Wq/vx,前向传播即:
h q / v = W q / v x + Δ W x = W q / v x + B A x h_{q/v}=W_{q/v}x+\Delta W x=W_{q/v}x+BAx hq/v=Wq/vx+ΔWx=Wq/vx+BAx

检测头

在现有检测头中,DETR第一个引入Transformer,这简化了检测头设计,消除了后处理技术的需要,如NMS。尽管DETR表现出缓慢的速度,但本文并不追求这些域内任务卓越性能。相反使用这些任务头作为桥梁恢复ViT的细粒度信息。
DETR生成固定数量的可学习查询嵌入,这些嵌入用作解码器输入。这些查询通过自注意力相互作用,并通过交叉注意力与平坦图像特征相互作用。

分割头

使用Mask2former作为分割头。作为分割任务统一框架,Mask2former能够处理实例分割和全景分割,从而为各种分割注释的实验提供了便利。
Mask2former也生成固定数量的查询嵌入。分割掩码表示是从第j嵌入的解码器的最终层隐藏状态和每像素特征图之间点积导出。

描述头

采用经典的LSTM网络,通过在每个时间步长生成一个单词生成描述,条件是上下文向量、以前的隐藏状态和以前生成的单词。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/791598.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

编程实战:自己编写HTTP服务器(系列9:上传文件)

初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的,可以在任何平台上使用。 本系列的源码位于httpd目录下…

Java实现两数相除

题意 给你两个整数,被除数 dividend 和除数 divisor。将两数相除,要求不使用乘法、除法和取余运算。 整数除法应该向零截断,也就是截去(truncate)其小数部分。例如,8.345 将被截断为 8 ,-2.7335…

用DasViewer浏览模型时可以移动模型的中心点吗?

按住鼠标中键,就正常平移模型了。 DasViewer是由大势智慧自主研发的免费的实景三维模型浏览器,采用多细节层次模型逐步自适应加载技术,让用户在极低的电脑配置下,也能流畅的加载较大规模实景三维模型,提供方便快捷的数据浏览操作。 DasViewer下载地址:…

leetcode 热题 100(部分)C/C++

leetcode 热题 100 双指针 盛最多水的容器 【mid】【双指针】 思路: 好久没写代码sb了,加上之前写的双指针并不多,以及有点思维定势了。我对双指针比较刻板的印象一直是两层for循环i,j,初始时i,j都位于左界附近&…

SAM Self-Attention based Deep Learning Method

一、Why(Research Background) 网络流量分类根据协议(如超文本传输协议或域名系统)或应用程序(如脸书或Gmail)对流量类别进行分类。其准确性是一些网络管理任务(如服务质量控制、异常检测等)的关键基础。为了进一步提高流量分类的准确性,最近的研究引入了基于深度学习的方法…

Open CASCADE学习|刚体( TopoDS_Shape)按某种轨迹运动,停在指定位置上

今天实现如下功能:刚体做做螺旋运动,轨迹已知,求刚体在每个位置上的所占据的空间,就是把刚体从初始位置变换到该位置。 这里的刚体是一个砂轮截面,螺旋运动轨迹由B样条曲线拟合,通过Frenet标架确定运动轨迹…

datalist是什么,有什么作用?

<datalist>标签用于定义一个预定义选项列表&#xff0c;它可以与文本输入框&#xff08;<input type"text">&#xff09;一起使用&#xff0c;提供一组可选的值供用户选择或输入。<datalist>标签中的选项可以通过<option>标签来定义。 <…

多线程(29)Semaphore

Semaphore&#xff08;信号量&#xff09;是一种常用的并发控制技术&#xff0c;用于管理对一组资源的访问控制。信号量的核心是一个计数器&#xff0c;表示可用资源的数量。计数器的值可以初始化为任意值&#xff0c;如果初始化为1&#xff0c;则成为一个互斥锁&#xff08;Mu…

iOS使用CoreML运用小型深度神经网络架构对图像进行解析

查找一个图片选择器 我用的是ImagePicker 项目有点老了&#xff0c;需要做一些改造&#xff0c;下面是新的仓库 platform :ios, 16.0use_frameworks!target learnings dosource https://github.com/CocoaPods/Specs.gitpod ImagePicker, :git > https://github.com/KevinS…

Python之Opencv进阶教程(1):图片模糊

1、Opencv提供了多种模糊图片的方法 加载原始未经模糊处理的图片 import cv2 as cvimg cv.imread(../Resources/Photos/girl.jpg) cv.imshow(girl, img)1.1 平均值 关键代码 # Averaging 平均值 average cv.blur(img, (3, 3)) cv.imshow(Average Blur, average)实现效果 1.2…

STM32F407 FSMC并口读取AD7606

先贴一下最终效果图.这个是AD7606并口读取数据一个周期后的数据结果. 原始波形用示波器看是很平滑的. AD7606不知为何就会出现干扰, 我猜测可能是数字信号干扰导致的. 因为干扰的波形很有规律. 这种现象基本上可以排除是程序问题. 应该是干扰或者数字信号干扰,或者是数字和模拟…

基于Spring Boot的餐厅点餐系统

基于Spring Boot的餐厅点餐系统 开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;Maven3.3.9 部分系统展示 管理员登录界面 用户注册登录界面 …

​如何使用ArcGIS Pro进行洪水淹没分析

洪水淹没分析是一种常见的水文地理信息系统应用&#xff0c;用于模拟和预测洪水事件中可能受到淹没影响的地区&#xff0c;这里为大家介绍一下ArcGIS Pro进行洪水淹没分析的方法&#xff0c;希望能对你有所帮助。 数据来源 教程所使用的数据是从水经微图中下载的DEM数据&…

Python学习笔记-Flask接收post请求数据并存储数据库

1.引包 from flask import Flask, request, jsonify from flask_sqlalchemy import SQLAlchemy 2.配置连接,替换为自己的MySQL 数据库的实际用户名、密码和数据库名 app Flask(__name__) #创建应用实列 app.config[SQLALCHEMY_DATABASE_URI] mysqlpymysql://ro…

优化 Nginx 处理 504 Gateway Timeout 错误

简介 504 Gateway Timeout 错误表示 Nginx 在指定的时间内没有从上游服务器收到响应。这可能是由于上游服务器处理时间过长或网络连接问题造成的。 调整 Nginx 参数 为了解决 504 错误&#xff0c;可以调整以下 Nginx 参数&#xff1a; **proxy_read_timeout&#xff1a;**指…

如何判断驱动中probe是否执行

在我们调试驱动程序的时候需要查看probe函数是否执行&#xff0c;我们只需要在其probe函数写一个printk函数即可&#xff0c;在驱动和设备匹配之后就会执行这个probe里面的打印函数 但是前提我们需要降低内核的打印级别&#xff0c;否则是看不到的&#xff0c;我们可以降到最低…

mac电脑maven配置环境变量

1、下载maven https://maven.apache.org 2、配置环境变量 vim .bash_profile JAVA_HOME/Library/Java/JavaVirtualMachines/jdk-1.8.jdk/Contents/Home PATH$JAVA_HOME/bin:$PATH export JAVA_HOME export PATH#maven export MAVEN_HOME/Users/haines/desktop/work/java/a…

鸿蒙OS开发实例:【应用事件打点】

简介 传统的日志系统里汇聚了整个设备上所有程序运行的过程流水日志&#xff0c;难以识别其中的关键信息。因此&#xff0c;应用开发者需要一种数据打点机制&#xff0c;用来评估如访问数、日活、用户操作习惯以及影响用户使用的关键因素等关键信息。 HiAppEvent是在系统层面…

适用于 Linux 的 Windows 子系统安装初体验

1、简述 Windows Subsystem for Linux (WSL) 是 Windows 的一项功能&#xff0c;允许您在 Windows 计算机上运行 Linux 环境&#xff0c;而无需单独的虚拟机或双重启动。 WSL 旨在为想要同时使用 Windows 和 Linux 的开发人员提供无缝且高效的体验。 使用 WSL 安装和运行各种 L…

【javaScript】DOM编程入门

一、什么是DOM编程 概念&#xff1a;DOM(Document Object Model)编程就是使用document对象的API完成对网页HTML文档进行动态修改&#xff0c;以实现网页数据和样式动态变化的编程 为什么要由DOM编程来动态修改呢&#xff1f;我们就得先理解网页的运行原理&#xff1a; 如上图&a…