ResMLP:具有数据效率训练的图像分类前馈网络

news2024/11/20 8:31:06

文章目录

  • ResMLP: Feedforward networks for image classification with data-efficient training
    • 摘要
    • 本文方法
    • 代码
    • 实验结果

ResMLP: Feedforward networks for image classification with data-efficient training

摘要

我们提出了ResMLP,一个完全建立在多层感知器上的图像分类体系结构。它是一个简单的残差网络,
交替使用(i)一个线性层,其中图像补丁在通道之间独立且相同地相互作用,以及(ii)一个两层前馈网络,其中通道在每个补丁之间独立相互作用。当使用大量数据增强和选择性蒸馏的现代训练策略进行训练时,它在ImageNet上获得了令人惊讶的良好精度/复杂性权衡。我们还在自监督设置中训练ResMLP模型,以进一步从使用标记数据集中去除先验。最后,通过将我们的模型应用于机器翻译,我们取得了令人惊讶的好结果

本文方法

在这里插入图片描述
在将图像斑块线性投影到高维嵌入后,ResMLP依次使用(1)跨斑块线性子层对其进行处理;(2)跨通道双层MLP。MLP与Transformer的FCN子层相同。每个子层都有一个残余连接和两个仿射元素转换。

代码

Affine代码

class Aff(nn.Module):
    def __init__(self, dim):
        super().__init__()

        self.alpha = nn.Parameter(torch.ones([1, 1, dim]))
        self.beta = nn.Parameter(torch.zeros([1, 1, dim]))

    def forward(self, x):
        x = x * self.alpha + self.beta
        return x

此操作仅按元素方向重新缩放和移动输入。与其他归一化操作相比,该操作有几个优点:首先,与层归一化相反,它在推理时间上没有成本,因为它可以被相邻的线性层吸收。
前向传播也和作者说的一样

class FeedForward(nn.Module):
    def __init__(self, dim, hidden_dim, dropout = 0.):
        super().__init__()
        self.net = nn.Sequential(
            nn.Linear(dim, hidden_dim),
            nn.GELU(),
            nn.Dropout(dropout),
            nn.Linear(hidden_dim, dim),
            nn.Dropout(dropout)
        )
    def forward(self, x):
        return self.net(x)

整体过程

class MLPblock(nn.Module):

    def __init__(self, dim, num_patch, mlp_dim, dropout = 0., init_values=1e-4):
        super().__init__()

        self.pre_affine = Aff(dim)
        self.token_mix = nn.Sequential(
            Rearrange('b n d -> b d n'),
            nn.Linear(num_patch, num_patch),
            Rearrange('b d n -> b n d'),
        )
        self.ff = nn.Sequential(
            FeedForward(dim, mlp_dim, dropout),
        )
        self.post_affine = Aff(dim)
        self.gamma_1 = nn.Parameter(init_values * torch.ones((dim)), requires_grad=True)
        self.gamma_2 = nn.Parameter(init_values * torch.ones((dim)), requires_grad=True)

    def forward(self, x):
        x = self.pre_affine(x)
        x = x + self.gamma_1 * self.token_mix(x)
        x = self.post_affine(x)
        x = x + self.gamma_2 * self.ff(x)
        return x

实验结果

在这里插入图片描述

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

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

相关文章

Windows系统创建新用户

1、以管理员身份启动cmd 2、开启administrator管理员账户 输入命令: net user Administrator /active:yes 3、切换到administrator用户 点击账户头像可以看见 4、创建新用户 WinR 键打开dos窗口输入:control userpasswords2 在弹出的“用户账户”中点…

区间预测 | MATLAB实现基于QRF随机森林分位数回归多变量时间序列区间预测模型

区间预测 | MATLAB实现基于QRF随机森林分位数回归多变量时间序列区间预测模型 目录 区间预测 | MATLAB实现基于QRF随机森林分位数回归多变量时间序列区间预测模型效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现基于QRF随机森林分位数回归多变量时间序列区间…

MFC CList 类的使用

MFC提供CList 类; 类CList支持可按顺序或按值访问的非唯一对象的有序列表;CList 列表与双链接列表行为相似; 类型POSITION的变量是列表的关键字;可使用POSITION变量作为循环因子来顺序遍历列表,作为书签来保存位置&am…

深度学习推理和训练

优化和泛化 深度学习的根本问题是优化和泛化之间的对立。 • 优化(optimization)是指调节模型以在 训练数据 上得到最佳性能(即机器学习中的学习)。 • 泛化(generalization)是指训练好的模型在 前所未…

Python 面向对象(一)(成员方法、类和对象)

初识对象 生活中数据的组织 学校开学,要求学生填写自己的基础信息,一人发一张白纸,让学生自己填 改为登记表,打印出来让学生自行填写: 程序中数据的组织 在程序中简单使用变量来记录学生信息 使用变量记录数据太乱了…

Python怎么将图片转换成base64编码

目录 什么是base64编码 Base64编码的特点 Base64编码的应用 Python怎么将图片转换成base64编码 什么是base64编码 Base64编码是一种将二进制数据转换为ASCII字符的编码方式。它是由MIME(Multipurpose Internet Mail Extensions)规范定义的&#xff0…

