# Veriler

Bu sayfa, `timm.data` alt paketinin API referans belgelerini ve sağladığı giriş hattının genel bakışını içerir: bir modelin ön işleme yapılandırmasını çözümleme, dönüşümleri oluşturma, veri kümeleri ve yükleyiciler oluşturma, Mixup / CutMix ve NaFlex değişken çözümleme yükleyicisi.

## Kullanım

Bir pipeline dört adımda oluşturulur: [`resolve_model_data_config`](#timm.data.resolve_model_data_config) modelin ön işleme yapılandırmasını okur, [`create_transform`](#timm.data.create_transform) eğitim veya değerlendirme dönüşümünü oluşturur, [`create_dataset`](#timm.data.create_dataset) ad ve kök yolu ile bir veri seti oluşturur ve [`create_loader`](#timm.data.create_loader) bir veri seti için dönüşümü ve veri yükleyiciyi oluşturur.

```python
import os
import tempfile

import torch
from PIL import Image

import timm
from timm.data import create_dataset, create_loader, create_transform, resolve_model_data_config

model = timm.create_model('resnet50', pretrained=False).eval()

# Preprocessing config from the model's pretrained_cfg, the default pretrained tag's config is attached to the model
# with or without pretrained weights.
data_config = resolve_model_data_config(model)
print(data_config)
# {'input_size': (3, 224, 224), 'interpolation': 'bicubic', 'mean': (0.485, 0.456, 0.406),
#  'std': (0.229, 0.224, 0.225), 'crop_pct': 0.95, 'crop_mode': 'center'}

# Eval transform for a PIL image, resize to 224 / crop_pct, center crop 224, to tensor and normalize.
transform = create_transform(**data_config, is_training=False)
img = Image.new('RGB', (320, 240), color=(200, 120, 40))
with torch.no_grad():
    output = model(transform(img).unsqueeze(0))  # (1, 1000)

# A folder dataset, <root>/<split>/<class>/<image>, two classes w/ four generated images each.
root = tempfile.mkdtemp()
for i, cls in enumerate(('cat', 'dog')):
    os.makedirs(os.path.join(root, 'validation', cls))
    for j in range(4):
        path = os.path.join(root, 'validation', cls, f'{j}.jpg')
        Image.new('RGB', (300, 200), color=(60 * i, 40 * j, 128)).save(path)

dataset = create_dataset('', root=root, split='validation')  # finds the 'validation' sub-folder
print(len(dataset), dataset.reader.class_to_idx)  # 8 {'cat': 0, 'dog': 1}

# The loader creates the transform from the same config and assigns it to the dataset.
loader = create_loader(dataset, **data_config, batch_size=4, use_prefetcher=False, num_workers=0)
with torch.no_grad():
    for images, targets in loader:
        output = model(images)  # images (4, 3, 224, 224), targets (4,)
```

[Hızlı başlangıç](../quickstart#image-augmentation), çıkarım için yapılandırma ve dönüştürme adımlarını adım adım açıklar.

Eğitim betiği (`train.py`), hattın her bölümü için bu seçenekleri sunar.

Girdi yapılandırması geçersiz kılma (`resolve_input_data_config`):

- **`--input-size`**, giriş biçimini `(C, H, W)` olarak ayarlar.
- **`--img-size`**, modelin kanal sayısını koruyarak `--input-size` parametresinin kare kısayoludur.
- **`--in-chans`** giriş kanallarını ayarlar.
- **`--interpolation`** yeniden boyutlandırma interpolasyonunu ayarlar.
- **`--mean`** normalizasyon ortalamasını ayarlar.
- **`--std`** normalizasyon standart sapmasını ayarlar.
- **`--crop-pct`** değerlendirme kırpma oranını ayarlar.

Veri seti oluşturma (`create_dataset`) ve hedef ayarları:

- **`--dataset`** veri setini ve okuyucuyu seçer.
- **`--data-dir`** veri seti kök dizinini ayarlar.
- **`--train-split`** eğitim bölmesini seçer.
- **`--val-split`** doğrulama bölmesini seçer.
- **`--class-map`** sınıf eşlemesini sağlar.
- **`--input-img-mode`** görüntü renk dönüşüm modunu ayarlar.
- **`--input-key`** görüntü alanını seçer.
- **`--target-key`** etiket alanını veya alanlarını seçer.
- **`--target-format`** sınıf endekslerini veya yoğun çoklu-sıcak hedefleri seçer.

Yükleme ve artırma seçenekleri (`create_loader`) şunları içerir:

- **`--aa`** otomatik artırma politikasını seçer.
- **`--reprob`** rastgele silme olasılığını ayarlar.
- **`--remode`** rastgele silme doldurma modunu seçer.
- **`--scale`** rastgele yeniden boyutlandırılmış kırpma ölçek aralığını ayarlar.
- **`--ratio`** rastgele yeniden boyutlandırılmış kırpma en-boy oranı aralığını ayarlar.
- **`--hflip`** yatay çevirme olasılığını ayarlar.
- **`--color-jitter`** renk titremesi gücünü ayarlar.
- **`--train-interpolation`**, eğitim yeniden boyutlandırma interpolasyonunu ayarlar.
- **`--workers`** yükleyici işçi sayısını belirler.
- **`--no-prefetcher`** ön yükleyiciyi devre dışı bırakır.

Mixup ve CutMix ([`Mixup`](#timm.data.Mixup)):

- **`--mixup`** Mixup alfasını ayarlar.
- **`--cutmix`**, CutMix alfasını ayarlar.
- **`--cutmix-minmax`**, CutMix kutu boyutu aralığını ayarlar.
- **`--mixup-prob`** karıştırma olasılığını ayarlar.
- **`--mixup-switch-prob`**, her iki yöntem etkinleştirildiğinde CutMix'in seçilme olasılığını belirler.
- **`--mixup-mode`** batch, pair veya element-wise karıştırmayı seçer.
- **`--smoothing`** etiket yumuşatmasını ayarlar.

Örnekler için [Scripts](../training_script) bölümüne bakın.

### Veri yapılandırması

[`resolve_data_config`](#timm.data.resolve_data_config), aşağıdaki anahtarlara sahip bir dict döndürür; bu anahtarlar `create_transform` ve `create_loader` argümanlarıyla eşleşir. `args` (örneğin, ayrıştırılmış komut satırı argümanlarının `vars(args)` ifadesiyle elde edilen bir dict) içinde ayarlanan değerler, varsayılan olarak `model.pretrained_cfg` olan `pretrained_cfg` argümanına göre önceliklidir. [`resolve_model_data_config`](#timm.data.resolve_model_data_config) ise modelin ilk argüman olarak geçtiği aynı işlevi görür.

Her ikisi de, kaynak kontrol noktasını (source checkpoint) tanımlayan, farklı bir `img_size` veya `in_chans` kullanmak üzere oluşturulmuş veya değiştirilmiş bir modeli değil, önceden eğitilmiş cfg'den giriş boyutunu ve kanalları okur. Eğitim, doğrulama ve çıkarım betikleri tarafından kullanılan [`resolve_input_data_config`](#timm.data.resolve_input_data_config), bunun yerine modelin mevcut girdisine göre çözümleme yapar: sabit giriş boyutuna sahip bir model her zaman mevcut boyutunu alır, modelin kanalları veya sabit boyutuyla çelişen açık `args` bir hata fırlatır ve kanal sayısıyla eşleşmeyen bir ortalama / standart sapma, ortalama değeriyle değiştirilir (bir uyarıyla birlikte).

| Anahtar | `args` anahtarları | Açıklama | Varsayılan |
|---|---|---|---|
| `input_size` | `input_size`, `img_size`, `in_chans` | `(C, H, W)` giriş boyutu. `use_test_size=True` kullanıldığında, yapılandırmanın `test_input_size` değeri varsa o kullanılır | `(3, 224, 224)` |
| `interpolation` | `interpolation` | Yeniden boyutlandırma interpolasyonu, `bilinear`, `bicubic`, ... | `bicubic` |
| `mean`, `std` | `mean`, `std` | Normalization, her kanal için tek bir değer tekrarlanır | ImageNet ortalama / std |
| `crop_pct` | `crop_pct` | Eval crop, görüntü `size` boyutuna kırpılmadan önce `size / crop_pct` boyutuna yeniden boyutlandırılır (`use_test_size=True` ile `test_crop_pct`) | `0.875` |
| `crop_mode` | `crop_mode` | Değerlendirme kırpma modu, `center`, `squash` veya `border` | `center` |

Çıktı `size` ve `scale_size = floor(size / crop_pct)` için değerlendirme kırpma modları:

| `crop_mode` | Davranış |
|---|---|
| `center` | En kısa kenarı `scale_size` boyutuna yeniden boyutlandırın (en-boy oranı korunur), ardından `size` boyutunda ortadan kırpın |
| `squash` | Her iki kenarı `scale_size` boyutuna yeniden boyutlandırın (en-boy oranı korunmaz), ardından `size` boyutuna ortadan kırpın |
| `border` | En uzun kenarı `scale_size` boyutuna yeniden boyutlandırın, ortadan kırpın ve ortalama renkle doldurun; tüm görüntü `crop_pct=1.0` olarak korunur |

### Dönüşümler

[`create_transform`](#timm.data.create_transform), torchvision `Compose` nesnesi döndürür. Değerlendirme dönüşümü, yukarıdaki gibi yeniden boyutlandırma ve kırpma işlemlerini uyguladıktan sonra girdiyi tensöre dönüştürür ve normalleştirir. Eğitim dönüşümü ise rastgele yeniden boyutlandırılmış kırpma (varsayılan olarak `scale=(0.08, 1.0)`, `ratio=(3/4, 4/3)`), yatay çevirme (`hflip=0.5`), renk sapması (`color_jitter=0.4`), isteğe bağlı `auto_augment` politikası, tensör dönüşümü ve normalleştirme ile rastgele silme işlemlerini içerir.

- **`train_crop_mode='rkrc'` veya `'rkrr'`**, rastgele yeniden boyutlandırılmış kırpma işlemini, en-boy oranını koruyan bir rastgele yeniden boyutlandırmayla değiştirir; ardından merkezden (`rkrc`) veya rastgele (`rkrr`) kırpma veya dolgu uygulanır.
- **`interpolation='random'`** (eğitim için `train.py` varsayılanı) her görsel için bilineer veya bikübik seçer.
- **`no_aug=True`** eğitim sürecini yalnızca yeniden boyutlandırma ve merkezden kırpma işlemlerine indirger.

| `auto_augment` | Artırma |
|---|---|
| `rand-m9-mstd0.5-inc1` | [`RandAugment`](https://arxiv.org/abs/1909.13719) ile [`rand_augment_transform`](#timm.data.rand_augment_transform) |
| `augmix-m5-w4-d2` | [AugMix](https://arxiv.org/abs/1912.02781), [`augment_and_mix_transform`](#timm.data.auto_augment.augment_and_mix_transform) ile |
| `original`, `originalr`, `v0`, `v0r`, `3a` | [AutoAugment](https://arxiv.org/abs/1805.09501) politikası, [`auto_augment_transform`](#timm.data.auto_augment_transform) ile |

RandAugment seçenek belirteçleri:

- **`m`** büyüklüğü ayarlar (varsayılan 10).
- **`n`**, görüntü başına işlem sayısını belirler (varsayılan 2).
- **`p`**, işlem başına olasılığı ayarlar (varsayılan 0.5).
- **`mstd`** büyüklük gürültüsü standart sapmasını ayarlar.
- **`inc1`**, büyüklükle birlikte şiddeti artan işlemleri seçer.
- **`t<name>`**, op set'ini seçer (`weights`, `3a`, `3aw`).

AugMix seçenek jetonları:

- **`m`** önem derecesini ayarlar (varsayılan 3).
- **`w`** genişliği ayarlar (varsayılan 3).
- **`d`** derinliği ayarlar (varsayılan -1, rastgele 1-3).
- **`b1`** karışık artırma (blended augmentation) etkinleştirir.
- **`mstd`** büyüklük gürültüsü standart sapmasını ayarlar.

AutoAugment, `mstd` değerlerini kabul eder, örneğin `original-mstd0.5`.

Dönüştür davranışı:

- `auto_augment` ayarlandığında renk sapması devre dışı bırakılır, ancak dize `3a` içermediği sürece.
- [`RandomErasing`](#timm.data.random_erasing.RandomErasing) (`re_prob`, `re_count`) normalize edilmiş tensör üzerinde çalışır. `re_mode`, sıfırlarla doldurur (`const`, varsayılan), bölge başına rastgele normal bir renk kullanır (`rand`) veya rastgele normal pikseller üretir (`pixel`, `train.py` varsayılanı).
- `use_prefetcher=True`, dönüştürmeyi `uint8` tensörüyle sonlandırır; normalizasyon ve rastgele silme işlemleri ardından yükleyici tarafından cihaz üzerinde yapılır.
- `create_transform` ve `create_loader`, modelin değerleri yerine varsayılan olarak `bilinear` interpolasyon ve ImageNet ortalama / standart sapma değerlerini kullanır. Modelin ön eğitimiyle eşleşmesi için çözümlenmiş veri yapılandırmasını iletin.

### Veri Setleri

[`create_dataset`](#timm.data.create_dataset), `name` önekininden veri seti uygulamasını ve okuyucuyu seçer:

| `name` | Veri seti | `root` | Gereksinimler |
|---|---|---|---|
| `''` veya önek yok | [`ImageDataset`](#timm.data.ImageDataset), sınıf alt klasörlerindeki görüntüler (özyinelemeli olarak aranır, yaprak klasör adı sınıfı belirtir) veya aynı yapıya sahip tek bir `.tar` dosyası | Veri kümesi klasörü veya `.tar` dosyası | |
| `torch/<name>` | torchvision `cifar10`, `cifar100`, `mnist`, `kmnist`, `fashion_mnist`, `qmnist`, `inaturalist` (`inat`), `places365`, `imagenet` veya `image_folder` (`folder`) | torchvision veri seti kökü | |
| `hfds/<name>` | Hugging Face Hub veri setinde (veya yerel yolda) `datasets.load_dataset` ile [`ImageDataset`](#timm.data.ImageDataset) | Önbellek dizini (isteğe bağlı) | `datasets` |
| `hfids/<name>` | [`IterableImageDataset`](#timm.data.IterableImageDataset), Hugging Face veri seti, akış olarak veya `download=True` ile önce indirilip hazırlanarak | Önbellek dizini (isteğe bağlı) | `datasets` |
| `tfds/<name>` | TensorFlow Datasets'te [`IterableImageDataset`](#timm.data.IterableImageDataset), `download=True` ile indirir ve oluşturur | TFDS veri dizini | `tensorflow`, `tensorflow-datasets` |
| `wds/<name>` | WebDataset tar shard'larında [`IterableImageDataset`](#timm.data.IterableImageDataset) | `_info.json` (veya `info.json`) içeren, bölümleri (splits) açıklayan Shard klasörü | `webdataset` |

Veri seti seçenekleri:

- **`split`** veri seti bölmesini seçer (varsayılan `validation`). WebDataset için örnek sayısı içeren bir shard deseni de olabilir, `'imagenet-train-{0000..1023}.tar|1281167'`.
- **`search_split=True`** (varsayılan), klasör veri kümelerinin `root` içinde `split` adlı alt klasörü aramasını sağlar; bulunamazsa, bir eğitim (`train`, `training`) veya değerlendirme (`val`, `valid`, `validation`, `eval`, `evaluation`) bölümünün eş anlamlısını arar.
- **`add_img_extensions`**, varsayılan görüntü uzantılarına (`.png`, `.jpg` ve `.jpeg`) ekler.
- **`class_map`**, bir sözlük, bir `.txt` (satır başına bir sınıf) veya bir `.pkl` dosyası kullanarak sınıf adlarını indekslere yeniden eşler.

Yinelenebilir veri kümeleri (`hfids`, `tfds`, `wds`) ayrıca şunları alır:

- **`is_training`** karıştırma işlevini etkinleştirir.
- Eğitim sırasında **`batch_size`**, her işçinin örnek payını tam partilere yuvarlar.
- **`num_samples`**, okuyucunun örnek sayısını belirleyemediği durumlarda (`hfids` bölünme bilgisi olmadan) zorunlu olan örnek sayısını ayarlar.
- **`seed`** rastgele tohumu ayarlar.
- **`repeats`**, epoch başına örnek sayısını çarpar; okuyucular verinin üzerinden o kadar kez geçer.

Her epoch'ta yeniden karıştırmak için `dataset.set_epoch()` çağrısı yapın.

Diğer anahtar kelime argümanları okuyucuya aktarılır. Hugging Face, TFDS ve WebDataset okuyucuları için:

- **`input_key`**, görüntü alanını seçer (varsayılan olarak `image`, `wds` için `jpg`, `png` veya `webp` görüntüsü).
- **`target_key`**, etiket alanını seçer (varsayılan olarak `label`, `wds` için `.cls` dosyası veya `target_key` ile adlandırılan bir `.json` yan dosya alanı). Virgülle ayrılmış bir değer, sınıf başına bir ikili alan okur.
- **`target_format='multihot'`**, çok etiketli verilerde sınıf endeksleri listeleri yerine yoğun çoklu-sıcak (multi-hot) vektörleri okur.
- **`target_transform=MultiLabelTarget(num_classes)`**, hedefleri float çoklu-sıcak tensörler olarak kodlar. Çoklu-sıcak alanlar için [`MultiLabelTarget`](#timm.data.MultiLabelTarget) içine `dense=True` parametresini iletin.

Klasör ve tar okuyucuları tek sınıf dizinleri üretir. Ayrıntılar için [çok etiketli sınıflandırma](../training_script#multi-label-classification) bölümüne bakın.

### Yükleyiciler

[`create_loader`](#timm.data.create_loader), kendi argümanlarından `create_transform` ile dönüştürmeyi oluşturur, bunu `dataset.transform` olarak atar (mevcut bir dönüştürme varsa değiştirir) ve bir `DataLoader` döndürür. Eğitim yükleyicileri (`is_training=True`) karıştırır ve son eksik batch'i atar.

- **Önden yükleyici (Prefetcher).** `use_prefetcher=True` (varsayılan) olduğunda veri kümesi `uint8` tensörleri üretir, partiler `device` (varsayılan `cuda`, CUDA için yan bir akışta) üzerine taşınır, `img_dtype` türüne dönüştürülür, normalize edilir ve orada rastgele silme (erasing) uygulanır. `device` değerini eğitim cihazına ayarlayın veya normalize edilmiş tensörlerden oluşan düz bir `DataLoader` için `use_prefetcher=False` kullanın.
- **Dağıtık.** `distributed=True`, map tarzı eğitim veri kümeleri için `DistributedSampler` (veya `num_aug_repeats` ile tekrarlı artırma örnekleyici) ve her işlemi aynı sayıda örneğe dolduran, doğrulama sonuçlarını hafifçe değiştirebilen sıralı bir örnekleyici kullanır. İteratif veri kümeleri, kendilerini işlemler ve işçiler arasında paylaştırır.
- **Collate.** `collate_fn`, varsayılanı (`fast_collate` prefetcher ile, `default_collate` olmadan) değiştirir, örneğin [`FastCollateMixup`](#timm.data.FastCollateMixup) ile.
- **Artırma bölümleri.** JSD kaybı ile AugMix için (`--aug-splits`), veri setini [`AugMixDataset`](#timm.data.AugMixDataset)`(dataset, num_splits=n)` ile sarmalayın ve `num_aug_splits=n` parametresini iletin. Her batch, temiz bir bölüm ve `n - 1` artırılmış bölüm içerir; bunlar prefetcher tarafından batch boyutu boyunca birleştirilir.
- **Planlı çözünürlük.** `input_size_choices` (`--train-img-sizes`), her batch için giriş boyutunu seçer; isteğe bağlı olarak her seçim için bir batch boyutu (`batch_size_choices`) ve ilk seçimden son seçime kadar bir `progressive` zaman çizelgesi kullanılabilir.

### Mixup ve CutMix

[`Mixup`](#timm.data.Mixup), yükleyiciden sonra cihazda normalize edilmiş görüntü partisini karıştırır. [`FastCollateMixup`](#timm.data.FastCollateMixup) aynı argümanları alır ve yükleyici işçilerinde birleştirme sırasında `uint8` görüntüleri karıştırır; bunun için ön yükleyici (prefetcher) gereklidir. Her ikisi de `timm.loss.SoftTargetCrossEntropy` gibi yumuşak hedef kaybı ile kullanılmak üzere, `label_smoothing` (varsayılan `0.1`) uygulanmış yoğun `(batch_size, num_classes)` hedefleri döndürür ve çift sayı bir parti boyutu gerektirir.

```python
from timm.data import Mixup, FastCollateMixup

# Continuing the example above.
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
mixup_args = dict(mixup_alpha=0.8, cutmix_alpha=1.0, label_smoothing=0.1, num_classes=1000)

# Prefetcher enabled (default), mixed in the loader's collate.
loader = create_loader(
    dataset,
    **data_config,
    batch_size=4,
    is_training=True,
    collate_fn=FastCollateMixup(**mixup_args),
    device=device,
)
for images, targets in loader:
    ...  # images normalized on device, targets (4, 1000)

# Prefetcher disabled, mixed in the training loop.
loader = create_loader(dataset, **data_config, batch_size=4, is_training=True, use_prefetcher=False)
mixup_fn = Mixup(**mixup_args)
for images, targets in loader:
    images, targets = mixup_fn(images.to(device), targets.to(device))
```

Mixup ve CutMix kontrolleri:

- **`mixup_alpha > 0`** Mixup'ı etkinleştirir.
- **`cutmix_alpha > 0`** CutMix'i etkinleştirir.
- **`cutmix_minmax`**, bir kutu boyutu aralığı ile CutMix'i etkinleştirir.
- **`switch_prob`**, her iki yöntem etkinleştirildiğinde CutMix'in seçilme olasılığını belirler.
- **`prob`** karıştırma olasılığını belirler.
- **`mode`**, parametreleri `batch` başına bir kez, `pair` (çift) başına veya `elem` (öğe) başına çizer.
- **`multi_label=True`**, yoğun çok etiketli hedefleri karıştırır ve her etiketi 0.5'e doğru yumuşatır.
- **`mixup_enabled = False`** karıştırmayı kapatır, örneğin son dönemler için (`--mixup-off-epoch`). `FastCollateMixup` için bu değer işçi süreçlerinde okunur; kalıcı işçiler, başladıkları değeri korur.

### NaFlex değişken çözünürlük

[`create_naflex_loader`](#timm.data.create_naflex_loader), NaFlex yama girdileri alan modeller (ör. `naflexvit_*` modelleri) için görüntüleri sabit kare boyutuna yeniden boyutlandırmadan, değişken uzunlukta yama dizileri olarak yükler. Her parti, `patches`, `patch_coord`, `patch_valid` ve `seq_len` anahtarlarından oluşan bir sözlüktür ve partinin dizi uzunluğuna kadar dolgu (padding) uygulanır.

- **Eğitim.** Veri kümesi, [`NaFlexMapDatasetWrapper`](#timm.data.NaFlexMapDatasetWrapper) ile sarılır (yalnızca map-style veri kümeleri için); bu sarmalayıcı her batch için `train_seq_lens` listesinden birini seçer ve her görüntüyü o kadar patch'e sığacak şekilde rastgele yeniden boyutlandırır ve kırpılır. `batch_size`, en uzun dizi uzunluğu için batch boyutudur; daha kısa uzunluklar, batch başına token sayısının yaklaşık olarak sabit kalması için orantılı olarak daha büyük batch'ler alır (8'in katına yuvarlanır). `patch_size_choices` (`patch_size_choice_probs` ile birlikte), destekleyen modeller için patch boyutunu da batch başına değiştirir.
- **Değerlendirme.** Görseller, verilen `patch_size` ile `max_seq_len` yamaya sığacak şekilde yeniden boyutlandırılır (değerlendirme için zorunludur) ve `max_seq_len` uzunluğuna dolgu yapılır.
- **Mixup.** `mixup_fn` olarak [`NaFlexMixup`](#timm.data.NaFlexMixup) geçirin; bu, her batch içinde karıştırma yapar ve `mode` veya `cutmix_minmax` parametrelerini desteklemez.

`train.py` seçenekleri şunlardır:

- **`--naflex-loader`** NaFlex yükleyicisini etkinleştirir.
- **`--naflex-train-seq-lens`** eğitim dizisi uzunluklarını ayarlar.
- **`--naflex-max-seq-len`** en yüksek değerlendirme dizisi uzunluğunu ayarlar.
- **`--naflex-patch-sizes`**, değişken yama boyutlu eğitim için yama boyutlarını ayarlar.
- **`--naflex-patch-size-probs`**, bu yama boyutları için olasılıkları ayarlar.
- **`--naflex-loss-scale`**, parti boyutuna göre kayıp ölçeklemesini seçer (`none`, `sqrt` veya `linear`).

## API

### Veri yapılandırması[[timm.data.resolve_data_config]]

#### timm.data.resolve_data_config[[timm.data.resolve_data_config]]

```python
timm.data.resolve_data_config(args = None, pretrained_cfg = None, model = None, use_test_size = False, verbose = False)
```

[Kaynak](https://github.com/huggingface/pytorch-image-models/blob/v1.0.31/timm/data/config.py#L8)

#### timm.data.resolve_model_data_config[[timm.data.resolve_model_data_config]]

```python
timm.data.resolve_model_data_config(model, args = None, pretrained_cfg = None, use_test_size = False, verbose = False)
```

[Kaynak](https://github.com/huggingface/pytorch-image-models/blob/v1.0.31/timm/data/config.py#L103)

**Parametreler:**

model (nn.Module) : model örneği

args (dict) : sözdizimi biçiminde komut satırı argümanları / yapılandırma (pretrained_cfg'yi geçersiz kılar)

pretrained_cfg (dict) : önceden eğitilmiş model yapılandırması (modele bağlı olan pretrained_cfg değerini geçersiz kılar)

use_test_size (bool) : varsayılan eğitim çözünürlüğü yerine test zamanı giriş çözünürlüğünü (varsa) kullanın

verbose (bool) : çözümlenen değerlerin ek günlük kaydını etkinleştirir

**Dönüş:**

config sözlüğü

Model Veri Yapılandırmasını Çöz Bu, modelin başa alınması için argümanların yeniden sıralanmış haliyle resolve_data_config()'e eşdeğerdir.

#### timm.data.resolve_input_data_config[[timm.data.resolve_input_data_config]]

```python
timm.data.resolve_input_data_config(model, args: typing.Optional[typing.Dict[str, typing.Any]] = None, pretrained_cfg: typing.Optional[typing.Dict[str, typing.Any]] = None, use_test_size: bool = False, verbose: bool = False)
```

[Kaynak](https://github.com/huggingface/pytorch-image-models/blob/v1.0.31/timm/data/model_config.py#L17)

Ön işleme işlemlerini, mevcut modelin girdi kısıtlamalarına göre çözümlen.

Sabit boyutlar ve kanallar, açık isteklerle uyumlu olmalıdır. Esnek modeller, üstü yazılmadıkça eğitim/test ön işleme önerilerini korur. Normalizasyon, önceden yükleme yükleyicilerinin mevcut kanal uyarlama politikasını kullanır.

### Dönüşümler[[timm.data.create_transform]]

#### timm.data.create_transform[[timm.data.create_transform]]

```python
timm.data.create_transform(input_size: typing.Union[int, typing.Tuple[int, int], typing.Tuple[int, int, int]] = 224, is_training: bool = False, no_aug: bool = False, train_crop_mode: typing.Optional[str] = None, scale: typing.Optional[typing.Tuple[float, float]] = None, ratio: typing.Optional[typing.Tuple[float, float]] = None, hflip: float = 0.5, vflip: float = 0.0, color_jitter: typing.Union[float, typing.Tuple[float, ...]] = 0.4, color_jitter_prob: typing.Optional[float] = None, grayscale_prob: float = 0.0, gaussian_blur_prob: float = 0.0, auto_augment: typing.Optional[str] = None, interpolation: str = 'bilinear', mean: typing.Tuple[float, ...] = (0.485, 0.456, 0.406), std: typing.Tuple[float, ...] = (0.229, 0.224, 0.225), re_prob: float = 0.0, re_mode: str = 'const', re_count: int = 1, re_num_splits: int = 0, crop_pct: typing.Optional[float] = None, crop_mode: typing.Optional[str] = None, crop_border_pixels: typing.Optional[int] = None, tf_preprocessing: bool = False, use_prefetcher: bool = False, normalize: bool = True, separate: bool = False, naflex: bool = False, patch_size: typing.Union[int, typing.Tuple[int, int]] = 16, max_seq_len: int = 576, patchify: bool = False, patchify_channels_last: bool = True, patchify_flatten: bool = True)
```

[Kaynak](https://github.com/huggingface/pytorch-image-models/blob/v1.0.31/timm/data/transforms_factory.py#L387)

**Parametreler:**

input_size : Hedef giriş boyutu (kanallar, yükseklik, genişlik) tuple'ı veya boyut skaleri.

is_training : Eğitim (rastgele) dönüşümlerini döndürür.

no_aug : Eğitim için artırma işlemini devre dışı bırakın (hata ayıklama için faydalıdır).

train_crop_mode : Rastgele kırpma modu eğitimi ('rrc', 'rkrc', 'rkrr').

scale : Rastgele yeniden boyutlandırma ölçek aralığı (kırpma alanı, < 1.0 => yakınlaştırma).

ratio : Rastgele en-boy oranı aralığı (RRC için kırpma oranı, RKR için oran ayarlama faktörü).

hflip : Yatay çevirme olasılığı.

vflip : Dikey çevirme olasılığı.

color_jitter : Rastgele renk titremesi bileşen faktörleri (parlaklık, kontrast, doygunluk, ton). Skaler, (scalar,) * 3 olarak uygulanır (ton yok).

color_jitter_prob : None değilse, bu olasılıkla renk karışıklığı uygulayın (SimCLR benzeri artırma için).

grayscale_prob : Görüntüyü gri tona dönüştürme olasılığı (SimCLR benzeri artırmalar için).

gaussian_blur_prob : Gauss bulanıklığı uygulama olasılığı (SimCLR benzeri artırmalar için).

auto_augment : Otomatik artırma yapılandırma dizesi (bkz. auto_augment.py).

interpolation : Görüntü interpolasyon modu.

mean : Görüntü normalizasyonu ortalaması.

std : Görüntü normalizasyonu standart sapması.

re_prob : Rastgele silme olasılığı.

re_mode : Rastgele silme doldurma modu.

re_count : Rastgele silme bölgelerinin sayısı.

re_num_splits : Rastgele silme işleminin batch boyutu üzerinden dağıtımını kontrol eder.

crop_pct : Çıkarım kırpma yüzdesi (çıktı boyutu / yeniden boyutlandırma boyutu).

crop_mode : Çıkarım kırpma modu. ['squash', 'border', 'center'] değerlerinden biri. None olduğunda varsayılan olarak 'center' kullanılır.

crop_border_pixels : Çıkarım sırasında, orijinal görüntünün kenarında belirtilen # piksel genişliğinde bir kenar boşluğu bırakılır.

tf_preprocessing : Model taşımalarını test etmek için TF 1.0 çıkarım ön işleme kullanın

use_prefetcher : Ön yükleyici etkin. Görseli tensöre dönüştürmeyin veya normalize etmeyin.

normalize : Sağlanan ortalama/standart sapma ile normalizasyon tensörü çıktısı (prefetcher kullanılmıyorsa).

separate : Çıktı dönüşümleri 3 aşamalı bir demette (tuple) yapılır.

patchify : Çıktıyı önceden yükleyiciye (prefetcher) güvenmek yerine parçalara ayırın (patchify).

patchify_channels_last : Her yama içinde channels-last yerleşimini kullanın.

patchify_flatten : Değerlendirme yamalarını vektörlere düzleştirir. Modelin yama boyutu interpolasyonu için uzamsal boyutlara ihtiyaç duyması durumunda devre dışı bırakın.

**Dönüş:**

Bileşik dönüşümler veya bunların bir demeti

#### timm.data.rand_augment_transform[[timm.data.rand_augment_transform]]

```python
timm.data.rand_augment_transform(config_str: str, hparams: typing.Optional[typing.Dict] = None, transforms: typing.Union[str, typing.Dict, typing.List, NoneType] = None)
```

[Kaynak](https://github.com/huggingface/pytorch-image-models/blob/v1.0.31/timm/data/auto_augment.py#L762)

**Parametreler:**

config_str (str) : Rastgele artırma yapılandırmasını tanımlayan dize. Tire ('-') ile ayrılmış birden fazla bölümden oluşur. İlk bölüm, rand augment'in belirli varyantını tanımlar (şu anda yalnızca 'rand'). Sıralaması önemli olmayan kalan bölümler şunları belirler: * 'm' - rand augment'in tamsayı büyüklüğü * 'n' - tamsayı katman sayısı (görsel başına seçilen dönüştürme işlemlerinin sayısı) * 'p' - her katmanın uygulanma olasılığı (varsayılan 0.5) * 'mstd' - uygulanan büyüklük gürültüsünün kayan sapması, sonsuz (veya > 100) ise düzgün örneklem * 'mmax' - büyüklüğün üst sınırını  _LEVEL_DENOM (10) varsayılanından farklı bir değere ayarla * 'inc' - tamsayı (bool), büyüklükle birlikte şiddeti artan artırma işlemlerini kullan (varsayılan: 0) * 't' - kullanılacak dönüştürme setinin str adı

hparams (dict) : RandAugmentation şeması için diğer hparam'ler (kwargs)

**Dönüş:**

PyTorch ile uyumlu bir Transform

Bir RandAugment dönüşümü oluşturun

Örnekler:
- `'rand-m9-n3-mstd0.5'`, büyüklüğü 9, 3 katman ve büyüklük standart sapması 0.5 olan RandAugment'tir.
- `'rand-mstd1-tweights'`, varsayılan büyüklük 10 ve 2 katman ile, büyüklük std'si 1.0 ve ağırlıklı dönüşüm seçimine sahip RandAugment'tir.

#### timm.data.auto_augment_transform[[timm.data.auto_augment_transform]]

```python
timm.data.auto_augment_transform(config_str: str, hparams: typing.Optional[typing.Dict] = None)
```

[Kaynak](https://github.com/huggingface/pytorch-image-models/blob/v1.0.31/timm/data/auto_augment.py#L586)

**Parametreler:**

config_str : Otomatik artırma yapılandırmasını tanımlayan bir dize. Tire ('-') ile ayrılmış birden fazla bölümden oluşur. İlk bölüm, AutoAugment politikasını (bunlardan biri: 'v0', 'v0r', 'original', 'originalr') tanımlar. Kalan bölümler ise diğer argümanları tanımlar * 'mstd' - uygulanan büyüklük gürültüsünün kayan standart sapması

hparams : AutoAugmentation şeması için diğer hparam'ler (kwargs)

**Dönüş:**

PyTorch ile uyumlu bir Transform

AutoAugment dönüşümü oluşturun

Örnekler:
- `'original-mstd0.5'`, orijinal politika ve 0.5 büyüklük standart sapmasına sahip AutoAugment'tir.

#### timm.data.auto_augment.augment_and_mix_transform[[timm.data.auto_augment.augment_and_mix_transform]]

```python
timm.data.auto_augment.augment_and_mix_transform(config_str: str, hparams: typing.Optional[typing.Dict] = None)
```

[Kaynak](https://github.com/huggingface/pytorch-image-models/blob/v1.0.31/timm/data/auto_augment.py#L948)

**Parametreler:**

config_str (str) : Rastgele artırma yapılandırmasını tanımlayan dize. Tire ('-') ile ayrılmış birden fazla bölümden oluşur. İlk bölüm, rand augment'in belirli varyantını tanımlar (şu anda yalnızca 'rand'). Sıralaması önemli olmayan kalan bölümler, 'm' - artırma karışımının tamsayı büyüklüğünü (ağırliğini) (varsayılan: 3) 'w' - artırma zincirinin tamsayı genişliğini (varsayılan: 3) 'd' - artırma zincirinin tamsayı derinliğini (-1 rastgele [1, 3] aralığıdır, varsayılan: -1) 'b' - tamsayı (bool), zincirin her dalını son karışım olmadan sonuca karıştırır, daha az CPU kullanır (varsayılan: 0) 'mstd' - uygulanan büyüklük gürültüsünün kayan sapma (std deviation) değeri (varsayılan: 0) belirtir. Ör: 'augmix-m5-w4-d2', ağırliği 5, zincir genişliği 4, zincir derinliği 2 olan AugMix sonucunu verir

hparams : Augmentation dönüşümleri için diğer hparams (kwargs)

**Dönüş:**

PyTorch ile uyumlu bir Transform

AugMix PyTorch dönüşümü oluşturun

#### timm.data.random_erasing.RandomErasing[[timm.data.random_erasing.RandomErasing]]

```python
timm.data.random_erasing.RandomErasing(probability = 0.5, min_area = 0.02, max_area = 0.3333333333333333, min_aspect = 0.3, max_aspect = None, mode = 'const', min_count = 1, max_count = None, num_splits = 0, device = 'cuda')
```

[Kaynak](https://github.com/huggingface/pytorch-image-models/blob/v1.0.31/timm/data/random_erasing.py#L26)

**Parametreler:**

probability : Random Erasing işleminin uygulanma olasılığı.

min_area : Girdi görüntüsü alanına göre silinmiş alanın minimum yüzdesi.

max_area : Girdi görüntüsü alanına göre silinmiş alanın maksimum yüzdesi.

min_aspect : Silinen alanın minimum en-boy oranı.

mode : piksel renk modu, 'const', 'rand' veya 'pixel' değerlerinden biri 'const' - silme bloğu, tüm kanallar için 0 sabit rengine sahiptir 'rand' - silme bloğu, kanal başına aynı rastgele (normal) rengine sahiptir 'pixel' - silme bloğu, piksel başına rastgele (normal) rengine sahiptir

Görselde rastgele bir dikdörtgen bölge seçer ve piksellerini siler. Zhong ve ark. tarafından önerilen 'Random Erasing Data Augmentation'. Bkz. https://arxiv.org/pdf/1708.04896.pdf

Bu RandomErasing varyantı, veri seti ortalaması ve standart sapması ile normalize edilmiş bir parti veya tek görüntü tensörüne uygulanmak üzere tasarlanmıştır.

max_count: görüntü başına silme bloklarının maksimum sayısı, kutu başına alan count ile ölçeklenir. Görüntü başına sayı, 1 ile bu değer arasında rastgele seçilir.

### Veri Setleri[[timm.data.create_dataset]]

#### timm.data.create_dataset[[timm.data.create_dataset]]

```python
timm.data.create_dataset(name: str, root: typing.Optional[str] = None, split: str = 'validation', search_split: bool = True, class_map: dict = None, load_bytes: bool = False, is_training: bool = False, download: bool = False, batch_size: int = 1, num_samples: typing.Optional[int] = None, seed: int = 42, repeats: int = 0, input_img_mode: str = 'RGB', trust_remote_code: bool = False, **kwargs)
```

[Kaynak](https://github.com/huggingface/pytorch-image-models/blob/v1.0.31/timm/data/dataset_factory.py#L63)

**Parametreler:**

name : Veri seti adı, klasör tabanlı veri setleri için boş bırakılabilir. Önek (ör. `hfds/`) büyük/küçük harfe duyarsızdır, `torch/` adları hariç olmak üzere kalan kısım olduğu gibi (büyük/küçük harfe duyarlı) iletilir.

root : Veri setinin kök klasörü (Tümü)

split : Veri kümesi bölmesi (Tümü)

search_split : Kökten bölüme özel alt kat aramak için, komut satırında / yapılandırmada `imagenet/` yerine `/imagenet/val` gibi değerler belirtilebilsin. (Klasör, Torch)

class_map : Sınıf -> indeks eşlemesini metin dosyası veya sözlük (Folder) ile belirtin

load_bytes : Verileri yükleyin, görüntüleri çözümlenmemiş bayt olarak döndürün (Folder)

download : Veri seti mevcut değilse ve destekleniyorsa indirin (HFIDS, TFDS, Torch)

is_training : Eğitim modunda veri seti oluşturun, bu split'ten farklıdır. Iterable / TDFS için shuffle'ı etkinleştirir, diğer veri setlerinde (TFDS, WDS, HFIDS) yok sayılır.

batch_size : İteratif veri kümeleri (TFDS, WDS, HFIDS) için parti boyutu ipucu

seed : İteratif veri kümeleri için tohum (TFDS, WDS, HFIDS)

repeats : Veri seti, yineleme başına (yani epoch başına) tekrarlanır (TFDS, WDS, HFIDS)

input_img_mode : Girdi görüntüsü renk dönüşüm modu örn. 'RGB', 'L' (klasör, TFDS, WDS, HFDS, HFIDS)

trust_remote_code : True ise Hugging Face Datasets'te uzaktan kodu güvene al (HFDS, HFIDS)

- ****kwargs** : Altta yatan Dataset ve/veya Reader sınıflarına aktarılacak diğer argümanlar

**Dönüş:**

Dataset nesnesi

Veri seti fabrika metodu

Her argümandan sonra parantez içinde, o argüman için desteklenen veri seti türü yer alır; bunlardan biri şudur:
* Klasör - varsayılan, timm klasörüne (veya tar dosyasına) dayalı ImageDataset
* Torch - torchvision tabanlı veri kümeleri
* HFDS - Hugging Face Veri Setleri
* HFIDS - Hugging Face Datasets İteratif (akış modu, IterableDataset ile)
* TFDS - IterableImageDataset üzerinden IterableDataset arayüzünde Tensorflow-datasets sarmalayıcısı
* WDS - Webdataset
* Tümü - yukarıdakilerden herhangi biri

#### timm.data.ImageDataset[[timm.data.ImageDataset]]

```python
timm.data.ImageDataset(root, reader = None, split = 'train', class_map = None, load_bytes = False, input_img_mode = 'RGB', transform = None, target_transform = None, additional_features = None, **kwargs)
```

[Kaynak](https://github.com/huggingface/pytorch-image-models/blob/v1.0.31/timm/data/dataset.py#L23)

#### timm.data.IterableImageDataset[[timm.data.IterableImageDataset]]

```python
timm.data.IterableImageDataset(root, reader = None, split = 'train', class_map = None, is_training = False, batch_size = 1, num_samples = None, seed = 42, repeats = 0, download = False, input_img_mode = 'RGB', input_key = None, target_key = None, transform = None, target_transform = None, max_steps = None, **kwargs)
```

[Kaynak](https://github.com/huggingface/pytorch-image-models/blob/v1.0.31/timm/data/dataset.py#L95)

#### timm.data.AugMixDataset[[timm.data.AugMixDataset]]

```python
timm.data.AugMixDataset(dataset, num_splits = 2)
```

[Kaynak](https://github.com/huggingface/pytorch-image-models/blob/v1.0.31/timm/data/dataset.py#L175)

AugMix veya diğer temiz/artırma karışımlarını gerçekleştirmek için veri seti sarmalayıcısı

#### timm.data.MultiLabelTarget[[timm.data.MultiLabelTarget]]

```python
timm.data.MultiLabelTarget(num_classes: int, dense: bool = False)
```

[Kaynak](https://github.com/huggingface/pytorch-image-models/blob/v1.0.31/timm/data/target_transforms.py#L5)

num_classes uzunluğunda bir float32 multi-hot tensörü olarak çok etiketli bir hedefi kodlayın.

Varsayılan olarak hedef, pozitif sınıf dizinlerinden oluşan bir dizidir: boş dizi, pozitif etiket bulunmadığını ifade eder; tekrarlar izin verilir; negatif, aralık dışı veya tamsayı olmayan değerler reddedilir. dense=True kullanıldığında hedef, num_classes uzunluğunda, [0, 1] aralığında bool, int veya float değerler içeren bir vektördür; doğrulanır ve yumuşak değerler korunarak float32'ye dönüştürülür.

### Yükleyiciler[[timm.data.create_loader]]

#### timm.data.create_loader[[timm.data.create_loader]]

```python
timm.data.create_loader(dataset: typing.Union[timm.data.dataset.ImageDataset, timm.data.dataset.IterableImageDataset], input_size: typing.Union[int, typing.Tuple[int, int], typing.Tuple[int, int, int]], batch_size: int, is_training: bool = False, no_aug: bool = False, re_prob: float = 0.0, re_mode: str = 'const', re_count: int = 1, re_split: bool = False, train_crop_mode: typing.Optional[str] = None, scale: typing.Optional[typing.Tuple[float, float]] = None, ratio: typing.Optional[typing.Tuple[float, float]] = None, hflip: float = 0.5, vflip: float = 0.0, color_jitter: float = 0.4, color_jitter_prob: typing.Optional[float] = None, grayscale_prob: float = 0.0, gaussian_blur_prob: float = 0.0, auto_augment: typing.Optional[str] = None, num_aug_repeats: int = 0, num_aug_splits: int = 0, interpolation: str = 'bilinear', mean: typing.Tuple[float, ...] = (0.485, 0.456, 0.406), std: typing.Tuple[float, ...] = (0.229, 0.224, 0.225), num_workers: int = 1, distributed: bool = False, crop_pct: typing.Optional[float] = None, crop_mode: typing.Optional[str] = None, crop_border_pixels: typing.Optional[int] = None, collate_fn: typing.Optional[typing.Callable] = None, pin_memory: bool = False, fp16: bool = False, img_dtype: dtype = torch.float32, device: device = torch.device(), use_prefetcher: bool = True, use_multi_epochs_loader: bool = False, persistent_workers: bool = True, worker_seeding: str = 'all', tf_preprocessing: bool = False, input_size_choices: typing.Optional[typing.Sequence[typing.Union[int, typing.Tuple[int, int], typing.Tuple[int, int, int]]]] = None, batch_size_choices: typing.Optional[typing.Sequence[int]] = None, batch_choice_weights: typing.Optional[typing.Sequence[float]] = None, batch_choice_seed: int = 0, batch_choice_schedule: str = 'constant', batch_schedule_epochs: typing.Optional[int] = None, batch_schedule_spread: float = 0.65, batch_schedule_random_mix: float = 0.1, num_batches: typing.Optional[int] = None)
```

[Kaynak](https://github.com/huggingface/pytorch-image-models/blob/v1.0.31/timm/data/loader.py#L223)

**Parametreler:**

dataset : Yükenecek görüntü veri seti.

input_size : Hedef giriş boyutu (kanallar, yükseklik, genişlik) tuple'ı veya boyut skaleri.

batch_size : Bir parti içindeki örnek sayısı.

is_training : Eğitim (rastgele) dönüşümlerini döndürür.

no_aug : Eğitim için artırma işlemini devre dışı bırakın (hata ayıklama için faydalıdır).

re_prob : Rastgele silme olasılığı.

re_mode : Rastgele silme doldurma modu.

re_count : Rastgele silme bölgelerinin sayısı.

re_split : Rastgele silme işleminin batch boyutu üzerinden dağıtımını kontrol eder.

scale : Rastgele yeniden boyutlandırma ölçek aralığı (kırpma alanı, &amp;lt; 1.0 => yakınlaştırma).

ratio : Rastgele en-boy oranı aralığı (RRC için kırpma oranı, RKR için oran ayarlama faktörü).

hflip : Yatay çevirme olasılığı.

vflip : Dikey çevirme olasılığı.

color_jitter : Rastgele renk titremesi bileşen faktörleri (parlaklık, kontrast, doygunluk, ton). Skaler, (scalar,) * 3 olarak uygulanır (ton yok).

color_jitter_prob : None değilse, bu olasılıkla renk karışıklığı uygula (SimCLR benzeri art

grayscale_prob : Görüntüyü gri tona dönüştürme olasılığı (SimCLR benzeri artırmalar için).

gaussian_blur_prob : Gauss bulanıklığı uygulama olasılığı (SimCLR benzeri artırmalar için).

auto_augment : Otomatik artırma yapılandırma dizesi (bkz. auto_augment.py).

num_aug_repeats : Dağıtık GPU'lar arasında aynı artırmayı (augmentation) tekrarlamak için özel örnekleyiciyi (sampler) etkinleştirir.

num_aug_splits : Artırma işlemlerinin batch içinde bölünebileceği modu etkinleştirir.

interpolation : Görüntü interpolasyon modu.

mean : Görüntü normalizasyonu ortalaması.

std : Görüntü normalizasyonu standart sapması.

num_workers : Her DataLoader için işçi süreç sayısı.

distributed : Dağıtık eğitim için veri yükleme işlevini etkinleştirir.

crop_pct : Çıkarım kırpma yüzdesi (çıktı boyutu / yeniden boyutlandırma boyutu).

crop_mode : Çıkarım kırpma modu. ['squash', 'border', 'center'] değerlerinden biri. None olduğunda varsayılan olarak 'center' kullanılır.

crop_border_pixels : Çıkarım sırasında, orijinal görüntünün kenarında belirtilen # piksel genişliğinde bir kenar boşluğu bırakılır.

collate_fn : Varsayılan collate_fn'yi geçersiz kılın.

pin_memory : Cihaz aktarımı için belleği sabitle.

fp16 : Yarım hassasiyetli girdi dtype için kullanımdan kaldırılan argüman. img_dtype kullanın.

img_dtype : Girdi görüntüsü için veri türü.

device : Girdilerin ve hedeflerin aktarılacağı cihaz.

use_prefetcher : Örnekleri cihaza yüklemek için verimli ön-yükleyici kullanın.

use_multi_epochs_loader --

persistent_workers : `num_workers` sıfırdan büyük olduğunda kalıcı işçi süreçlerini etkinleştirir.

worker_seeding : Başlatma sırasında işçi rastgele tohumlamayı kontrol edin.

tf_preprocessing : Model portlarını test etmek için TF 1.0 çıkarım ön işleme kullanın.

input_size_choices : Planlanan çözünürlük eğitimi için parti başına giriş boyutu seçenekleri.

batch_size_choices : Her giriş boyutu seçeneğine karşılık gelen batch boyutu. Belirtilmediğinde tüm seçenekler için `batch_size` kullanılır.

batch_choice_weights : Girdi boyutu seçimleri için örneklem ağırlıkları. Belirtilmediğinde düzgün (uniform) dağılım kullanılır.

batch_choice_seed : Parti planını oluşturmak ve karıştırmak için kullanılan rastgele tohum.

batch_choice_schedule : Zamanlama modunu seçin, `constant` veya `progressive`.

batch_schedule_epochs : İlerleyici bir zamanlamanın seçenekleri arasında ilerlediği epoch sayısı.

batch_schedule_spread : Kademeli seçim penceresinin standart sapması, seçim-indeks birimlerinde.

batch_schedule_random_mix : Artımlık bir zamanlamada, sıfır olmayan ağırlıklı seçenekler üzerinde yapılan düzgün rastgele keşif oranı.

num_batches : Her epoch için yükleyici partisinin sabit sayısı. Belirtilmediğinde, kademeli zamanlamalar için zamanlama-ortalama parti boyutundan çıkarılır.

**Dönüş:**

DataLoader

### Mixup ve CutMix[[timm.data.Mixup]]

#### timm.data.Mixup[[timm.data.Mixup]]

```python
timm.data.Mixup(mixup_alpha = 1.0, cutmix_alpha = 0.0, cutmix_minmax = None, prob = 1.0, switch_prob = 0.5, mode = 'batch', correct_lam = True, label_smoothing = 0.1, num_classes = 1000, multi_label = False)
```

[Kaynak](https://github.com/huggingface/pytorch-image-models/blob/v1.0.31/timm/data/mixup.py#L96)

**Parametreler:**

mixup_alpha (float) : mixup alfa değeri, mixup > 0 ise aktiftir.

cutmix_alpha (float) : cutmix alfa değeri, cutmix > 0 ise aktiftir.

cutmix_minmax (List[float]) : cutmix min/max görüntü oranı, cutmix etkinse ve None değilse alpha yerine bu kullanılır.

prob (float) : her batch veya öğe için mixup veya cutmix uygulama olasılığı

switch_prob (float) : her ikisi de etkin olduğunda mixup yerine cutmix'e geçme olasılığı

mode (str) : mixup/cutmix parametrelerinin nasıl uygulanacağı ('batch' başına, 'pair' (element çifti), 'elem' (element))

correct_lam (bool) : cutmix bbox görüntü sınırları tarafından kırpıldığında lambda düzeltmesini uygula

label_smoothing (float) : karışık hedef tensöre etiket yumuşatma uygulayın

num_classes (int) : hedef için sınıf sayısı

multi_label (bool) : Yoğun çok etiketli hedefleri karıştırır, her etiketi 0.5'e doğru yumuşatır.

Her öğeye veya tüm batch'e farklı parametreler uygulayan Mixup/Cutmix

#### timm.data.FastCollateMixup[[timm.data.FastCollateMixup]]

```python
timm.data.FastCollateMixup(mixup_alpha = 1.0, cutmix_alpha = 0.0, cutmix_minmax = None, prob = 1.0, switch_prob = 0.5, mode = 'batch', correct_lam = True, label_smoothing = 0.1, num_classes = 1000, multi_label = False)
```

[Kaynak](https://github.com/huggingface/pytorch-image-models/blob/v1.0.31/timm/data/mixup.py#L229)

Her öğeye veya tüm batch'e farklı parametreler uygulayan, Mixup/Cutmix ile hızlı Collate

Partiler birleştirilirken (collating) gerçekleştirilen bir Mixup uygulaması.

### NaFlex[[timm.data.create_naflex_loader]]

#### timm.data.create_naflex_loader[[timm.data.create_naflex_loader]]

```python
timm.data.create_naflex_loader(dataset, patch_size: typing.Union[int, typing.Tuple[int, int], NoneType] = None, patch_size_choices: typing.Optional[typing.List[int]] = None, patch_size_choice_probs: typing.Optional[typing.List[float]] = None, train_seq_lens: typing.Tuple[int, ...] = (128, 256, 576, 784, 1024), max_seq_len: int = 576, batch_size: int = 32, is_training: bool = False, mixup_fn: typing.Optional[typing.Callable] = None, no_aug: bool = False, re_prob: float = 0.0, re_mode: str = 'const', re_count: int = 1, re_split: bool = False, train_crop_mode: typing.Optional[str] = None, scale: typing.Optional[typing.Tuple[float, float]] = None, ratio: typing.Optional[typing.Tuple[float, float]] = None, hflip: float = 0.5, vflip: float = 0.0, color_jitter: float = 0.4, color_jitter_prob: typing.Optional[float] = None, grayscale_prob: float = 0.0, gaussian_blur_prob: float = 0.0, auto_augment: typing.Optional[str] = None, num_aug_repeats: int = 0, num_aug_splits: int = 0, interpolation: str = 'bilinear', mean: typing.Tuple[float, ...] = (0.485, 0.456, 0.406), std: typing.Tuple[float, ...] = (0.229, 0.224, 0.225), channels: int = 3, crop_pct: typing.Optional[float] = None, crop_mode: typing.Optional[str] = None, crop_border_pixels: typing.Optional[int] = None, num_workers: int = 4, distributed: bool = False, rank: int = 0, world_size: int = 1, seed: int = 42, epoch: int = 0, use_prefetcher: bool = True, pin_memory: bool = True, img_dtype: dtype = torch.float32, device: typing.Union[str, torch.device] = torch.device(), persistent_workers: bool = True, worker_seeding: str = 'all', patchify_channels_last: bool = True)
```

[Kaynak](https://github.com/huggingface/pytorch-image-models/blob/v1.0.31/timm/data/naflex_loader.py#L239)

**Parametreler:**

dataset : Yüklenecek veri seti.

patch_size : Kullanılacak tek yama boyutu.

patch_size_choices : Değişken yama boyutu eğitimi için yama boyutları listesi.

patch_size_choice_probs : Her yama boyutu seçimi için olasılıklar.

train_seq_lens : Dinamik toplu işleme için eğitim dizisi uzunlukları.

max_seq_len : Doğrulama için sabit dizi uzunluğu.

batch_size : Doğrulama için batch boyutu ve maksimum eğitim dizisi uzunluğu.

is_training : Bu, eğitim için mi (dinamik toplu işleme etkinleştirilir).

mixup_fn : İsteğe bağlı mixup işlevi.

no_aug : Artırma işlemini devre dışı bırakır.

re_prob : Rastgele silme olasılığı.

re_mode : Rastgele silme modu.

re_count : Silme dikdörtgenlerinin maksimum sayısı.

re_split : Rastgele silme bölme bayrağı.

train_crop_mode : Eğitim kırpma modu.

scale : Rastgele yeniden boyutlandırma kırpma için ölçek aralığı.

ratio : Rastgele yeniden boyutlandırma kırpma için en-boy oranı aralığı.

hflip : Yatay çevirme olasılığı.

vflip : Dikey çevirme olasılığı.

color_jitter : Renk titremesi faktörü.

color_jitter_prob : Renk titremesi olasılığı.

grayscale_prob : Gri ton dönüşüm olasılığı.

gaussian_blur_prob : Gauss bulanıklığı olasılığı.

auto_augment : AutoAugment politikası.

num_aug_repeats : Artırma tekrarı sayısı.

num_aug_splits : Artırma bölme sayısı.

interpolation : İnterpolasyon yöntemi.

mean : Normalizasyon ortalama değerleri.

std : Normalizasyon standart sapma değerleri.

channels : Önbellek yükleyicide (prefetcher) kanal başına normalizasyon için kullanılan görüntü kanal sayısı.

crop_pct : Doğrulama için kırpma yüzdesi.

crop_mode : Kırpma modu.

crop_border_pixels : Kenar piksellerini kırpın.

num_workers : Veri yükleme işçilerinin sayısı.

distributed : Dağıtık eğitim kullanılıp kullanılmadığı.

rank : Dağıtık eğitim için işlem sırası.

world_size : Toplam süreç sayısı.

seed : Rastgele tohum.

epoch : Başlangıç dönemi.

use_prefetcher : Önden yükleme kullanılıp kullanılmayacağı.

pin_memory : Belleğin sabitlenip sabitlenmeyeceği.

img_dtype : Görüntü veri türü.

device : Tensörlerin taşınacağı cihaz.

persistent_workers : `num_workers` sıfırdan büyük olduğunda kalıcı işçilerin (persistent workers) kullanılıp kullanılmayacağı.

worker_seeding : Worker tohumlama modu.

patchify_channels_last : Yama başına düz yerleşim. `True` (varsayılan): kanal indeksi en hızlı değişir (NaFlex varsayılanı). `False`: C-P-P (kanallar önce — Gemma4 / HF yerel yerleşimi). Yukarı akıştaki `Patchify` bileşenine ve ön yükleme biriminin normalizasyon yerleşimine iletilir.

**Dönüş:**

DataLoader veya NaFlexPrefetchLoader örneği.

Eğitim için dinamik dizi uzunluğu örneklemesiyle bir veri yükleyici oluşturun.

#### timm.data.NaFlexMapDatasetWrapper[[timm.data.NaFlexMapDatasetWrapper]]

```python
timm.data.NaFlexMapDatasetWrapper(base_dataset: Dataset, patch_size: typing.Union[int, typing.Tuple[int, int], NoneType] = None, patch_size_choices: typing.Optional[typing.List[int]] = None, patch_size_choice_probs: typing.Optional[typing.List[float]] = None, seq_lens: typing.Tuple[int, ...] = (128, 256, 576, 784, 1024), max_tokens_per_batch: int = 16384, transform_factory: typing.Optional[typing.Callable] = None, mixup_fn: typing.Optional[typing.Callable] = None, seed: int = 42, shuffle: bool = True, distributed: bool = False, rank: int = 0, world_size: int = 1, epoch: int = 0, batch_divisor: int = 8, patchify_channels_last: bool = True)
```

[Kaynak](https://github.com/huggingface/pytorch-image-models/blob/v1.0.31/timm/data/naflex_dataset.py#L200)

Harita tarzı bir temel veri seti için IterableDataset sarmalayıcısı.

Değişken dizi uzunluklarına sahip partiler üretir. Toplam veri seti boyutuna (dağıtım için dolgulu) dayanarak bir kez kanonik parti zamanlamasını (dizi uzunluğu, parti boyutu çiftleri) hesaplar. Her çağda, bu kanonik zamanlamanın ve veri seti dizinlerinin sırasını karıştırır. Bu, tüm sıralar arasında çağ başına tutarlı bir parti ve örnek sayısını garanti eder. Dağıtık eğitimi ve çoklu işçileri destekler.

#### set_epoch[[timm.data.NaFlexMapDatasetWrapper.set_epoch]]

```python
set_epoch(epoch: int)
```

[Kaynak](https://github.com/huggingface/pytorch-image-models/blob/v1.0.31/timm/data/naflex_dataset.py#L479)

**Parametreler:**

epoch : Yeni epoch numarası.

DataLoader işçileri tarafından okunan, çok işlemci güvenli epoch değerini ayarlayın.

#### timm.data.NaFlexMixup[[timm.data.NaFlexMixup]]

```python
timm.data.NaFlexMixup(num_classes: int, mixup_alpha: float = 0.8, cutmix_alpha: float = 1.0, switch_prob: float = 0.5, prob: float = 1.0, local_shuffle: int = 4, label_smoothing: float = 0.0, mixup_off_epoch: int = 0, multi_label: bool = False)
```

[Kaynak](https://github.com/huggingface/pytorch-image-models/blob/v1.0.31/timm/data/naflex_mixup.py#L168)

Karıştırmayı ve hedef üretimini birleştiren çağrılabilir sarmalayıcı.

#### set_epoch[[timm.data.NaFlexMixup.set_epoch]]

```python
set_epoch(epoch: int)
```

[Kaynak](https://github.com/huggingface/pytorch-image-models/blob/v1.0.31/timm/data/naflex_mixup.py#L209)

Verilen epoch için mixup durumunu günceller.

