# Swin Transformer V2

**Категория:** ViT · **Код:** [`timm/models/swin_transformer_v2.py`](https://github.com/huggingface/pytorch-image-models/blob/main/timm/models/swin_transformer_v2.py) · **Архитектуры:** 12 · **Предобученные веса:** 12 (10 с результатами на ImageNet-1k)

Swin Transformer V2 масштабирует Swin с использованием остаточного post-norm, масштабированного косинусного внимания и логарифмически распределённого непрерывного смещения относительного положения, переносимого между различными размерами окон.

## Статьи

* [Swin Transformer V2: масштабирование ёмкости и разрешения](https://arxiv.org/abs/2111.09883)

## Использование

См. раздел [Быстрый старт](../quickstart) для загрузки предобученных весов, предобработки изображений и дообучения, а также раздел [Извлечение признаков](../feature_extraction) для использования моделей в качестве базовых архитектур.

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

## Поддержка Model API

| Возможность | `SwinTransformerV2` |
|---|---|
| [карты признаков `features_only=True`](../model_api#intermediate-features) | ✓ (шаги 4, 8, 16, 32) |
| [`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) | ✓ |
| [Послойное затухание LR (`group_matcher()`)](../model_api#training-hooks) | ✓ |
| [`reset_classifier()`](../model_api#classifier) | ✓ |

✓ поддерживается, ✓ (квадрат) работает только для квадратных размеров, ✗ не поддерживается, – не требуется (модель уже принимает входные данные любого размера). Проверено путём запуска каждой функции на случайно инициализированной модели (`SwinTransformerV2` с `swinv2_tiny_window16_256` при 256); ожидается, что другие архитектуры того же класса будут вести себя аналогично. Подробности см. на странице [Model API](../model_api).

## Архитектуры

| Архитектура | Параметры (млн) | GMACs | Размер входных данных | Предобученные веса |
|---|---:|---:|---:|---:|
| `swinv2_base_window8_256` | 87.92 | 20.37 | 256 | 1 |
| `swinv2_base_window12_192` | 109.28 | 11.90 | 192 | 1 |
| `swinv2_base_window12to16_192to256` | 87.92 | 22.02 | 256 | 1 |
| `swinv2_base_window12to24_192to384` | 87.92 | 55.25 | 384 | 1 |
| `swinv2_base_window16_256` | 87.92 | 22.02 | 256 | 1 |
| `swinv2_large_window12_192` | 228.77 | 26.17 | 192 | 1 |
| `swinv2_large_window12to16_192to256` | 196.74 | 47.81 | 256 | 1 |
| `swinv2_large_window12to24_192to384` | 196.74 | 116.15 | 384 | 1 |
| `swinv2_small_window8_256` | 49.73 | 11.58 | 256 | 1 |
| `swinv2_small_window16_256` | 49.73 | 12.82 | 256 | 1 |
| `swinv2_tiny_window8_256` | 28.35 | 5.96 | 256 | 1 |
| `swinv2_tiny_window16_256` | 28.35 | 6.68 | 256 | 1 |

GMACs и количество параметров указаны для размера входных данных и классификатора по умолчанию для каждой архитектуры, согласно [результатам бенчмарков](https://github.com/huggingface/pytorch-image-models/tree/main/results).

## Предобученные веса

Top-1 — это точность на валидационном наборе ImageNet-1k из [`results-imagenet.csv`](https://github.com/huggingface/pytorch-image-models/blob/main/results/results-imagenet.csv) для указанного размера оценки, - если у весов нет результата ImageNet-1k (например, веса для предобучения или изображения-текст). Classes — размер предобученного классификатора, none для весов без классификатора.

| Вес | Размер входных данных | Top-1 (%) | Размер выборки для оценки | Классы | Лицензия | Hub |
|---|---:|---:|---:|---:|---|---|
| `swinv2_base_window8_256.ms_in1k` | 256 | 84.246 | 256 | 1000 | mit | [timm](https://huggingface.co/timm/swinv2_base_window8_256.ms_in1k) |
| `swinv2_base_window12_192.ms_in22k` | 192 | - | - | 21841 | mit | [timm](https://huggingface.co/timm/swinv2_base_window12_192.ms_in22k) |
| `swinv2_base_window12to16_192to256.ms_in22k_ft_in1k` | 256 | 86.270 | 256 | 1000 | mit | [timm](https://huggingface.co/timm/swinv2_base_window12to16_192to256.ms_in22k_ft_in1k) |
| `swinv2_base_window12to24_192to384.ms_in22k_ft_in1k` | 384 | 87.142 | 384 | 1000 | mit | [timm](https://huggingface.co/timm/swinv2_base_window12to24_192to384.ms_in22k_ft_in1k) |
| `swinv2_base_window16_256.ms_in1k` | 256 | 84.608 | 256 | 1000 | mit | [timm](https://huggingface.co/timm/swinv2_base_window16_256.ms_in1k) |
| `swinv2_large_window12_192.ms_in22k` | 192 | - | - | 21841 | mit | [timm](https://huggingface.co/timm/swinv2_large_window12_192.ms_in22k) |
| `swinv2_large_window12to16_192to256.ms_in22k_ft_in1k` | 256 | 86.934 | 256 | 1000 | mit | [timm](https://huggingface.co/timm/swinv2_large_window12to16_192to256.ms_in22k_ft_in1k) |
| `swinv2_large_window12to24_192to384.ms_in22k_ft_in1k` | 384 | 87.474 | 384 | 1000 | mit | [timm](https://huggingface.co/timm/swinv2_large_window12to24_192to384.ms_in22k_ft_in1k) |
| `swinv2_small_window8_256.ms_in1k` | 256 | 83.844 | 256 | 1000 | mit | [timm](https://huggingface.co/timm/swinv2_small_window8_256.ms_in1k) |
| `swinv2_small_window16_256.ms_in1k` | 256 | 84.216 | 256 | 1000 | mit | [timm](https://huggingface.co/timm/swinv2_small_window16_256.ms_in1k) |
| `swinv2_tiny_window8_256.ms_in1k` | 256 | 81.824 | 256 | 1000 | mit | [timm](https://huggingface.co/timm/swinv2_tiny_window8_256.ms_in1k) |
| `swinv2_tiny_window16_256.ms_in1k` | 256 | 82.828 | 256 | 1000 | mit | [timm](https://huggingface.co/timm/swinv2_tiny_window16_256.ms_in1k) |

