有关介绍CVPR‘2024工作《持续学习的无干扰低秩适应》正式实施

一个不知名大学生,江湖人称菜狗
original author: Jacky Li
Email : 3435673055@qq.com

Time of completion:2024.04.03
Last edited: 2024.04.03

代码:GitHub - liangyanshuo/InfLoRA:CVPR'2024 工作 Interference-Free Low-Rank Adaptation for Continual Learning 的正式实现icon-default.png?t=N7T8https://github.com/liangyanshuo/InfLoRA?tab=readme-ov-file

目录

InfLoRA:用于持续学习的无干扰低秩适应

介绍

必要

数据集准备

训练

CIFAR100:

对于 InfLoRA-b5

对于 InfLoRA+CA

ImageNet-R(10 个任务):

对于 InfLoRA

对于 InfLoRA-b5

对于 InfLoRA+CA

ImageNet-R(20 个任务):

对于 InfLoRA-b5

ImageNet-R(5 个任务):

对于 InfLoRA-b5

域名网:

对于 InfLoRA-b5


InfLoRA:用于持续学习的无干扰低秩适应

这是 CVPR 2024 论文“持续学习的无干扰低秩适应”的正式实现。 在本文中,提出了一种新的参数高效持续学习方法,称为无干扰低秩自适应(InfLoRA)。

介绍

持续学习要求模型按顺序学习多个任务。在持续学习中,模型应具有在旧任务上保持其性能的能力(稳定性)和持续适应新任务的能力(可塑性)。最近,参数高效微调 (PEFT) 在持续学习中越来越受欢迎,它涉及冻结预训练模型并注入少量可学习参数以适应下游任务。尽管现有的基于PEFT的持续学习方法与不基于PEFT的学习方法相比表现出了更好的性能,但大多数方法没有考虑如何消除新任务对旧任务的干扰,这阻碍了模型在稳定性和可塑性之间做出良好的权衡。在这项工作中,我们提出了一种新的PEFT方法,称为无干扰低秩适应(InfLoRA),用于持续学习。InfLoRA 注入少量参数来重新参数化预训练的权重,并表明微调这些注入的参数等同于微调子空间内的预训练权重。此外,InfLoRA设计了这个子空间,以消除新任务对旧任务的干扰,在稳定性和可塑性之间做出良好的权衡。实验结果表明,InfLoRA在多个数据集上优于现有的最先进的持续学习方法。

必要

此代码在 PyTorch 中实现,我们在以下环境设置下执行实验:

  • 蟒蛇 = 3.8
  • 火炬 = 1.10.0
  • 火炬视觉 = 0.11.1
  • 蒂姆 = 0.6.7

我认为代码可以在其他版本的环境下运行,但我还没有尝试过。

数据集准备

  • 创建文件夹data/
  • CIFAR 100:应自动下载
  • ImageNet-R:请按照LAE[GitHub - gqk/LAE: A Unified Continual Learning Framework with General Parameter-Efficient Tuning, ICCV 2023 [PyTorch Code]]准备数据集并放入文件夹data/
  • DomainNet:从 Moment Matching for Multi-Source Domain Adaptation 下载,放入文件夹data/

训练

所有命令都应在项目根目录下运行。目前,该代码针对 1 个 A6000 GPU (48G) 运行。

CIFAR100:

对于 InfLoRA
<span style="background-color:var(--bgColor-muted, var(--color-canvas-subtle))"><span style="color:#1f2328"><span style="color:var(--fgColor-default, var(--color-fg-default))"><span style="background-color:var(--bgColor-muted, var(--color-canvas-subtle))"><code>python main.py --device "1" --config configs/cifar100_inflora.json 
</code></span></span></span></span>
对于 InfLoRA-b5
<span style="background-color:var(--bgColor-muted, var(--color-canvas-subtle))"><span style="color:#1f2328"><span style="color:var(--fgColor-default, var(--color-fg-default))"><span style="background-color:var(--bgColor-muted, var(--color-canvas-subtle))"><code>python main.py --device "1" --config configs/cifar100_inflorab5.json 
</code></span></span></span></span>
对于 InfLoRA+CA
<span style="background-color:var(--bgColor-muted, var(--color-canvas-subtle))"><span style="color:#1f2328"><span style="color:var(--fgColor-default, var(--color-fg-default))"><span style="background-color:var(--bgColor-muted, var(--color-canvas-subtle))"><code>python main.py --device "1" --config configs/cifar100_infloraca.json 
</code></span></span></span></span>

