Tolstlkhin I., Houlsby N., Kolesnikov A., Beyer L., Zhai X., Unterthiner T., Yung J., Steiner A., Keysers D., Uszkoreit J., Lucic M., Dosovitskly A. MLP-mixer: an all-mlp architecture for vision. In International Conference on Learning Representations (ICLR), 2021.

CNN, Transformer, 现在直接用全连接层就可以了. 真的乱.

主要内容

如上图所示:

  1. Input: 和ViT一样, 首先将图片切割成一个个patch, 然后通过全连接层将每个patch映射为其对于的embeddings:

    \[X \in \mathbb{R}^{B \times T \times D},
    \]

    其中\(B\)是batch size, \(T\)即为patches的数目, \(D\)便是图中channels的大小.

  2. 将其通过Mixer Layer N次, 并经过global average pooling得到特征, 再通过全连接层得到logits.

  3. 输出类别.

其中, Mixer Layer的流程如下(考虑一个batch):

  1. 对每个patch进行独立的处理, 假设\(x_i\)为第\(i\)个patch(行向量):

    \[u_i = x_i + \sigma(\mathrm{LayerNorm}(x_i)W_1) W_2.
    \]
  2. 此时得到\(U \in \mathbb{R}^{B \times T \times D}\), 再假设\(u_j \in \mathbb{R}^T\)为第i个channel:

    \[y_j = u_j + \sigma(\mathrm{LayerNorm}(u_j)W_3) W_4.
    \]
  3. 最后得到输出\(Y\).

可以发现, MLP-Mixer 实际上将channel-wise和spatial-wise的操作拆分开来了, 这样即可获得很好的效果.

代码

原文代码

MLP-Mixer: An all-MLP Architecture for Vision的更多相关文章

  1. 5分钟就能学会的简单结构 | MLP-Mixer: An all-MLP Architecture for Vision | CVPR2021

    文章转自:微信公众号「机器学习炼丹术」 作者:炼丹兄(欢迎交流,共同进步) 联系方式:微信cyx645016617 论文名称:「MLP-Mixer: An all-MLP Architecture f ...

  2. MXNet官网案例分析--Train MLP on MNIST

    本文是MXNet的官网案例: Train MLP on MNIST. MXNet所有的模块如下图所示: 第一步: 准备数据 从下面程序可以看出,MXNet里面的数据是一个4维NDArray. impo ...

  3. "多层感知器"--MLP神经网络算法

    提到人工智能(Artificial Intelligence,AI),大家都不会陌生,在现今行业领起风潮,各行各业无不趋之若鹜,作为技术使用者,到底什么是AI,我们要有自己的理解. 目前,在人工智能中 ...

  4. paper 13:计算机视觉研究群体及专家主页汇总

    做机器视觉和图像处理方面的研究工作,最重要的两个问题:其一是要把握住国际上最前沿的内容:其二是所作工作要具备很高的实用背景.解决第一个问题 的办法就是找出这个方向公认最高成就的几个超级专家(看看他们都 ...

  5. Pytorch之Spatial-Shift-Operation的5种实现策略

    Pytorch之Spatial-Shift-Operation的5种实现策略 本文已授权极市平台, 并首发于极市平台公众号. 未经允许不得二次转载. 原始文档(可能会进一步更新): https://w ...

  6. Theano3.4-练习之多层感知机

    来自http://deeplearning.net/tutorial/mlp.html#mlp Multilayer Perceptron note:这部分假设读者已经通读之前的一个练习 Classi ...

  7. [原]如何用Android NDK编译FFmpeg

    我们知道在Ubuntu下直接编译FFmpeg是很简单的,主要是先执行./configure,接着执行make命令来编译,完了紧接着执行make install执行安装.那么如何使用Android的ND ...

  8. Coremicro Reconfigurable Embedded Smart Sensor Node

    A Coremicro Reconfigurable Embedded Smart Sensor Node has the capability of hosting intelligent algo ...

  9. 【论文翻译】NIN层论文中英对照翻译--(Network In Network)

    [论文翻译]NIN层论文中英对照翻译--(Network In Network) [开始时间]2018.09.27 [完成时间]2018.10.03 [论文翻译]NIN层论文中英对照翻译--(Netw ...

随机推荐

  1. Yarn 生产环境核心参数配置案例

    目录 Yarn 生产环境核心参数配置案例 需求 修改yarn-site.xml配置 分发 重启集群 执行WordCount程序 Yarn 生产环境核心参数配置案例 调整下列参数之前要拍摄Linux快照 ...

  2. Hadoop入门 完全分布式运行模式-集群配置

    目录 集群配置 集群部署规划 配置文件说明 配置集群 群起集群 1 配置workers 2 启动集群 总结 3 集群基本测试 上传文件到集群 查看数据真实存储路径 下载 执行wordcount程序 配 ...

  3. URL+http协议

  4. 监控网站是否异常的shell脚本

    本节内容:shell脚本监控网站是否异常,如有异常就自动发邮件通知管理员. 脚本检测流程,如下:1,检查网站返回的http_code是否等于200,如不是200视为异常.2,检查网站的访问时间,超过M ...

  5. spring基于注解的声明式事务控制

    package com.hope.service.impl;import com.hope.dao.IAccountDao;import com.hope.domain.Account;import ...

  6. Django auth

    auth是django一个自带的用户验证系统,使用它可以减少我们的开发流程. 基本使用 大体流程: 自定义类 from django.contrib.auth.models import Abstra ...

  7. hooks中,useState异步问题解决方案

    问题描述: 在hooks中,修改状态的是通过useState返回的修改函数实现的.它的功能类似于class组件中的this.setState().而且,这两种方式都是异步的.可是this.setSta ...

  8. 12.16 Java继承

    首先 :继承,指一个对象直接使用另一对象的属性和方法. 继承的格式: public class 子类名 entends 父类名{}   /* 表示前面的子类继承父类 */ 例:public class ...

  9. python之异步编程

    一.异步编程概述 异步编程是一种并发编程的模式,其关注点是通过调度不同任务之间的执行和等待时间,通过减少处理器的闲置时间来达到减少整个程序的执行时间:异步编程跟同步编程模型最大的不同就是其任务的切换, ...

  10. [BUUCTF]PWN——CmmC_Simplerop

    cmcc_simplerop 附件 步骤 例行检查,32位,开启了nx保护 本地试运行一下程序,查看一下大概的情况 32位ida载入,习惯性的检索程序里的字符串,看了个寂寞,从main函数开始看程序 ...