timm documentation

Data

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Data

Halaman ini berisi dokumentasi referensi API untuk sub-paket timm.data, serta gambaran umum tentang pipeline input yang disediakan: resolusi konfigurasi pra-pemrosesan model, pembuatan transformasi, pembuatan dataset dan loader, Mixup / CutMix, dan loader resolusi variabel NaFlex.

Penggunaan

Sebuah pipeline dibangun dalam empat langkah: resolve_model_data_config membaca konfigurasi pra-pemrosesan model, create_transform membangun transform untuk train atau eval, create_dataset membuat dataset berdasarkan nama dan root, dan create_loader membangun transform serta data loader untuk sebuah dataset.

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,)

quickstart menjelaskan langkah-langkah konfigurasi hingga transformasi untuk inferensi.

Skrip pelatihan (train.py) menyediakan opsi-opsi ini untuk setiap bagian dari pipeline.

Override konfigurasi input (resolve_input_data_config):

  • --input-size mengatur bentuk input (C, H, W).
  • --img-size adalah pintasan persegi untuk --input-size, yang mempertahankan jumlah channel model.
  • --in-chans mengatur saluran input.
  • --interpolation mengatur interpolasi resize.
  • --mean mengatur rata-rata normalisasi.
  • --std mengatur standar deviasi normalisasi.
  • --crop-pct mengatur fraksi crop evaluasi.

Pembuatan dataset (create_dataset) dan pengaturan target:

  • --dataset memilih dataset dan pembaca.
  • --data-dir mengatur root dataset.
  • --train-split memilih split pelatihan.
  • --val-split memilih split validasi.
  • --class-map menyediakan pemetaan kelas.
  • --input-img-mode mengatur mode konversi warna gambar.
  • --input-key memilih bidang gambar.
  • --target-key memilih bidang label atau beberapa bidang label.
  • --target-format memilih indeks kelas atau target multi-hot padat.

Opsi loader dan augmentasi (create_loader) meliputi:

  • --aa memilih kebijakan auto-augmentation.
  • --reprob mengatur probabilitas penghapusan acak.
  • --remode memilih mode pengisian penghapusan acak.
  • --scale mengatur rentang skala untuk random resized crop.
  • --ratio mengatur rentang rasio aspek untuk random resized crop.
  • --hflip mengatur probabilitas flip horizontal.
  • --color-jitter mengatur kekuatan color jitter.
  • --train-interpolation mengatur interpolasi pengubahan ukuran (resize) untuk pelatihan.
  • --workers mengatur jumlah worker loader.
  • --no-prefetcher menonaktifkan prefetcher.

Mixup dan CutMix (Mixup):

  • --mixup mengatur alpha Mixup.
  • --cutmix mengatur alpha CutMix.
  • --cutmix-minmax mengatur rentang ukuran kotak CutMix.
  • --mixup-prob mengatur probabilitas pencampuran.
  • --mixup-switch-prob mengatur probabilitas memilih CutMix ketika kedua metode diaktifkan.
  • --mixup-mode memilih pencampuran batch, pair, atau element-wise.
  • --smoothing mengatur label smoothing.

Lihat Scripts untuk contoh.

Konfigurasi data

resolve_data_config mengembalikan dict dengan kunci-kunci di bawah, yang sesuai dengan argumen dari create_transform dan create_loader. Nilai yang diset dalam args (sebuah dict, misalnya vars(args) dari argumen baris perintah yang diurai) memiliki prioritas lebih tinggi daripada argumen pretrained_cfg, yang secara default adalah model.pretrained_cfg. resolve_model_data_config memiliki fungsi yang sama dengan model sebagai argumen pertama.

Keduanya membaca ukuran input dan channel dari cfg pretrained, yang menjelaskan checkpoint sumber, bukan model yang dibuat atau diubah untuk menggunakan img_size atau in_chans yang berbeda. resolve_input_data_config, yang digunakan oleh skrip pelatihan, validasi, dan inferensi, menyelesaikan terhadap input saat ini dari model: model dengan ukuran input tetap selalu mendapatkan ukuran saat ini, args eksplisit yang bertentangan dengan channel atau ukuran tetap model akan memicu error, dan mean / std yang tidak sesuai dengan jumlah channel akan diganti dengan rata-ratanya (dengan peringatan).

KunciKunci argsDeskripsiDefault
input_sizeinput_size, img_size, in_chansUkuran input (C, H, W). Dengan use_test_size=True, test_input_size dari config digunakan jika ada(3, 224, 224)
interpolationinterpolationInterpolasi resize, bilinear, bicubic, …bicubic
mean, stdmean, stdNormalisasi, satu nilai diulang untuk setiap channelMean / std ImageNet
crop_pctcrop_pctPada Eval crop, gambar di-resize menjadi size / crop_pct sebelum dipotong menjadi size (test_crop_pct dengan use_test_size=True)0.875
crop_modecrop_modeMode crop evaluasi, center, squash atau bordercenter

Mode crop eval, untuk output size dan scale_size = floor(size / crop_pct):

crop_modePerilaku
centerPerkecil sisi terpendek menjadi scale_size (rasio aspek dipertahankan), lalu crop tengah menjadi size
squashUkurkan kedua tepi menjadi scale_size (rasio aspek tidak dipertahankan), lalu potong tengah menjadi size
borderPerbesar sisi terpanjang menjadi scale_size, lakukan center crop dan pad dengan warna rata-rata, seluruh gambar dipertahankan pada crop_pct=1.0

Transforms

create_transform mengembalikan torchvision Compose. Transformasi eval melakukan resize dan crop seperti di atas, lalu mengonversi ke tensor dan menormalisasi. Transformasi pelatihan adalah random resized crop (scale=(0.08, 1.0), ratio=(3/4, 4/3) secara default), horizontal flip (hflip=0.5), color jitter (color_jitter=0.4), kebijakan auto_augment opsional, konversi tensor dan normalisasi, serta random erasing.

  • train_crop_mode='rkrc' atau 'rkrr' menggantikan random resized crop dengan random resize yang mempertahankan rasio aspek, diikuti oleh center (rkrc) atau random (rkrr) crop atau pad.
  • interpolation='random' (default train.py untuk pelatihan) memilih bilinear atau bicubic per gambar.
  • no_aug=True mengurangi pelatihan menjadi hanya resize dan center crop.