ImageNet-R(10 个任务):

对于 InfLoRA
<span style="background-color:var(--bgColor-muted, var(--color-canvas-subtle))"><span style="color:#1f2328"><span style="color:var(--fgColor-default, var(--color-fg-default))"><span style="background-color:var(--bgColor-muted, var(--color-canvas-subtle))"><code>python main.py --device "1" --config mimg10_inflora.json 
</code></span></span></span></span>
对于 InfLoRA-b5
<span style="background-color:var(--bgColor-muted, var(--color-canvas-subtle))"><span style="color:#1f2328"><span style="color:var(--fgColor-default, var(--color-fg-default))"><span style="background-color:var(--bgColor-muted, var(--color-canvas-subtle))"><code>python main.py --device "1" --config mimg10_inflorab5.json 
</code></span></span></span></span>
对于 InfLoRA+CA
<span style="background-color:var(--bgColor-muted, var(--color-canvas-subtle))"><span style="color:#1f2328"><span style="color:var(--fgColor-default, var(--color-fg-default))"><span style="background-color:var(--bgColor-muted, var(--color-canvas-subtle))"><code>python main.py --device "1" --config mimg10_infloraca.json 
</code></span></span></span></span>

ImageNet-R(20 个任务):

对于 InfLoRA
<span style="background-color:var(--bgColor-muted, var(--color-canvas-subtle))"><span style="color:#1f2328"><span style="color:var(--fgColor-default, var(--color-fg-default))"><span style="background-color:var(--bgColor-muted, var(--color-canvas-subtle))"><code>python main.py --device "1" --config mimg20_inflora.json 
</code></span></span></span></span>
对于 InfLoRA-b5
<span style="background-color:var(--bgColor-muted, var(--color-canvas-subtle))"><span style="color:#1f2328"><span style="color:var(--fgColor-default, var(--color-fg-default))"><span style="background-color:var(--bgColor-muted, var(--color-canvas-subtle))"><code>python main.py --device "1" --config mimg20_inflorab5.json 
</code></span></span></span></span>

ImageNet-R(5 个任务):

对于 InfLoRA
<span style="background-color:var(--bgColor-muted, var(--color-canvas-subtle))"><span style="color:#1f2328"><span style="color:var(--fgColor-default, var(--color-fg-default))"><span style="background-color:var(--bgColor-muted, var(--color-canvas-subtle))"><code>python main.py --device "1" --config mimg5_inflora.json 
</code></span></span></span></span>
对于 InfLoRA-b5
<span style="background-color:var(--bgColor-muted, var(--color-canvas-subtle))"><span style="color:#1f2328"><span style="color:var(--fgColor-default, var(--color-fg-default))"><span style="background-color:var(--bgColor-muted, var(--color-canvas-subtle))"><code>python main.py --device "1" --config mimg5_inflorab5.json 
</code></span></span></span></span>

域名网:

对于 InfLoRA
<span style="background-color:var(--bgColor-muted, var(--color-canvas-subtle))"><span style="color:#1f2328"><span style="color:var(--fgColor-default, var(--color-fg-default))"><span style="background-color:var(--bgColor-muted, var(--color-canvas-subtle))"><code>python main.py --device "1" --config domainnet_inflora.json 
</code></span></span></span></span>
对于 InfLoRA-b5
<span style="background-color:var(--bgColor-muted, var(--color-canvas-subtle))"><span style="color:#1f2328"><span style="color:var(--fgColor-default, var(--color-fg-default))"><span style="background-color:var(--bgColor-muted, var(--color-canvas-subtle))"><code>python main.py --device "1" --config domainnet_inflorab5.json 
</code></span></span></span></span>

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

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

相关文章

jenkins插件集成api使用

jenkins配置插件&api使用 jenkins https://mirrors.jenkins.io/war-stable/2.222.1/ 包下载地址 jenkins镜像源修改 sed -i s/https:\/\/www.google.com/https:\/\/www.baidu.com/g default.json sed -i s/https:\/\/updates.jenkins.io\/download/https:\/\/mirrors.…

slam数学补充