CAD转PDF怎么从彩色变成黑白?这个小技巧要掌握

CAD文件,也被称为CAD文档或CAD绘图文件,是一种专用的计算机辅助设计文件格式。它通常用于表示二维或三维设计图形和相关的几何属性。CAD文件可以在计算机辅助设计软件中打开和编辑。 通常由一个或多个图层组成,每个图层可以包含不同的颜色、线…

day37回溯算法

1.什么是回溯算法 回溯就是递归问题: 解决组合问题(无顺序),切割问题,子集问题,排列问题(顺序) 所有的回溯可以抽象为一棵树:树 宽度就是for循环大小 树深度就是回溯 vo…

HCIP——OSPF基础

OSPF基础 一、OSPF基础二、OSPF的区域划分三、OSPF的数据包hello包数据库描述包DBD包链路状态请求包LSR包链路状态更新包LSU包链路状态确认包LSAck包 四、OSPF的状态机五、OSPF的工作过程六、链路状态型的路由生成过程七、条件匹配五、OSPF数据包头部八、OSPF的接口网络类型 一…

C++的六大“天选之子“之“构造“与“析构“

🎈个人主页:🎈 :✨✨✨初阶牛✨✨✨ 🐻推荐专栏1: 🍔🍟🌯C语言初阶 🐻推荐专栏2: 🍔🍟🌯C语言进阶 🔑个人信条: 🌵知行合一 &#x1f…

【LeetCode】64.最小路径和

题目 给定一个包含非负整数的 m x n 网格 grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。 说明:每次只能向下或者向右移动一步。 示例 1: 输入:grid [[1,3,1],[1,5,1],[4,2,1]] 输出&#…

离多态更近一步

在面向对象的语言里面,封装,继承,多态可谓是在熟悉不过了,当我们每次再去重新认识它们的时候总会有新的发现,为此我也经常感到疑惑,所以在这里和大家一起探讨三个问题,让我们在向多态靠近一点点。 虚表是否真的存在静态区 经常我们都会看见一个问题,虚表到底是存放…

使用show effective grants查看权限

1、问题描述 用户 show grants 显示只有连接权限,但该用户却能执行 sbtest.*下的所有操作 GreatSQL> \s ... Server version: 8.0.32-24 GreatSQL, Release 24, Revision 3714067bc8c ... GreatSQL> show grants; ---------------------------------------…

哪些在线工具能免费转换MP3格式?分享两个方法!

哪些在线工具能免费转换MP3格式?通常来说,MP3格式转换器都具备简洁的界面、便捷的操作以及强大的功能,它们可以将各种流行的视频或音频格式转换成MP3文件,甚至可以制作手机铃声。用户只需要在设置中设定录制时间,即可轻…

MIT 6.830数据库系统 -- lab four

MIT 6.830数据库系统 -- lab four 项目拉取引言事务、锁 & 并发控制事务ACID特性两阶段锁 Recovery and Buffer ManagementGranting Locks(授予锁)练习1 Lock Lifetime练习2 Implementing NO STEAL练习3 事务练习4 死锁和中止练习5 项目拉取 原项目使用ant进行项目构建&am…

勘探开发人工智能应用:初至波拾取

AI在油田主营业务即勘探开发运销和经营管理领域的落地场景,需要的算法、模型及关键技术。 1 初至波拾取 在地震数据采集过程中,由人工震源激发后检波器最先接收到地震波的起跳位置,得到这一位置的过程就是初至拾取。“初至拾取在构建精细近…

AI生成写真照 妙鸭能取代海马体?

只要9.9元和21张照片,就能生成各种风格的个人写真照,界面简洁、卖点吸睛的妙鸭相机突然火了。采用AI技术,它以更低的成本和更高的效率,让用户足不出户“拍写真”,有人直呼,它要抢海马体这类实体照相馆的饭碗…

基于51单片机和proteus的模拟楼道灯系统

此系统是基于51单片机和proteus的仿真设计,功能如下: 1. 系统实时检测楼道光照强度。 2. 光照弱情况下,触摸或声音可开启楼道灯。 3. 光照强情况下,触摸或声音都不能开启楼道灯。 4. 楼道灯开启一段时间(3S&#x…

数据库应用:MySQL MHA高可用集群

目录 一、理论 1.MHA 2.MySQL MHA部署准备 3.MySQL MHA部署 二、实验 1.MHA部署 三、问题 1.中英文符兼容报错 2.MHA测试 ssh 无密码认证语法报错 3.MHA测试 ssh 无密码认证log-bin报错 4.MHA测试 mysql 主从连接情况报错slave replication 5.MHA测试 mysql 主从连…

高质量代码究竟依赖设计还是重构而来?

👉导读 一个有所追求的程序员一定都希望自己能够写出高质量的代码,但高质量代码从何而来呢?有人认为是设计出来的,就像一栋稳固的大厦,如果没有前期优秀的设计那么肯定难逃豆腐渣工程的命运;也有人认为是重…