auto_augmentAugmentasi
rand-m9-mstd0.5-inc1RandAugment melalui rand_augment_transform
augmix-m5-w4-d2AugMix melalui augment_and_mix_transform
original, originalr, v0, v0r, 3aKebijakan AutoAugment melalui auto_augment_transform

Token opsi RandAugment:

  • m mengatur magnitudo (default 10).
  • n mengatur jumlah operasi per gambar (default 2).
  • p mengatur probabilitas per op (default 0.5).
  • mstd mengatur standar deviasi noise magnitudo.
  • inc1 memilih operasi yang tingkat keparahannya meningkat seiring dengan besarnya magnitudo.
  • t<name> memilih set op (weights, 3a, 3aw).

Token opsi AugMix:

  • m mengatur tingkat keparahan (default 3).
  • w mengatur lebar (default 3).
  • d mengatur kedalaman (default -1, acak 1-3).
  • b1 memungkinkan augmentasi campuran.
  • mstd mengatur standar deviasi noise magnitudo.

AutoAugment menerima mstd, misalnya original-mstd0.5.

Perilaku transformasi:

  • Color jitter dinonaktifkan ketika auto_augment disetel, kecuali string tersebut mengandung 3a.
  • RandomErasing (re_prob, re_count) dijalankan pada tensor yang telah dinormalisasi. re_mode mengisi dengan nol (const, nilai default), warna normal acak per wilayah (rand) atau piksel normal acak (pixel, default train.py).
  • use_prefetcher=True mengakhiri transform pada tensor uint8, kemudian normalisasi dan penghapusan acak dilakukan oleh loader pada perangkat.
  • create_transform dan create_loader secara default menggunakan interpolasi bilinear serta mean / std ImageNet, bukan nilai dari model. Sampaikan konfigurasi data yang telah dipecahkan agar sesuai dengan pra-pelatihan model.

Dataset

create_dataset memilih implementasi dataset dan reader dari prefiks name:

nameDatasetrootDiperlukan
'' atau tanpa awalanImageDataset, gambar dalam sub-folder kelas (dicari secara rekursif, nama folder daun adalah kelasnya), atau satu file .tar tunggal dengan struktur yang samaFolder dataset atau file .tar
torch/<name>torchvision cifar10, cifar100, mnist, kmnist, fashion_mnist, qmnist, inaturalist (inat), places365, imagenet atau image_folder (folder)root dataset torchvision
hfds/<name>ImageDataset pada dataset Hugging Face Hub (atau path lokal) melalui datasets.load_datasetDirektori cache (opsional)datasets
hfids/<name>IterableImageDataset, dataset Hugging Face yang di-streaming, atau diunduh dan disiapkan terlebih dahulu dengan download=TrueDirektori cache (opsional)datasets
tfds/<name>IterableImageDataset pada TensorFlow Datasets, download=True mengunduh dan membangunDirektori data TFDStensorflow, tensorflow-datasets
wds/<name>IterableImageDataset pada tar shards WebDatasetFolder shard dengan _info.json (atau info.json) yang menjelaskan splitwebdataset

Opsi dataset:

  • split memilih split dataset (default validation). Untuk WebDataset, ini juga bisa berupa pola shard dengan jumlah sampel, 'imagenet-train-{0000..1023}.tar|1281167'.
  • search_split=True (default) membuat dataset folder mencari sub-folder dari root yang bernama split atau, jika tidak ada, sinonim dari split train (train, training) atau eval (val, valid, validation, eval, evaluation).
  • add_img_extensions menambahkan ke ekstensi gambar bawaan (.png, .jpg dan .jpeg).
  • class_map memetakan ulang nama kelas ke indeks menggunakan dict, file .txt (satu kelas per baris), atau file .pkl.

Dataset iterable (hfids, tfds, wds) juga menerima:

  • is_training mengaktifkan pengacakan.
  • batch_size membulatkan bagian sampel setiap worker ke atas menjadi batch utuh saat pelatihan.
  • num_samples mengatur jumlah sampel, yang diperlukan ketika pembaca tidak dapat menentukannya (hfids tanpa info split).
  • seed mengatur seed acak.
  • repeats mengalikan jumlah sampel per epoch, sehingga pembaca melewati data sebanyak itu kali.

Panggil dataset.set_epoch() setiap epoch untuk mengacak ulang.

Argumen kata kunci lainnya diteruskan ke pembaca. Untuk pembaca Hugging Face, TFDS, dan WebDataset:

  • input_key memilih bidang gambar (image secara default, untuk wds berupa gambar jpg, png atau webp).
  • target_key memilih bidang label (secara default label, untuk wds berupa file .cls atau bidang sidecar .json yang dinamai oleh target_key). Nilai yang dipisahkan koma membaca satu bidang biner per kelas.
  • target_format='multihot' membaca vektor multi-hot padat alih-alih daftar indeks kelas untuk data multi-label.
  • target_transform=MultiLabelTarget(num_classes) mengkodekan target sebagai tensor multi-hot float. Lewatkan dense=True ke MultiLabelTarget untuk field multi-hot.

Pembaca folder dan tar menghasilkan indeks kelas tunggal. Lihat klasifikasi multi-label untuk detailnya.

Pemuat

