[NeurIPS 2022] Official code for "Focal Modulation Networks"
[NeurIPS 2022] Official code for "Focal Modulation Networks"
This is the official Pytorch implementation of FocalNets:
"Focal Modulation Networks" by Jianwei Yang, Chunyuan Li, Xiyang Dai, Lu Yuan and Jianfeng Gao.
We propose FocalNets: Focal Modulation Networks, an attention-free architecture that achieves superior performance than SoTA self-attention (SA) methods across various vision benchmarks. SA is an first interaction, last aggregation (FILA) process as shown above. Our Focal Modulation inverts the process by first aggregating, last interaction (FALI). This inversion brings several merits:
Before getting started, see what our FocalNets have learned to perceive images and where to modulate!
Finally, FocalNets are built with convolutional and linear layers, but goes beyond by proposing a new modulation mechanism that is simple, generic, effective and efficient. We hereby recommend:
Focal-Modulation May be What We Need for Visual Modeling!
| Model | Depth | Dim | Kernels | #Params. (M) | FLOPs (G) | Throughput (imgs/s) | Top-1 | Download |
|---|---|---|---|---|---|---|---|---|
| FocalNet-T | [2,2,6,2] | 96 | [3,5] | 28.4 | 4.4 | 743 | 82.1 | ckpt/config/log |
| FocalNet-T | [2,2,6,2] | 96 | [3,5,7] | 28.6 | 4.5 | 696 | 82.3 | ckpt/config/log |
| FocalNet-S | [2,2,18,2] | 96 | [3,5] | 49.9 | 8.6 | 434 | 83.4 | ckpt/config/log |
| FocalNet-S | [2,2,18,2] | 96 | [3,5,7] | 50.3 | 8.7 | 406 | 83.5 | ckpt/config/log |
| FocalNet-B | [2,2,18,2] | 128 | [3,5] | 88.1 | 15.3 | 280 | 83.7 | ckpt/config/log |
| FocalNet-B | [2,2,18,2] | 128 | [3,5,7] | 88.7 | 15.4 | 269 | 83.9 | ckpt/config/log |
| Model | Depth | Dim | Kernels | #Params. (M) | FLOPs (G) | Throughput (imgs/s) | Top-1 | Download |
|---|---|---|---|---|---|---|---|---|
| FocalNet-T | 12 | 192 | [3,5,7] | 5.9 | 1.1 | 2334 | 74.1 | ckpt/config/log |
| FocalNet-S | 12 | 384 | [3,5,7] | 22.4 | 4.3 | 920 | 80.9 | ckpt/config/log |
| FocalNet-B | 12 | 768 | [3,5,7] | 87.2 | 16.9 | 300 | 82.4 | ckpt/config/log |
| Model | Depth | Dim | Kernels | #Params. (M) | Download |
|---|---|---|---|---|---|
| FocalNet-L | [2,2,18,2] | 192 | [5,7,9] | 207 | ckpt/config |
| FocalNet-L | [2,2,18,2] | 192 | [3,5,7,9] | 207 | ckpt/config |
| FocalNet-XL | [2,2,18,2] | 256 | [5,7,9] | 366 | ckpt/config |
| FocalNet-XL | [2,2,18,2] | 256 | [3,5,7,9] | 366 | ckpt/config |
| FocalNet-H | [2,2,18,2] | 352 | [3,5,7] | 687 | ckpt/config |
| FocalNet-H | [2,2,18,2] | 352 | [3,5,7,9] | 689 | ckpt/config |
NOTE: We reorder the class names in imagenet-22k so that we can directly use the first 1k logits for evaluating on imagenet-1k. We remind that the 851th class (label=850) in imagenet-1k is missed in imagenet-22k. Please refer to this labelmap. More discussion found in this issue.
| Backbone | Kernels | Lr Schd | #Params. (M) | FLOPs (G) | box mAP | mask mAP | Download |
|---|---|---|---|---|---|---|---|
| FocalNet-T | [9,11] | 1x | 48.6 | 267 | 45.9 | 41.3 | ckpt/config/log |
| FocalNet-T | [9,11] | 3x | 48.6 | 267 | 47.6 | 42.6 | ckpt/config/log |
| FocalNet-T | [9,11,13] | 1x | 48.8 | 268 | 46.1 | 41.5 | [ckpt](https://projects4jw.blob.core.wi |
No open issues yet, or sync has not completed.