MLP-Mixer:面向视觉的全mlp架构

文章目录

  • MLP-Mixer: An all-MLP Architecture for Vision
    • 摘要
    • 本文方法
    • 代码
    • 实验结果

MLP-Mixer: An all-MLP Architecture for Vision

摘要

卷积神经网络(cnn)是计算机视觉的首选模型。
最近,基于注意力的网络,如VIT,也变得流行起来。在本文中,我们证明了虽然卷积和注意力对于良好的性能都是足够的,但它们都不是必需的。我们提出了MLP-Mixer,一种完全基于多层感知器(mlp)的架构。
MLP-Mixer包含两种类型的层:一种是独立应用于图像补丁的mlp(即“混合”每个位置的特征),另一种是跨补丁应用的mlp(即“混合”空间信息)。当在大型数据集上训练或使用现代正则化方案时,MLP-Mixer在图像分类基准上获得了具有竞争力的分数,其预训练和推理成本与最先进的模型相当。我们希望这些结果能激发进一步的研究,超越已经建立的cnn和transformer领域
代码地址

本文方法

在这里插入图片描述
MLP-Mixer由每个patch线性嵌入、Mixer层和分类器头组成。
混合层包含一个令牌混合MLP和一个通道混合MLP,每个MLP由两个完全连接的层和一个GELU非线性组成。其他组件包括:通道上的跳过连接、退出和层规范。
总的来说就是,基于通道的和基于patch的MLP,然后增加跳跃连接

代码

class MlpBlock(nn.Module):mlp_dim: int@nn.compactdef __call__(self, x):y = nn.Dense(self.mlp_dim)(x)y = nn.gelu(y)return nn.Dense(x.shape[-1])(y)class MixerBlock(nn.Module):"""Mixer block layer."""tokens_mlp_dim: intchannels_mlp_dim: int@nn.compactdef __call__(self, x):y = nn.LayerNorm()(x)y = jnp.swapaxes(y, 1, 2)y = MlpBlock(self.tokens_mlp_dim, name='token_mixing')(y)y = jnp.swapaxes(y, 1, 2)x = x + yy = nn.LayerNorm()(x)return x + MlpBlock(self.channels_mlp_dim, name='channel_mixing')(y)

代码非常简单,就是一个轴交换然后相加得到的最后结果

实验结果

在这里插入图片描述

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

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

相关文章

@ImportResource 注解的使用

ImportResource注解&#xff1a;用于导入 Spring 的 xml 配置文件&#xff0c;让该配置文件中定义的 bean 对象加载到Spring容器中。 1.Spring 方式的配置文件 beans.xml <?xml version"1.0" encoding"UTF-8"?> <beans xmlns"http://www…

【Logback】Spring boot 配置多环境的logback

一、背景描述 由于MAC环境本地启动项目存在目前权限问题&#xff0c;需要与测试环境不一致只&#xff0c;为了不每次修改代码都修改本地目录&#xff0c;则想配置日志目录的多环境支持 二、实现方案 1、application-local.yml配置 logging:config: classpath:logback-sprin…

leetcode刷题记录