create_loader membuat transform dengan create_transform dari argumennya sendiri, menugaskannya ke dataset.transform (menggantikan transform yang sudah ada) dan mengembalikan DataLoader. Loader pelatihan (is_training=True) mengacak dan membuang batch terakhir yang tidak lengkap.

  • Prefetcher. Dengan use_prefetcher=True (default), dataset menghasilkan tensor uint8, batch dipindahkan ke device (default cuda, pada side stream untuk CUDA), dikonversi ke img_dtype, dinormalisasi, dan dihapus secara acak di sana. Atur device ke perangkat pelatihan, atau use_prefetcher=False untuk DataLoader biasa dari tensor yang dinormalisasi.
  • Distribusi. distributed=True menggunakan DistributedSampler untuk dataset pelatihan gaya peta (atau sampler augmentasi berulang dengan num_aug_repeats) dan sampler berurutan untuk evaluasi yang mengisi setiap proses hingga jumlah sampel yang sama, yang dapat sedikit mengubah hasil validasi. Dataset iterable membagi diri mereka sendiri di antara proses dan pekerja.
  • Collate. collate_fn menggantikan default (fast_collate dengan prefetcher, default_collate tanpa), misalnya dengan FastCollateMixup.
  • Pembagian augmentasi. Untuk AugMix dengan loss JSD (--aug-splits), bungkus dataset dalam AugMixDataset(dataset, num_splits=n) dan teruskan num_aug_splits=n. Setiap batch berisi satu bagian bersih dan n - 1 bagian yang di-augmentasi, yang digabungkan sepanjang dimensi batch oleh prefetcher.
  • Resolusi terjadwal. input_size_choices (--train-img-sizes) memilih ukuran input per batch, secara opsional dengan ukuran batch per pilihan (batch_size_choices) dan jadwal progressive dari pilihan pertama hingga terakhir.

Mixup dan CutMix

Mixup mencampur batch gambar ternormalisasi di perangkat, setelah loader. FastCollateMixup mengambil argumen yang sama dan mencampur gambar uint8 saat melakukan collating di worker loader, dan memerlukan prefetcher. Keduanya mengembalikan target padat (batch_size, num_classes) dengan label_smoothing (default 0.1) yang diterapkan, untuk digunakan dengan loss target lunak seperti timm.loss.SoftTargetCrossEntropy, dan memerlukan ukuran batch yang genap.

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))

Kontrol Mixup dan CutMix:

  • mixup_alpha > 0 mengaktifkan Mixup.
  • cutmix_alpha > 0 mengaktifkan CutMix.
  • cutmix_minmax mengaktifkan CutMix dengan rentang ukuran kotak.
  • switch_prob mengatur probabilitas memilih CutMix ketika kedua metode diaktifkan.
  • prob mengatur probabilitas pencampuran.
  • mode menggambar parameter sekali per batch, per pair elemen, atau per elem (elemen).
  • multi_label=True mencampur target multi-label padat, dengan menghaluskan setiap label menuju 0,5.
  • mixup_enabled = False mematikan pencampuran, misalnya untuk epoch terakhir (--mixup-off-epoch). Untuk FastCollateMixup, nilai ini dibaca di proses worker; worker yang persisten mempertahankan nilai yang mereka gunakan saat dimulai.

Resolusi variabel NaFlex

create_naflex_loader memuat gambar sebagai sekuens patch dengan panjang variabel, tanpa mengubah ukuran menjadi ukuran persegi tetap, untuk model yang menerima input patch NaFlex (misalnya model naflexvit_*). Setiap batch adalah dict dari patches, patch_coord, patch_valid dan seq_len, yang di-pad hingga panjang sekuens batch.

  • Pelatihan. Dataset dibungkus dalam NaFlexMapDatasetWrapper (hanya untuk dataset bergaya map), yang memilih salah satu dari train_seq_lens per batch dan melakukan random resize crop pada setiap gambar agar sesuai dengan jumlah patch tersebut. batch_size adalah ukuran batch pada panjang urutan terpanjang; panjang yang lebih pendek mendapatkan batch yang lebih besar secara proporsional (dibulatkan ke bawah menjadi kelipatan 8) sehingga jumlah token per batch tetap relatif konstan. patch_size_choices (dengan patch_size_choice_probs) juga memvariasikan ukuran patch per batch, untuk model yang mendukungnya.
  • Eval. Gambar di-resize agar muat max_seq_len patch pada patch_size yang diberikan (diperlukan untuk eval) dan di-pad hingga max_seq_len.
  • Mixup. Lewatkan NaFlexMixup sebagai mixup_fn, ia mencampur di dalam setiap batch dan tidak mendukung mode atau cutmix_minmax.

Opsi untuk train.py adalah:

  • --naflex-loader mengaktifkan pemuat NaFlex.
  • --naflex-train-seq-lens mengatur panjang sekuens pelatihan.
  • --naflex-max-seq-len mengatur panjang urutan evaluasi maksimum.
  • --naflex-patch-sizes mengatur ukuran patch untuk pelatihan ukuran patch variabel.
  • --naflex-patch-size-probs mengatur probabilitas untuk ukuran patch tersebut.
  • --naflex-loss-scale memilih penskalaan loss berdasarkan ukuran batch (none, sqrt atau linear).

API

Konfigurasi data

timm.data.resolve_data_config

< >

( args = Nonepretrained_cfg = Nonemodel = Noneuse_test_size = Falseverbose = False )

timm.data.resolve_model_data_config

< >

( modelargs = Nonepretrained_cfg = Noneuse_test_size = Falseverbose = False )

Parameter

  • model (nn.Module) β€” instance model
  • args (dict) β€” argumen baris perintah / konfigurasi dalam bentuk dict (menimpa pretrained_cfg)
  • pretrained_cfg (dict) β€” konfigurasi model pretrained (menimpa pretrained_cfg yang melekat pada model)
  • use_test_size (bool) β€” gunakan resolusi input saat pengujian (jika ada) alih-alih resolusi pelatihan default
  • verbose (bool) β€” mengaktifkan pencatatan tambahan untuk nilai yang telah diselesaikan

Resolve Model Data Config Ini setara dengan resolve_data_config() tetapi dengan urutan argumen yang diubah agar model berada di depan.

timm.data.resolve_input_data_config

< >

( modelargs: typing.Optional[typing.Dict[str, typing.Any]] = Nonepretrained_cfg: typing.Optional[typing.Dict[str, typing.Any]] = Noneuse_test_size: bool = Falseverbose: bool = False )

Selesaikan pra-pemrosesan terhadap batasan input model saat ini.

