# VOLO

**类别：** ViT · **代码：** [`timm/models/volo.py`](https://github.com/huggingface/pytorch-image-models/blob/main/timm/models/volo.py) · **架构：** 11 · **预训练权重：** 11（11 个包含 ImageNet-1k 结果）

Vision Outlooker (VOLO) 在操作更粗粒度 token 的 transformer 阶段之前，添加了 outlook attention，用于编码来自局部邻域的细粒度特征。

## 论文

* [VOLO：用于视觉识别的 Vision Outlooker](https://arxiv.org/abs/2106.13112)

## 用法

请参阅[快速入门](../quickstart)了解如何加载预训练权重、进行图像预处理和微调，以及参阅[特征提取](../feature_extraction)了解如何将这些模型用作骨干网络。

```py
>>> import timm
>>> model = timm.create_model('volo_d1_224.sail_in1k', pretrained=True)
>>> data_config = timm.data.resolve_model_data_config(model)
```

## 模型 API 支持

| 功能 | `VOLO` |
|---|---|
| [`features_only=True` 特征图](../model_api#intermediate-features) | ✓（strides 16, 16, 16） |
| [`forward_intermediates()`](../model_api#intermediate-features) | ✓ |
| [`prune_intermediate_layers()`](../model_api#intermediate-features) | ✓ |
| [任意输入尺寸，无需更改](../model_api#input-size) | ✗ |
| [`set_input_size()`](../model_api#input-size) | ✗ |
| [`dynamic_img_size=True`](../model_api#input-size) | ✗ |
| [`set_grad_checkpointing()`](../model_api#training-hooks) | ✓ |
| [逐层学习率衰减（`group_matcher()`）](../model_api#training-hooks) | ✓ |
| [`reset_classifier()`](../model_api#classifier) | ✓ |

✓ 支持，✓ (square) 仅支持方形尺寸，✗ 不支持，– 无需支持（模型本身已接受任意输入尺寸）。通过在每个功能上运行随机初始化的模型（`VOLO` 使用 `volo_d1_224`，尺寸为 224）进行验证，预期同一类的其他架构表现相同。详情请参阅 [Model API](../model_api) 页面。

## 架构

| 架构 | 参数（M） | GMAC | 输入大小 | 预训练权重 |
|---|---:|---:|---:|---:|
| `volo_d1_224` | 26.63 | 6.94 | 224 | 1 |
| `volo_d1_384` | 26.78 | 22.75 | 384 | 1 |
| `volo_d2_224` | 58.68 | 14.34 | 224 | 1 |
| `volo_d2_384` | 58.87 | 46.17 | 384 | 1 |
| `volo_d3_224` | 86.33 | 20.78 | 224 | 1 |
| `volo_d3_448` | 86.63 | 96.33 | 448 | 1 |
| `volo_d4_224` | 192.96 | 44.34 | 224 | 1 |
| `volo_d4_448` | 193.41 | 197.13 | 448 | 1 |
| `volo_d5_224` | 295.46 | 72.40 | 224 | 1 |
| `volo_d5_448` | 295.91 | 315.06 | 448 | 1 |
| `volo_d5_512` | 296.09 | 425.09 | 512 | 1 |

GMACs 和参数量对应于每种架构的默认输入大小和分类器，数据来自[基准测试结果](https://github.com/huggingface/pytorch-image-models/tree/main/results)。

## 预训练权重

Top-1 是在所列评估规模下，来自 [`results-imagenet.csv`](https://github.com/huggingface/pytorch-image-models/blob/main/results/results-imagenet.csv) 的 ImageNet-1k 验证准确率，- 表示该权重没有 ImageNet-1k 结果（例如预训练权重或图文权重）。Classes 是预训练分类器的大小，对于没有分类器的权重则为无。

| 权重 | 输入大小 | Top-1（%） | 评估大小 | 类 | 许可证 | Hub |
|---|---:|---:|---:|---:|---|---|
| `volo_d1_224.sail_in1k` | 224 | 84.148 | 224 | 1000 | apache-2.0 | [timm](https://huggingface.co/timm/volo_d1_224.sail_in1k) |
| `volo_d1_384.sail_in1k` | 384 | 85.262 | 384 | 1000 | apache-2.0 | [timm](https://huggingface.co/timm/volo_d1_384.sail_in1k) |
| `volo_d2_224.sail_in1k` | 224 | 85.204 | 224 | 1000 | apache-2.0 | [timm](https://huggingface.co/timm/volo_d2_224.sail_in1k) |
| `volo_d2_384.sail_in1k` | 384 | 86.054 | 384 | 1000 | apache-2.0 | [timm](https://huggingface.co/timm/volo_d2_384.sail_in1k) |
| `volo_d3_224.sail_in1k` | 224 | 85.440 | 224 | 1000 | apache-2.0 | [timm](https://huggingface.co/timm/volo_d3_224.sail_in1k) |
| `volo_d3_448.sail_in1k` | 448 | 86.514 | 448 | 1000 | apache-2.0 | [timm](https://huggingface.co/timm/volo_d3_448.sail_in1k) |
| `volo_d4_224.sail_in1k` | 224 | 85.868 | 224 | 1000 | apache-2.0 | [timm](https://huggingface.co/timm/volo_d4_224.sail_in1k) |
| `volo_d4_448.sail_in1k` | 448 | 86.788 | 448 | 1000 | apache-2.0 | [timm](https://huggingface.co/timm/volo_d4_448.sail_in1k) |
| `volo_d5_224.sail_in1k` | 224 | 86.076 | 224 | 1000 | apache-2.0 | [timm](https://huggingface.co/timm/volo_d5_224.sail_in1k) |
| `volo_d5_448.sail_in1k` | 448 | 86.974 | 448 | 1000 | apache-2.0 | [timm](https://huggingface.co/timm/volo_d5_448.sail_in1k) |
| `volo_d5_512.sail_in1k` | 512 | 87.068 | 512 | 1000 | apache-2.0 | [timm](https://huggingface.co/timm/volo_d5_512.sail_in1k) |