协方差矩阵的计算 M(p̃ − μ)(p̃ − μ) T / (n1) μ Σ p̃ / (n1) 协方差矩阵的意义 以及 特征向量和特征值的关系 从数据表面看&#xff1a; 当M(n,n)过大意味着在数据均值的n维上变化较大&#xff0c;反之M(n,n)过小意味着数据在均值 的n维上变化不大。 当M(n,m)过…

教你快速认识Java中的抽象类和接口

目录 引言 抽象类&#xff08;Abstract Class&#xff09; 抽象类的概念 抽象类的图标 抽象类的语法 抽象类的特点 接口&#xff08;Interface&#xff09; 接口的概念 接口的图标 接口的语法 接口的特点 接口的使用 接口的意义 抽象类与接口的区别 Object类 结…

VMware配置环境(安装运行问题)及系列dns端口网络类型IP远程连接学习之(详谈8000字)

安装vmware快速配置步骤 下载VMware安装包 在下载好VMware安装包之后双击运行 接受条款 关闭VMware自动更新 勾选快捷键方式 安装VMware安装 输入许可证&#xff08;有需要私信小编&#xff09; 安装完成 重启电脑即可 最终成功界面: 安装Linux系统 创建虚拟机 选择…

递归实现排列型枚举(acwing)

题目描述&#xff1a; 把 1∼n 这 n 个整数排成一行后随机打乱顺序&#xff0c;输出所有可能的次序。 输入格式&#xff1a; 一个整数 n。 输出格式&#xff1a; 按照从小到大的顺序输出所有方案&#xff0c;每行 1 个。 首先&#xff0c;同一行相邻两个数用一个空格隔开…

在同一个局域网如何共享打印机和文件

1.在连接了打印机的主机上设置 1.1启用windows共享 打开网络与共享中心&#xff0c;点击“更改高级共享设置” 选择&#xff1a; “启用网络发现”“启用文件和打印机共享”“启用共享以便可以访问网络的用户可以读取和写入公用文件夹中的文件” 打开控制面板&#xff0c;选…

使用idea 调试HashMap时出现ExpiringCache

问题背景&#xff1a; 调试HashMap源码验证是在第一次put才创建table时&#xff0c;发现刚new出来HashMap表的size已经有值了&#xff1f;&#xff01;&#xff01;而且都是关于ExpiringCache之类的 解决办法&#xff1a; 开启调试前只在main方法里打断点&#xff0c;程序启动…

防抖节流面试

1、防抖 1.1、条件 1、高频 2、耗时&#xff08;比如console不算&#xff09; 3、以最后一次调用为准 刷到个神评论&#xff0c;回城是防抖&#xff0c;技能cd是节流 1.2、手写 传参版本 function debounce(fn,delay){let timerreturn function(...args){//返回函数必须是普…

之前翻硬币问题胡思乱想的完善

题目背景 小明正在玩一个“翻硬币”的游戏。 题目描述 桌上放着排成一排的若干硬币。我们用 * 表示正面&#xff0c;用 o 表示反面&#xff08;是小写字母&#xff0c;不是零&#xff09;&#xff0c;比如可能情形是 **oo***oooo&#xff0c;如果同时翻转左边的两个硬币&#x…

秋招刷题4(动态规划)

1.购物单 import java.util.Scanner;public class Main {public static void main(String[] args){Scanner sc new Scanner(System.in);int N sc.nextInt();int m sc.nextInt();Goods[] goods new Goods[m];for(int i 0; i < m; i){goods[i] new Goods();}for(int i …

【cpp】快速排序优化

标题&#xff1a;【cpp】快速排序 水墨不写bug 正文开始&#xff1a; 快速排序的局限性&#xff1a; 虽然快速排序是一种高效的排序算法&#xff0c;但也存在一些局限性&#xff1a; 最坏情况下的时间复杂度&#xff1a;如果选择的基准元素不合适&#xff0c;或者数组中存在大…

ubuntu-server部署hive-part1-安装jdk

参照 https://blog.csdn.net/qq_41946216/article/details/134345137 操作系统版本&#xff1a;ubuntu-server-22.04.3 虚拟机&#xff1a;virtualbox7.0 安装jdk 上传解压 以root用户&#xff0c;将jdk上传至/opt目录下 tar zxvf jdk-8u271-linux-x64.tar.gz 配置环境变量…