# GhostNet

**Kategori:** Efficient/Mobile · **Kod:** [`timm/models/ghostnet.py`](https://github.com/huggingface/pytorch-image-models/blob/main/timm/models/ghostnet.py) · **Mimariler:** 10 · **Önceden eğitilmiş ağırlıklar:** 5 (5 tanesi ImageNet-1k sonuçlarıyla)

GhostNet, özellik haritalarının bir kısmını ucuz işlemlerle (Ghost modülleri) üretir. GhostNetV2, uzun menzilli bağımlılıklar için DFC dikkatini ekler; GhostNetV3 ise eğitim sırasında yeniden parametrelendirme ve bilgi damıtma kullanır.

## Makaleler

* [GhostNet: Ucuz İşlemlerden Daha Fazla Özellik](https://arxiv.org/abs/1911.11907)
* [GhostNetV2: Uzun Menzilli Dikkat ile Ucuz İşlemi Geliştirme](https://arxiv.org/abs/2211.12905)
* [GhostNetV3: Kompakt Modeller İçin Eğitim Stratejilerinin İncelenmesi](https://arxiv.org/abs/2404.11202)

## Kullanım

Önceden eğitilmiş ağırlıkları yükleme, görüntü ön işleme ve ince ayar için [Hızlı Başlangıç](../quickstart) bölümüne, modelleri omurga olarak kullanmak için ise [Özellik Çıkarımı](../feature_extraction) bölümüne bakın.

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

## Model API desteği

| Özellik | `GhostNet` |
|---|---|
| [`features_only=True` özellik haritaları](../model_api#intermediate-features) | ✓ (adım 2, 4, 8, 16, 32) |
| [`forward_intermediates()`](../model_api#intermediate-features) | ✓ |
| [`prune_intermediate_layers()`](../model_api#intermediate-features) | ✓ |
| [Herhangi bir giriş boyutu, değişiklik gerekmez](../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) | ✓ |
| [Katman bazlı LR azaltma (`group_matcher()`)](../model_api#training-hooks) | ✓ |
| [`reset_classifier()`](../model_api#classifier) | ✓ |

✓ destekleniyor, ✓ (kare) yalnızca kare boyutlarda çalışır, ✗ desteklenmiyor, – gerekli değil (model zaten herhangi bir giriş boyutunu kabul eder). Her özellik, rastgele başlatılmış bir model üzerinde çalıştırılarak kontrol edilir (`GhostNet`, 224 boyutunda `ghostnet_050`), aynı sınıftaki diğer mimarilerin de aynı şekilde davranması beklenir. Ayrıntılar için [Model API](../model_api) sayfasına bakın.

## Mimariler

| Mimari | Parametreler (M) | GMAC'lar | Girdi boyutu | Önceden eğitilmiş ağırlıklar |
|---|---:|---:|---:|---:|
| `ghostnet_050` | 2.59 | 0.05 | 224 | 0 |
| `ghostnet_100` | 5.18 | 0.15 | 224 | 1 |
| `ghostnet_130` | 7.36 | 0.24 | 224 | 0 |
| `ghostnetv2_100` | 6.16 | 0.18 | 224 | 1 |
| `ghostnetv2_130` | 8.96 | 0.28 | 224 | 1 |
| `ghostnetv2_160` | 12.39 | 0.42 | 224 | 1 |
| `ghostnetv3_050` | 2.85 | 0.05 | 224 | 0 |
| `ghostnetv3_100` | 6.15 | 0.17 | 224 | 1 |
| `ghostnetv3_130` | 8.95 | 0.28 | 224 | 0 |
| `ghostnetv3_160` | 12.38 | 0.41 | 224 | 0 |

GMAC'lar ve parametre sayıları, her mimarinin varsayılan giriş boyutu ve sınıflandırıcısı içindir ve [benchmark sonuçlarından](https://github.com/huggingface/pytorch-image-models/tree/main/results) alınmıştır.

## Önceden eğitilmiş ağırlıklar

Top-1, belirtilen değerlendirme boyutunda [`results-imagenet.csv`](https://github.com/huggingface/pytorch-image-models/blob/main/results/results-imagenet.csv) dosyasındaki ImageNet-1k doğrulama doğruluğudur, - ağırlığın ImageNet-1k sonucu yoksa (ör. ön eğitim veya görsel-metin ağırlıkları). Classes, ön eğitilmiş sınıflandırıcının boyutudur; sınıflandırıcısı olmayan ağırlıklar için yoktur.

| Ağırlık | Girdi boyutu | En iyi 1 (%) | Değerlendirme boyutu | Sınıflar | Lisans | Hub |
|---|---:|---:|---:|---:|---|---|
| `ghostnet_100.in1k` | 224 | 73.958 | 224 | 1000 | apache-2.0 | [timm](https://huggingface.co/timm/ghostnet_100.in1k) |
| `ghostnetv2_100.in1k` | 224 | 75.186 | 224 | 1000 | apache-2.0 | [timm](https://huggingface.co/timm/ghostnetv2_100.in1k) |
| `ghostnetv2_130.in1k` | 224 | 76.746 | 224 | 1000 | apache-2.0 | [timm](https://huggingface.co/timm/ghostnetv2_130.in1k) |
| `ghostnetv2_160.in1k` | 224 | 77.836 | 224 | 1000 | apache-2.0 | [timm](https://huggingface.co/timm/ghostnetv2_160.in1k) |
| `ghostnetv3_100.in1k` | 224 | 76.936 | 224 | 1000 | apache-2.0 | [timm](https://huggingface.co/timm/ghostnetv3_100.in1k) |