1.二分法 class Solution { public:int search(vector<int> &nums, int target) {int left 0, right nums.size() - 1;while(left < right) {int mid left ((right - left) >> 1);if(nums[mid] > target) {right mid -1;} else if(nums[mid] < …

详解Linux手动释放缓存的方法

详解Linux手动释放缓存的方法 Linux释放内存的命令&#xff1a; sync echo 1 > /proc/sys/vm/drop_caches0&#xff1a;不释放&#xff08;系统默认值&#xff09; 1&#xff1a;释放页缓存 2&#xff1a;释放dentries和inodes 3&#xff1a;释放所有缓存 释放完内存后改回…

深入浅出Pytorch函数——torch.nn.Softmax

分类目录&#xff1a;《深入浅出Pytorch函数》总目录 相关文章&#xff1a; 机器学习中的数学——激活函数&#xff1a;Softmax函数 深入浅出Pytorch函数——torch.softmax/torch.nn.functional.softmax 深入浅出Pytorch函数——torch.nn.Softmax 将Softmax函数应用于 n n n…

消息中间件ActiveMQ介绍

一、消息中间件的介绍 介绍 ​ 消息队列 是指利用 高效可靠 的 消息传递机制 进行与平台无关的 数据交流&#xff0c;并基于 数据通信 来进行分布式系统的集成。 特点(作用) 应用解耦 异步通信 流量削峰 (海量)日志处理 消息通讯 …... 应用场景 根据消息队列的特点&a…

题目:2160.拆分数位后四位数字的最小和

​​题目来源&#xff1a; leetcode题目&#xff0c;网址&#xff1a;110. 平衡二叉树 - 力扣&#xff08;LeetCode&#xff09; 解题思路&#xff1a; 获得各位数字后&#xff0c;当较小的两个数字做为十位&#xff0c;较大的两个数字作为个位时所组成的两个两位数之和最小。…

【蓝图】p40-p43对象引用、变量有效性、实现键盘控制物体自转、简单点名系统

p40-p43对象引用、变量有效性、实现键盘控制物体自转、简单点名系统 p40对象引用、变量有效性p41实现键盘控制物体自转创建bool值控制旋转实现通过键盘控制自转 p42p43简单点名系统Get All Actors Of Class&#xff08;获得场景中所有该类的actor演员&#xff09;getFor Each L…

postgresql主从搭建

postgresql主从搭建 主从服务器分别安装好postgresql 主库 创建数据库热备帐号replica&#xff0c;密码123456为例&#xff0c;则执行以下命令 create role replica login replication encrypted password 123456;打开 pg_hba.conf 配置文件&#xff0c;设置 replica 用户白…

蓝桥杯专题-真题版含答案-【贪吃蛇长度】【油漆面积】【绘制圆】【高次方数的尾数】

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列点击跳转>蓝桥系列 &#x1f449;关于作者 专注于Android/Unity和各种游…

数据结构之图

一. 常见算法模板 1. 基础代码&#xff0c;具体释义后序有空补充 头文件 #ifndef __GRAPH__H__ #define __GRAPH__H__#include <algorithm> #include <climits> #include <cmath> #include <cstddef> #include <cstdlib> #include <ctime&…

(一)RabbitMQ概念-优势、劣势、应用场景 、AMQP、工作原理

Lison <dreamlison163.com>, v1.0.0, 2023.06.22 RabbitMQ概念-优势、劣势、应用场景 、AMQP、工作原理 文章目录 RabbitMQ概念-优势、劣势、应用场景 、AMQP、工作原理RabbitMQ概念RabbitMQ的优势RabbitMQ劣势RabbitMQ应用的场景RabbitMQ_AMQPRabbitMQ工作原理 RabbitM…

Flutter、Android Studio 安装详细步骤以及常错解决

目录 一、前言 二、介绍 三、安装 (一&#xff09;、安装Flutter SDK 1&#xff09;双击文件夹&#xff0c;打开之后就是这样&#xff1a;​编辑 2&#xff09;双击此文件&#xff1a;​编辑 3&#xff09;此过程问题&#xff1a; (二&#xff09;、配置 Flutter SDK 环…

国内疫情地图和省级疫情地图

基础地图演示 from pyecharts.charts import Mapfrom pyecharts.options import VisualMapOpts map Map() data [ ("北京", 99), ("上海", 199), ("湖南", 299), ("台湾", 199), ("安徽", 299), ("广州", 399…

Rust vs Go:常用语法对比(十三)

题图来自 Go vs. Rust: The Ultimate Performance Battle 241. Yield priority to other threads Explicitly decrease the priority of the current process, so that other execution threads have a better chance to execute now. Then resume normal execution and call f…

php-golang-rpc使用roadrunner-server/goridge/v3/pkg/rpc和php的spiral/goridge3.2实践

golang代码&#xff1a; go get github.com/roadrunner-server/goridge/v3 package main import ( "fmt" "net" "net/rpc" goridgeRpc "github.com/roadrunner-server/goridge/v3/pkg/rpc" ) type App struct{} func (s *App) Hi(na…

linux文件管理

1.目录架构介绍 1.存放命令相关的目录 # Windows: 以多根的方式组织文件 C: D: # Linux:以单根的方式组织文件 //bin&#xff0c; 普通用户使用的命令 /bin/ls, /bin/date /sbin&#xff0c;管理员使用的命令 /sbin/service,poweroff,useradd…只要看到bin路径&#xff0c;就应…

7.27 作业 QT

要求&#xff1a; 结果图&#xff1a; clock.pro: QT core gui QT texttospeechgreaterThan(QT_MAJOR_VERSION, 4): QT widgetsCONFIG c11# The following define makes your compiler emit warnings if you use # any Qt feature that has been marked deprecated …

yarn-session下的flink应用的提交与关闭

flink on yarn 部署 下载Flink安装包 https://flink.apache.org/downloads/ 解压安装包 cd /bigdata/opt/f/flink tar -zxvf flink-1.13.6-bin-scala_2.12.tgz mv flink-1.13.6 yarn_flink-1.13.6编辑conf目录下的flink-conf.yaml jobmanager.rpc.address: u122 jobmanage…

Bootstrap框架(组件)

目录 前言一&#xff0c;组件1.1&#xff0c;字体图标1.2&#xff0c;下拉菜单组件1.2.1&#xff0c;基本下拉菜单1.2.2&#xff0c;按钮式下拉菜单 1.3&#xff0c;导航组件1.3.1&#xff0c;选项卡导航1.3.2&#xff0c;胶囊式导航1.3.3&#xff0c;自适应导航1.3.4&#xff…