Dimensi dan kanal yang tetap harus sesuai dengan permintaan eksplisit. Model fleksibel mempertahankan rekomendasi pra-pemrosesan latih/tes kecuali ditimpa. Normalisasi menggunakan kebijakan adaptasi kanal yang ada dari loader prefetch.

Transforms

timm.data.create_transform

< >

( input_size: typing.Union[int, typing.Tuple[int, int], typing.Tuple[int, int, int]] = 224is_training: bool = Falseno_aug: bool = Falsetrain_crop_mode: typing.Optional[str] = Nonescale: typing.Optional[typing.Tuple[float, float]] = Noneratio: typing.Optional[typing.Tuple[float, float]] = Nonehflip: float = 0.5vflip: float = 0.0color_jitter: typing.Union[float, typing.Tuple[float, ...]] = 0.4color_jitter_prob: typing.Optional[float] = Nonegrayscale_prob: float = 0.0gaussian_blur_prob: float = 0.0auto_augment: typing.Optional[str] = Noneinterpolation: 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.0re_mode: str = 'const're_count: int = 1re_num_splits: int = 0crop_pct: typing.Optional[float] = Nonecrop_mode: typing.Optional[str] = Nonecrop_border_pixels: typing.Optional[int] = Nonetf_preprocessing: bool = Falseuse_prefetcher: bool = Falsenormalize: bool = Trueseparate: bool = Falsenaflex: bool = Falsepatch_size: typing.Union[int, typing.Tuple[int, int]] = 16max_seq_len: int = 576patchify: bool = Falsepatchify_channels_last: bool = Truepatchify_flatten: bool = True )

Parameter

  • input_size β€” Ukuran input target (kanal, tinggi, lebar) berupa tuple atau skalar ukuran.
  • is_training β€” Kembalikan transformasi pelatihan (acak).
  • no_aug β€” Nonaktifkan augmentasi untuk pelatihan (berguna untuk debug).
  • train_crop_mode β€” Mode crop acak untuk pelatihan (β€˜rrc’, β€˜rkrc’, β€˜rkrr’).
  • scale β€” Rentang skala resize acak (area crop, < 1.0 => zoom in).
  • ratio β€” Rentang rasio aspek acak (rasio crop untuk RRC, faktor penyesuaian rasio untuk RKR).
  • hflip β€” Probabilitas flip horizontal.
  • vflip β€” Probabilitas flip vertikal.
  • color_jitter β€” Faktor-faktor komponen jitter warna acak (kecerahan, kontras, saturasi, rona). Skalar diterapkan sebagai (scalar,) * 3 (tanpa rona).
  • color_jitter_prob β€” Terapkan color jitter dengan probabilitas ini jika bukan None (untuk augmentasi mirip SimCLR).
  • grayscale_prob β€” Probabilitas mengonversi gambar menjadi grayscale (untuk augmentasi serupa SimCLR).
  • gaussian_blur_prob β€” Probabilitas penerapan gaussian blur (untuk augmentasi mirip SimCLR).
  • auto_augment β€” String konfigurasi auto augment (lihat auto_augment.py).
  • interpolation β€” Mode interpolasi gambar.
  • mean β€” Rata-rata normalisasi gambar.
  • std β€” Standar deviasi normalisasi gambar.
  • re_prob β€” Probabilitas penghapusan acak.
  • re_mode β€” Mode pengisian penghapusan acak.
  • re_count β€” Jumlah wilayah penghapusan acak.
  • re_num_splits β€” Mengontrol pembagian random erasing di sepanjang ukuran batch.
  • crop_pct β€” Persentase crop saat inferensi (ukuran output / ukuran resize).
  • crop_mode β€” Mode crop saat inferensi. Salah satu dari [β€˜squash’, β€˜border’, β€˜center’]. Bawaan adalah β€˜center’ jika None.
  • crop_border_pixels β€” Pemotongan batas inferensi sebanyak # piksel di sekitar tepi gambar asli.
  • tf_preprocessing β€” Gunakan prapemrosesan inferensi TF 1.0 untuk menguji port model
  • use_prefetcher β€” Pre-fetcher diaktifkan. Jangan konversi gambar menjadi tensor atau normalisasi.
  • normalize β€” Output tensor normalisasi dengan mean/std yang diberikan (jika prefetcher tidak digunakan).
  • separate β€” Output transform dalam tuple 3 tahap.
  • patchify β€” Patchify output alih-alih mengandalkan prefetcher.
  • patchify_channels_last β€” Gunakan tata letak channels-last di dalam setiap patch.
  • patchify_flatten β€” Meratakan patch eval menjadi vektor. Nonaktifkan ketika model membutuhkan dimensi spasialnya untuk interpolasi ukuran patch.

timm.data.rand_augment_transform

< >

( config_str: strhparams: typing.Optional[typing.Dict] = Nonetransforms: typing.Union[str, typing.Dict, typing.List, NoneType] = None )

Parameter

  • config_str (str) β€” String yang mendefinisikan konfigurasi augmentasi acak. Terdiri dari beberapa bagian yang dipisahkan oleh tanda hubung ('-'). Bagian pertama mendefinisikan varian spesifik dari rand augment (saat ini hanya 'rand'). Bagian-bagian sisanya, yang tidak bergantung pada urutan, menentukan
    • β€˜m’ - magnitudo bilangan bulat dari rand augment
    • β€˜n’ - bilangan bulat num layers (jumlah operasi transformasi yang dipilih per gambar)
    • β€˜p’ - probabilitas float untuk menerapkan setiap lapisan (default 0.5)
    • β€˜mstd’ - float deviasi standar dari noise magnitudo yang diterapkan, atau sampling seragam jika infinity (atau > 100)
    • β€˜mmax’ - atur batas atas magnitudo menjadi nilai selain nilai default _LEVEL_DENOM (10)
    • β€˜inc’ - integer (bool), gunakan augmentasi yang tingkat keparahannya meningkat seiring dengan magnitudo (default: 0)
    • β€˜t’ - str nama transform yang akan digunakan
  • hparams (dict) β€” hparams (kwargs) lain untuk skema RandAugmentation

Buat transformasi RandAugment

Contoh:

  • 'rand-m9-n3-mstd0.5' adalah RandAugment dengan magnitudo 9, 3 lapisan, dan standar deviasi magnitudo 0,5.
  • 'rand-mstd1-tweights' adalah RandAugment dengan standar deviasi magnitudo 1.0 dan pemilihan transformasi berbobot, pada magnitudo default 10 dan 2 lapisan.

timm.data.auto_augment_transform

< >

( config_str: strhparams: typing.Optional[typing.Dict] = None )

Parameter

  • config_str β€” String yang mendefinisikan konfigurasi auto augmentation. Terdiri dari beberapa bagian yang dipisahkan oleh tanda hubung ('-'). Bagian pertama mendefinisikan kebijakan AutoAugment (salah satu dari 'v0', 'v0r', 'original', 'originalr'). Sementara bagian lainnya mendefinisikan argumen lain
    • β€˜mstd’ - float deviasi standar dari noise magnitudo yang diterapkan
  • hparams β€” hparams (kwargs) lain untuk skema AutoAugmentation

Buat transformasi AutoAugment

Contoh:

  • 'original-mstd0.5' adalah AutoAugment dengan kebijakan asli dan standar deviasi magnitudo 0,5.

timm.data.auto_augment.augment_and_mix_transform

< >

( config_str: strhparams: typing.Optional[typing.Dict] = None )

Parameter

  • config_str (str) β€” String yang mendefinisikan konfigurasi augmentasi acak. Terdiri dari beberapa bagian yang dipisahkan oleh tanda hubung (’-’). Bagian pertama mendefinisikan varian spesifik dari rand augment (saat ini hanya β€˜rand’). Bagian-bagian sisanya, yang tidak spesifik urutan, menentukan β€˜m’ - integer magnitude (keparahan) dari campuran augmentasi (default: 3) β€˜w’ - integer lebar dari rantai augmentasi (default: 3) β€˜d’ - integer kedalaman dari rantai augmentasi (-1 adalah acak [1, 3], default: -1) β€˜b’ - integer (bool), blend setiap cabang rantai ke hasil akhir tanpa blend final, lebih sedikit CPU (default: 0) β€˜mstd’ - float deviasi standar dari noise magnitude yang diterapkan (default: 0) Contoh β€˜augmix-m5-w4-d2’ menghasilkan AugMix dengan keparahan 5, lebar rantai 4, kedalaman rantai 2
  • hparams β€” hparams (kwargs) lainnya untuk transformasi Augmentation

Buat transformasi AugMix PyTorch

kelas timm.data.random_erasing.RandomErasing

< >

( probability = 0.5min_area = 0.02max_area = 0.3333333333333333min_aspect = 0.3max_aspect = Nonemode = 'const'min_count = 1max_count = Nonenum_splits = 0device = 'cuda' )

Parameter

  • probability β€” Probabilitas bahwa operasi Random Erasing akan dilakukan.
  • min_area β€” Persentase minimum area yang dihapus terhadap area gambar input.
  • max_area β€” Persentase maksimum area yang dihapus terhadap area gambar input.
  • min_aspect β€” Rasio aspek minimum area yang dihapus.
  • mode β€” mode warna piksel, salah satu dari β€˜const’, β€˜rand’, atau β€˜pixel’ β€˜const’ - blok penghapusan memiliki warna konstan 0 untuk semua saluran β€˜rand’ - blok penghapusan memiliki warna acak (normal) yang sama per saluran β€˜pixel’ - blok penghapusan memiliki warna acak (normal) per piksel

Memilih secara acak sebuah area persegi panjang pada gambar dan menghapus pikselnya. β€˜Random Erasing Data Augmentation’ oleh Zhong dkk. Lihat https://arxiv.org/pdf/1708.04896.pdf

Varian RandomErasing ini dimaksudkan untuk diterapkan pada tensor batch atau tensor gambar tunggal setelah dinormalisasi dengan mean dan std dataset.

max_count: jumlah maksimum blok penghapusan per gambar, area per kotak diskalakan berdasarkan count. count per gambar dipilih secara acak antara 1 dan nilai ini.

Dataset

timm.data.create_dataset

< >

( name: strroot: typing.Optional[str] = Nonesplit: str = 'validation'search_split: bool = Trueclass_map: dict = Noneload_bytes: bool = Falseis_training: bool = Falsedownload: bool = Falsebatch_size: int = 1num_samples: typing.Optional[int] = Noneseed: int = 42repeats: int = 0input_img_mode: str = 'RGB'trust_remote_code: bool = False**kwargs )

Parameter

  • name β€” Nama dataset, boleh kosong untuk dataset berbasis folder. Prefiks (mis. hfds/) tidak membedakan huruf besar/kecil, sisanya diteruskan apa adanya (membedakan huruf besar/kecil) kecuali untuk nama torch/.
  • root β€” Folder akar dari dataset (Semua)
  • split β€” Pemecahan dataset (Semua)
  • search_split β€” Cari fold anak spesifik split dari root sehingga Anda dapat menentukan imagenet/ alih-alih /imagenet/val, dll. di cmd line / config. (Folder, Torch)
  • class_map β€” Tentukan pemetaan kelas -> indeks melalui file teks atau dict (Folder)
  • load_bytes β€” Muat data, kembalikan gambar sebagai byte yang belum didekode (Folder)
  • download β€” Unduh dataset jika tidak ada dan didukung (HFIDS, TFDS, Torch)
  • is_training β€” Buat dataset dalam mode train, ini berbeda dari split. Untuk Iterable / TDFS, ini mengaktifkan shuffle, diabaikan untuk dataset lain. (TFDS, WDS, HFIDS)
  • batch_size β€” Petunjuk ukuran batch untuk dataset iterable (TFDS, WDS, HFIDS)
  • seed β€” Seed untuk dataset iterable (TFDS, WDS, HFIDS)
  • repeats β€” Pengulangan dataset per iterasi, yaitu epoch (TFDS, WDS, HFIDS)
  • input_img_mode β€” Mode konversi warna gambar input, misalnya β€˜RGB’, β€˜L’ (folder, TFDS, WDS, HFDS, HFIDS)
  • trust_remote_code β€” Percayai kode jarak jauh di Hugging Face Datasets jika True (HFDS, HFIDS)
  • **kwargs β€” Argumen lain untuk diteruskan ke kelas Dataset dan/atau Reader yang mendasarinya

Metode pabrik Dataset

Dalam tanda kurung setelah setiap argumen adalah jenis dataset yang didukung untuk masing-masing argumen, salah satu dari:

  • Folder - default, dataset gambar berbasis folder (atau tar) timm
  • Torch - dataset berbasis torchvision
  • HFDS - Hugging Face Datasets
  • HFIDS - Hugging Face Datasets Iterable (mode streaming, dengan IterableDataset)
  • TFDS - pembungkus tensorflow-datasets dalam antarmuka IterableDataset melalui IterableImageDataset
  • WDS - Webdataset
  • Semua - salah satu dari yang di atas

kelas timm.data.ImageDataset

< >

( rootreader = Nonesplit = 'train'class_map = Noneload_bytes = Falseinput_img_mode = 'RGB'transform = Nonetarget_transform = Noneadditional_features = None**kwargs )

kelas timm.data.IterableImageDataset

< >

( rootreader = Nonesplit = 'train'class_map = Noneis_training = Falsebatch_size = 1num_samples = Noneseed = 42repeats = 0download = Falseinput_img_mode = 'RGB'input_key = Nonetarget_key = Nonetransform = Nonetarget_transform = Nonemax_steps = None**kwargs )

kelas timm.data.AugMixDataset

< >

( datasetnum_splits = 2 )

Wrapper dataset untuk melakukan AugMix atau campuran bersih/augmentasi lainnya

kelas timm.data.MultiLabelTarget

< >

( num_classes: intdense: bool = False )

Enkodekan target multi-label sebagai tensor multi-hot float32 dengan panjang num_classes.

Secara default, target adalah urutan indeks kelas positif: urutan kosong berarti tidak ada label positif, pengulangan diizinkan, dan nilai negatif, di luar rentang, atau non-integer akan ditolak. Dengan dense=True, target sudah berupa vektor dengan panjang num_classes yang berisi nilai bool, int, atau float dalam [0, 1]; nilai ini divalidasi dan di-cast ke float32, dengan mempertahankan nilai soft.

Pemuat

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: intis_training: bool = Falseno_aug: bool = Falsere_prob: float = 0.0re_mode: str = 'const're_count: int = 1re_split: bool = Falsetrain_crop_mode: typing.Optional[str] = Nonescale: typing.Optional[typing.Tuple[float, float]] = Noneratio: typing.Optional[typing.Tuple[float, float]] = Nonehflip: float = 0.5vflip: float = 0.0color_jitter: float = 0.4color_jitter_prob: typing.Optional[float] = Nonegrayscale_prob: float = 0.0gaussian_blur_prob: float = 0.0auto_augment: typing.Optional[str] = Nonenum_aug_repeats: int = 0num_aug_splits: int = 0interpolation: 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 = 1distributed: bool = Falsecrop_pct: typing.Optional[float] = Nonecrop_mode: typing.Optional[str] = Nonecrop_border_pixels: typing.Optional[int] = Nonecollate_fn: typing.Optional[typing.Callable] = Nonepin_memory: bool = Falsefp16: bool = Falseimg_dtype: dtype = torch.float32device: device = torch.device()use_prefetcher: bool = Trueuse_multi_epochs_loader: bool = Falsepersistent_workers: bool = Trueworker_seeding: str = 'all'tf_preprocessing: bool = Falseinput_size_choices: typing.Optional[typing.Sequence[typing.Union[int, typing.Tuple[int, int], typing.Tuple[int, int, int]]]] = Nonebatch_size_choices: typing.Optional[typing.Sequence[int]] = Nonebatch_choice_weights: typing.Optional[typing.Sequence[float]] = Nonebatch_choice_seed: int = 0batch_choice_schedule: str = 'constant'batch_schedule_epochs: typing.Optional[int] = Nonebatch_schedule_spread: float = 0.65batch_schedule_random_mix: float = 0.1num_batches: typing.Optional[int] = None )

Parameter

  • dataset β€” Dataset gambar yang akan dimuat.
  • input_size β€” Ukuran input target (kanal, tinggi, lebar) berupa tuple atau skalar ukuran.
  • batch_size β€” Jumlah sampel dalam satu batch.
  • is_training β€” Kembalikan transformasi pelatihan (acak).
  • no_aug β€” Nonaktifkan augmentasi untuk pelatihan (berguna untuk debug).
  • re_prob β€” Probabilitas penghapusan acak.
  • re_mode β€” Mode pengisian penghapusan acak.
  • re_count β€” Jumlah wilayah penghapusan acak.
  • re_split β€” Mengontrol pembagian random erasing di seluruh ukuran batch.
  • scale β€” Rentang skala resize acak (area crop, < 1.0 => zoom in).
  • ratio β€” Rentang rasio aspek acak (rasio crop untuk RRC, faktor penyesuaian rasio untuk RKR).
  • hflip β€” Probabilitas flip horizontal.
  • vflip β€” Probabilitas flip vertikal.
  • color_jitter β€” Faktor-faktor komponen jitter warna acak (kecerahan, kontras, saturasi, rona). Skalar diterapkan sebagai (scalar,) * 3 (tanpa rona).
  • color_jitter_prob β€” Terapkan color jitter dengan probabilitas ini jika bukan None (untuk augmentasi
  • grayscale_prob β€” Probabilitas mengonversi gambar menjadi grayscale (untuk augmentasi serupa SimCLR).
  • gaussian_blur_prob β€” Probabilitas penerapan gaussian blur (untuk augmentasi mirip SimCLR).
  • auto_augment β€” String konfigurasi auto augment (lihat auto_augment.py).
  • num_aug_repeats β€” Aktifkan sampler khusus untuk mengulang augmentasi yang sama di seluruh GPU terdistribusi.
  • num_aug_splits β€” Aktifkan mode di mana augmentasi dapat dipecah di seluruh batch.
  • interpolation β€” Mode interpolasi gambar.
  • mean β€” Rata-rata normalisasi gambar.
  • std β€” Standar deviasi normalisasi gambar.
  • num_workers β€” Jumlah proses worker per DataLoader.
  • distributed β€” Aktifkan pemuatan data untuk pelatihan terdistribusi.
  • crop_pct β€” Persentase crop saat inferensi (ukuran output / ukuran resize).
  • crop_mode β€” Mode crop saat inferensi. Salah satu dari [β€˜squash’, β€˜border’, β€˜center’]. Bawaan adalah β€˜center’ jika None.
  • crop_border_pixels β€” Pemotongan batas inferensi sebanyak # piksel di sekitar tepi gambar asli.
  • collate_fn β€” Mengganti collate_fn default.
  • pin_memory β€” Pin memori untuk transfer perangkat.
  • fp16 β€” Argumen yang tidak lagi didukung untuk dtype input presisi setengah. Gunakan img_dtype.
  • img_dtype β€” Tipe data untuk gambar input.
  • device β€” Perangkat untuk mentransfer input dan target.
  • use_prefetcher β€” Gunakan pre-fetcher yang efisien untuk memuat sampel ke perangkat.
  • use_multi_epochs_loader —
  • persistent_workers β€” Aktifkan proses worker persisten ketika num_workers lebih besar dari nol.
  • worker_seeding β€” Mengontrol penanaman acak worker saat inisialisasi.
  • tf_preprocessing β€” Gunakan prapemrosesan inferensi TF 1.0 untuk menguji port model.
  • input_size_choices β€” Pilihan ukuran input per batch untuk pelatihan resolusi terjadwal.
  • batch_size_choices β€” Batch size yang sesuai dengan setiap pilihan ukuran input. Menggunakan batch_size untuk semua pilihan jika tidak ditentukan.
  • batch_choice_weights β€” Bobot sampling untuk pilihan ukuran input. Seragam jika tidak ditentukan.
  • batch_choice_seed β€” Benang acak yang digunakan untuk membuat dan mengacak jadwal batch.
  • batch_choice_schedule β€” Mode jadwal pilihan, yaitu constant atau progressive.
  • batch_schedule_epochs β€” Jumlah epoch yang dilalui oleh jadwal progresif untuk melewati pilihan-pilihannya.
  • batch_schedule_spread β€” Deviasi standar dari jendela pilihan progresif, dalam satuan indeks pilihan.
  • batch_schedule_random_mix β€” Fraksi eksplorasi acak seragam di atas pilihan dengan bobot non-nol dalam jadwal progresif.
  • num_batches β€” Jumlah tetap batch loader per epoch. Disimpulkan dari ukuran batch rata-rata jadwal untuk jadwal progresif jika tidak ditentukan.

Mixup dan CutMix

kelas timm.data.Mixup

< >

( mixup_alpha = 1.0cutmix_alpha = 0.0cutmix_minmax = Noneprob = 1.0switch_prob = 0.5mode = 'batch'correct_lam = Truelabel_smoothing = 0.1num_classes = 1000multi_label = False )

Parameter

  • mixup_alpha (float) β€” nilai alpha mixup, mixup aktif jika > 0.
  • cutmix_alpha (float) β€” nilai alpha cutmix, cutmix aktif jika > 0.
  • cutmix_minmax (List[float]) β€” rasio gambar min/max cutmix, cutmix aktif dan menggunakan ini vs alpha jika tidak None.
  • prob (float) β€” probabilitas penerapan mixup atau cutmix per batch atau elemen
  • switch_prob (float) β€” probabilitas untuk beralih ke cutmix alih-alih mixup ketika keduanya aktif
  • mode (str) β€” cara menerapkan parameter mixup/cutmix (per β€˜batch’, β€˜pair’ (pasangan elemen), β€˜elem’ (elemen)
  • correct_lam (bool) β€” terapkan koreksi lambda saat bbox cutmix terpotong oleh batas gambar
  • label_smoothing (float) β€” terapkan label smoothing pada tensor target campuran
  • num_classes (int) β€” jumlah kelas untuk target
  • multi_label (bool) β€” Campurkan target multi-label padat, dengan menghaluskan setiap label menuju 0,5.

Mixup/Cutmix yang menerapkan parameter berbeda untuk setiap elemen atau seluruh batch

kelas timm.data.FastCollateMixup

< >

( mixup_alpha = 1.0cutmix_alpha = 0.0cutmix_minmax = Noneprob = 1.0switch_prob = 0.5mode = 'batch'correct_lam = Truelabel_smoothing = 0.1num_classes = 1000multi_label = False )

Fast Collate dengan Mixup/Cutmix yang menerapkan parameter berbeda untuk setiap elemen atau seluruh batch

Implementasi Mixup yang dilakukan saat merangkai batch.

NaFlex

timm.data.create_naflex_loader

< >

( datasetpatch_size: typing.Union[int, typing.Tuple[int, int], NoneType] = Nonepatch_size_choices: typing.Optional[typing.List[int]] = Nonepatch_size_choice_probs: typing.Optional[typing.List[float]] = Nonetrain_seq_lens: typing.Tuple[int, ...] = (128, 256, 576, 784, 1024)max_seq_len: int = 576batch_size: int = 32is_training: bool = Falsemixup_fn: typing.Optional[typing.Callable] = Noneno_aug: bool = Falsere_prob: float = 0.0re_mode: str = 'const're_count: int = 1re_split: bool = Falsetrain_crop_mode: typing.Optional[str] = Nonescale: typing.Optional[typing.Tuple[float, float]] = Noneratio: typing.Optional[typing.Tuple[float, float]] = Nonehflip: float = 0.5vflip: float = 0.0color_jitter: float = 0.4color_jitter_prob: typing.Optional[float] = Nonegrayscale_prob: float = 0.0gaussian_blur_prob: float = 0.0auto_augment: typing.Optional[str] = Nonenum_aug_repeats: int = 0num_aug_splits: int = 0interpolation: str = 'bilinear'mean: typing.Tuple[float, ...] = (0.485, 0.456, 0.406)std: typing.Tuple[float, ...] = (0.229, 0.224, 0.225)channels: int = 3crop_pct: typing.Optional[float] = Nonecrop_mode: typing.Optional[str] = Nonecrop_border_pixels: typing.Optional[int] = Nonenum_workers: int = 4distributed: bool = Falserank: int = 0world_size: int = 1seed: int = 42epoch: int = 0use_prefetcher: bool = Truepin_memory: bool = Trueimg_dtype: dtype = torch.float32device: typing.Union[str, torch.device] = torch.device()persistent_workers: bool = Trueworker_seeding: str = 'all'patchify_channels_last: bool = True )

Parameter

  • dataset β€” Dataset yang akan dimuat.
  • patch_size β€” Ukuran patch tunggal yang akan digunakan.
  • patch_size_choices β€” Daftar ukuran patch untuk pelatihan ukuran patch variabel.
  • patch_size_choice_probs β€” Probabilitas untuk setiap pilihan ukuran patch.
  • train_seq_lens β€” Panjang sekuens pelatihan untuk pengelompokan dinamis.
  • max_seq_len β€” Panjang sekuens tetap untuk validasi.
  • batch_size β€” Ukuran batch untuk validasi dan panjang urutan pelatihan maksimum.
  • is_training β€” Apakah ini untuk pelatihan (mengaktifkan pengelompokan dinamis).
  • mixup_fn β€” Fungsi mixup opsional.
  • no_aug β€” Nonaktifkan augmentasi.
  • re_prob β€” Probabilitas penghapusan acak.
  • re_mode β€” Mode penghapusan acak.
  • re_count β€” Jumlah maksimum persegi panjang penghapus.
  • re_split β€” Flag pemisahan penghapusan acak.
  • train_crop_mode β€” Mode crop pelatihan.
  • scale β€” Rentang skala untuk random resize crop.
  • ratio β€” Rentang rasio aspek untuk random resize crop.
  • hflip β€” Probabilitas flip horizontal.
  • vflip β€” Probabilitas flip vertikal.
  • color_jitter β€” Faktor jitter warna.
  • color_jitter_prob β€” Probabilitas color jitter.
  • grayscale_prob β€” Probabilitas konversi grayscale.
  • gaussian_blur_prob β€” Probabilitas blur Gaussian.
  • auto_augment β€” kebijakan AutoAugment.
  • num_aug_repeats β€” Jumlah pengulangan augmentasi.
  • num_aug_splits β€” Jumlah split augmentasi.
  • interpolation β€” Metode interpolasi.
  • mean β€” Nilai rata-rata normalisasi.
  • std β€” Nilai standar deviasi normalisasi.
  • channels β€” Jumlah channel gambar, digunakan untuk normalisasi per-channel di prefetcher.
  • crop_pct β€” Persentase pemotongan untuk validasi.
  • crop_mode β€” Mode pemotongan.
  • crop_border_pixels β€” Memotong piksel tepi.
  • num_workers β€” Jumlah worker pemuatan data.
  • distributed β€” Apakah menggunakan pelatihan terdistribusi.
  • rank β€” Rank proses untuk pelatihan terdistribusi.
  • world_size β€” Total jumlah proses.
  • seed β€” Benang acak.
  • epoch β€” Epoch awal.
  • use_prefetcher β€” Apakah akan menggunakan prefetching.
  • pin_memory β€” Apakah akan mengunci memori.
  • img_dtype β€” Tipe data gambar.
  • device β€” Perangkat untuk memindahkan tensor.
  • persistent_workers β€” Apakah akan menggunakan pekerja persisten ketika num_workers lebih besar dari nol.
  • worker_seeding β€” Mode seeding worker.
  • patchify_channels_last β€” Tata letak datar per-patch. True (default): indeks channel bervariasi paling cepat (default NaFlex). False: C-P-P (channels first β€” tata letak asli Gemma4 / HF). Diteruskan ke Patchify upstream dan ke tata letak normalisasi prefetcher.

Buat data loader dengan pengambilan sampel panjang sekuens dinamis untuk pelatihan.

kelas timm.data.NaFlexMapDatasetWrapper

< >

( base_dataset: Datasetpatch_size: typing.Union[int, typing.Tuple[int, int], NoneType] = Nonepatch_size_choices: typing.Optional[typing.List[int]] = Nonepatch_size_choice_probs: typing.Optional[typing.List[float]] = Noneseq_lens: typing.Tuple[int, ...] = (128, 256, 576, 784, 1024)max_tokens_per_batch: int = 16384transform_factory: typing.Optional[typing.Callable] = Nonemixup_fn: typing.Optional[typing.Callable] = Noneseed: int = 42shuffle: bool = Truedistributed: bool = Falserank: int = 0world_size: int = 1epoch: int = 0batch_divisor: int = 8patchify_channels_last: bool = True )

Wrapper IterableDataset untuk dataset dasar bergaya map.

Menghasilkan batch dengan panjang sekuens yang bervariasi. Menghitung jadwal batch kanonik (pasangan panjang sekuens, ukuran batch) sekali berdasarkan ukuran total dataset (dipadatkan untuk distribusi). Setiap epoch, mengacak urutan jadwal kanonik ini dan indeks dataset. Hal ini memastikan jumlah batch dan sampel per epoch yang konsisten di semua rank. Menangani pelatihan terdistribusi dan beberapa worker.

set_epoch

< >

( epoch: int )

Parameter

  • epoch β€” Nomor epoch baru.

Atur epoch baca yang aman untuk multiprocessing oleh pekerja DataLoader.

kelas timm.data.NaFlexMixup

< >

( num_classes: intmixup_alpha: float = 0.8cutmix_alpha: float = 1.0switch_prob: float = 0.5prob: float = 1.0local_shuffle: int = 4label_smoothing: float = 0.0mixup_off_epoch: int = 0multi_label: bool = False )

Wrapper callable yang menggabungkan pencampuran dan pembuatan target.

set_epoch

< >

( epoch: int )

Perbarui status mixup untuk epoch yang diberikan.

Update on GitHub