timm documentation

Données

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Données

Cette page contient la documentation de référence de l’API du sous-package timm.data, ainsi qu’un aperçu du pipeline d’entrée qu’il fournit : résolution de la configuration de prétraitement d’un modèle, construction des transformations, création de jeux de données et de chargeurs, Mixup / CutMix, et le chargeur de résolution variable NaFlex.

Utilisation

Un pipeline est construit en quatre étapes : resolve_model_data_config lit la configuration de prétraitement du modèle, create_transform construit la transformation d’entraînement ou d’évaluation, create_dataset crée un jeu de données à partir de son nom et de sa racine, et create_loader construit la transformation et un chargeur de données pour un jeu de données.

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

Le tutoriel de démarrage rapide détaille la configuration des étapes de transformation pour l’inférence.

Le script d'entraînement (train.py) expose ces options pour chaque partie du pipeline.

Remplacements de la configuration d'entrée (resolve_input_data_config) :

  • --input-size définit la forme d'entrée (C, H, W).
  • --img-size est le raccourci carré de --input-size, en conservant le nombre de canaux du modèle.
  • --in-chans définit les canaux d'entrée.
  • --interpolation définit l'interpolation de redimensionnement.
  • --mean définit la moyenne de normalisation.
  • --std définit l'écart-type de normalisation.
  • --crop-pct définit la fraction de recadrage pour l'évaluation.

Création du jeu de données (create_dataset) et configuration de la cible :

  • --dataset sélectionne le jeu de données et le lecteur.
  • --data-dir définit le répertoire racine du jeu de données.
  • --train-split sélectionne la partition d'entraînement.
  • --val-split sélectionne la partition de validation.
  • --class-map fournit la correspondance des classes.
  • --input-img-mode définit le mode de conversion des couleurs de l'image.
  • --input-key sélectionne le champ d’image.
  • --target-key sélectionne le ou les champs d'étiquette.
  • --target-format sélectionne les indices de classes ou les cibles multi-hot denses.

Les options de chargeur et d'augmentation (create_loader) incluent :

  • --aa sélectionne la politique d'auto-augmentation.
  • --reprob définit la probabilité d'effacement aléatoire.
  • --remode sélectionne le mode de remplissage de l'effacement aléatoire.
  • --scale définit la plage d'échelle pour le recadrage aléatoire redimensionné.
  • --ratio définit la plage de rapports d’aspect pour le recadrage aléatoire redimensionné.
  • --hflip définit la probabilité de retournement horizontal.
  • --color-jitter définit l'intensité du jitter de couleur.
  • --train-interpolation définit l'interpolation de redimensionnement pour l'entraînement.
  • --workers définit le nombre de workers du loader.
  • --no-prefetcher désactive le prefetcher.

Mixup et CutMix (Mixup) :

  • --mixup définit l'alpha de Mixup.
  • --cutmix définit l'alpha de CutMix.
  • --cutmix-minmax définit la plage de taille des boîtes CutMix.
  • --mixup-prob définit la probabilité de mélange.
  • --mixup-switch-prob définit la probabilité de choisir CutMix lorsque les deux méthodes sont activées.
  • --mixup-mode sélectionne le mélange par lot, par paire ou élément par élément.
  • --smoothing définit le lissage des étiquettes.

Voir Scripts pour des exemples.

Configuration des données

resolve_data_config renvoie un dictionnaire avec les clés ci-dessous, qui correspondent aux arguments de create_transform et create_loader. Les valeurs définies dans args (un dictionnaire, par exemple vars(args) des arguments de ligne de commande analysés) ont la priorité sur l'argument pretrained_cfg, dont la valeur par défaut est model.pretrained_cfg. resolve_model_data_config est identique, avec le modèle comme premier argument.

Les deux lisent la taille d’entrée et les canaux à partir de la configuration préentraînée, qui décrit le point de contrôle source, et non un modèle créé ou modifié pour utiliser une img_size ou des in_chans différents. resolve_input_data_config, utilisé par les scripts d’entraînement, de validation et d’inférence, résout par rapport à l’entrée actuelle du modèle : un modèle à taille d’entrée fixe reçoit toujours sa taille actuelle, des args explicites qui entrent en conflit avec les canaux ou la taille fixe du modèle déclenchent une erreur, et une moyenne / écart-type qui ne correspond pas au nombre de canaux est remplacée par sa moyenne (avec un avertissement).

Cléclés de argsDescriptionPar défaut
input_sizeinput_size, img_size, in_chansTaille d’entrée (C, H, W). Avec use_test_size=True, la test_input_size de la configuration est utilisée si elle en possède une(3, 224, 224)
interpolationinterpolationInterpolation de redimensionnement, bilinear, bicubic, …bicubic
mean, stdmean, stdNormalisation, une seule valeur est répétée pour chaque canalMoyenne / écart-type d'ImageNet
crop_pctcrop_pctAvec l'évaluation par recadrage, l'image est redimensionnée à size / crop_pct avant d'être recadrée à size (test_crop_pct avec use_test_size=True)0.875
crop_modecrop_modeMode de recadrage d'évaluation, center, squash ou bordercenter

Les modes de recadrage d'évaluation, pour une size de sortie et scale_size = floor(size / crop_pct) :

crop_modeComportement
centerRedimensionner le côté le plus court à scale_size (ratio d'aspect préservé), puis recadrer au centre à size
squashRedimensionner les deux bords à scale_size (le ratio d'aspect n'est pas préservé), puis recadrer au centre à size
borderRedimensionner le plus long côté à scale_size, effectuer un recadrage centré et un remplissage avec la couleur moyenne, l'image entière est conservée à crop_pct=1.0

Transformations

create_transform renvoie un Compose de torchvision. La transformation d’évaluation redimensionne et recadre comme ci-dessus, puis convertit en tenseur et normalise. La transformation d’entraînement est un recadrage aléatoire redimensionné (scale=(0.08, 1.0), ratio=(3/4, 4/3) par défaut), un retournement horizontal (hflip=0.5), une variation de couleur (color_jitter=0.4), la politique optionnelle auto_augment, la conversion en tenseur et la normalisation, ainsi qu’un effacement aléatoire.

  • train_crop_mode='rkrc' ou 'rkrr' remplace le recadrage aléatoire redimensionné par un redimensionnement aléatoire qui préserve le ratio d’aspect, suivi d’un recadrage ou d’un remplissage centré (rkrc) ou aléatoire (rkrr).
  • interpolation='random' (la valeur par défaut de train.py pour l’entraînement) sélectionne l’interpolation bilinéaire ou bicubique pour chaque image.
  • no_aug=True réduit l'entraînement à un redimensionnement et un recadrage centré.
auto_augmentAugmentation
rand-m9-mstd0.5-inc1RandAugment via rand_augment_transform
augmix-m5-w4-d2AugMix via augment_and_mix_transform
original, originalr, v0, v0r, 3apolitique AutoAugment via auto_augment_transform

Jetons d'options pour RandAugment :

  • m définit l'amplitude (10 par défaut).
  • n définit le nombre d'opérations par image (2 par défaut).
  • p définit la probabilité par opération (valeur par défaut 0,5).
  • mstd définit l'écart-type du bruit d'amplitude.
  • inc1 sélectionne les opérations dont la gravité augmente avec l'amplitude.
  • t<name> sélectionne le jeu d'opérations (weights, 3a, 3aw).

Jetons d'option AugMix :

  • m définit la sévérité (3 par défaut).
  • w définit la largeur (3 par défaut).
  • d définit la profondeur (valeur par défaut -1, aléatoire entre 1 et 3).
  • b1 permet l'augmentation de données mixte.
  • mstd définit l'écart-type du bruit d'amplitude.

AutoAugment accepte mstd, par exemple original-mstd0.5.

Comportement de transformation :

  • Le jitter de couleur est désactivé lorsque auto_augment est défini, sauf si la chaîne contient 3a.
  • RandomErasing (re_prob, re_count) s’exécute sur le tenseur normalisé. re_mode remplit avec des zéros (const, par défaut), une couleur normale aléatoire par région (rand) ou des pixels normaux aléatoires (pixel, la valeur par défaut de train.py).
  • use_prefetcher=True termine la transformation par un tenseur uint8, la normalisation et l’effacement aléatoire sont ensuite effectués par le chargeur sur l’appareil.
  • create_transform et create_loader utilisent par défaut l’interpolation bilinear et la moyenne / l’écart-type d’ImageNet, et non les valeurs du modèle. Transmettez la configuration de données résolue pour correspondre au pré-entraînement du modèle.

Jeux de données

create_dataset sélectionne l’implémentation du jeu de données et le lecteur à partir d’un préfixe de name :

nameJeu de donnéesrootNécessite
'' ou aucun préfixeImageDataset, des images dans des sous-dossiers de classes (recherche récursive, le nom du dossier feuille est la classe) ou un seul fichier .tar de mêmeDossier de jeu de données ou fichier .tar
torch/<name>torchvision cifar10, cifar100, mnist, kmnist, fashion_mnist, qmnist, inaturalist (inat), places365, imagenet ou image_folder (folder)racine du jeu de données torchvision
hfds/<name>ImageDataset sur un jeu de données du Hugging Face Hub (ou un chemin local) via datasets.load_datasetRépertoire de cache (facultatif)datasets
hfids/<name>IterableImageDataset, le jeu de données Hugging Face en flux, ou téléchargé et préparé au préalable avec download=TrueRépertoire de cache (facultatif)datasets
tfds/<name>IterableImageDataset sur TensorFlow Datasets, download=True télécharge et construitRépertoire de données TFDStensorflow, tensorflow-datasets
wds/<name>IterableImageDataset sur des shards tar WebDatasetDossier de shards avec un _info.json (ou info.json) décrivant les splitswebdataset

Options de jeu de données :

  • split sélectionne le split du jeu de données (par défaut validation). Pour WebDataset, il peut également s'agir d'un motif de shard avec un nombre d'échantillons, 'imagenet-train-{0000..1023}.tar|1281167'.
  • search_split=True (par défaut) fait en sorte que les jeux de données de dossiers recherchent le sous-dossier de root nommé split ou, à défaut, un synonyme d’un split d’entraînement (train, training) ou d’évaluation (val, valid, validation, eval, evaluation).
  • add_img_extensions ajoute aux extensions d’images par défaut (.png, .jpg et .jpeg).
  • class_map réaffecte les noms de classes à des indices à l'aide d'un dictionnaire, d'un fichier .txt (une classe par ligne) ou d'un fichier .pkl.

Les jeux de données itérables (hfids, tfds, wds) acceptent également :

  • is_training active le mélange.
  • batch_size arrondit la part d’échantillons de chaque travailleur à des lots entiers lors de l’entraînement.
  • num_samples définit le nombre d'échantillons, requis lorsque le lecteur ne peut pas le déterminer (hfids sans information de split).
  • seed définit la graine aléatoire.
  • repeats multiplie les échantillons par époque, les lecteurs parcourent les données autant de fois.

Appelez dataset.set_epoch() à chaque époque pour mélanger à nouveau.

Les autres arguments par mot-clé sont transmis au lecteur. Pour les lecteurs Hugging Face, TFDS et WebDataset :

  • input_key sélectionne le champ d’image (image par défaut, pour wds une image jpg, png ou webp).
  • target_key sélectionne le champ d’étiquette (par défaut label, pour wds le fichier .cls ou un champ de fichier compagnon .json nommé par target_key). Une valeur séparée par des virgules lit un champ binaire par classe.
  • target_format='multihot' lit des vecteurs multi-denses au lieu de listes d'indices de classes pour les données multi-étiquettes.
  • target_transform=MultiLabelTarget(num_classes) encode les cibles sous forme de tenseurs multi-hot flottants. Passez dense=True à MultiLabelTarget pour les champs multi-hot.

Les lecteurs de dossiers et de fichiers tar renvoient des indices de classes uniques. Consultez classification multi-étiquettes pour plus de détails.

Chargeurs

create_loader crée la transformation avec create_transform à partir de ses propres arguments, l’assigne à dataset.transform (en remplaçant toute transformation existante) et renvoie un DataLoader. Les chargeurs d’entraînement (is_training=True) mélangent les données et suppriment le dernier lot incomplet.

  • Préchargeur. Avec use_prefetcher=True (par défaut), le jeu de données produit des tenseurs uint8, les lots sont déplacés vers device (par défaut cuda, sur un flux latéral pour CUDA), convertis en img_dtype, normalisés et aléatoirement effacés sur place. Définissez device sur l’appareil d’entraînement, ou use_prefetcher=False pour un DataLoader simple de tenseurs normalisés.
  • Distribué. distributed=True utilise un DistributedSampler pour les jeux de données d'entraînement de type map (ou un échantillonneur d'augmentation répété avec num_aug_repeats) et un échantillonneur ordonné pour l'évaluation qui remplit chaque processus jusqu'au même nombre d'échantillons, ce qui peut légèrement altérer les résultats de validation. Les jeux de données itérables se partagent eux-mêmes entre les processus et les workers.
  • Collation. collate_fn remplace la fonction par défaut (fast_collate avec le prefetcher, default_collate sans), par exemple par un FastCollateMixup.
  • Segments d'augmentation. Pour AugMix avec la perte JSD (--aug-splits), enveloppez le jeu de données dans AugMixDataset(dataset, num_splits=n) et passez num_aug_splits=n. Chaque lot contient un segment propre et n - 1 segments augmentés, concaténés le long de la dimension du lot par le préchargeur.
  • Résolution planifiée. input_size_choices (--train-img-sizes) sélectionne la taille d'entrée par lot, éventuellement avec une taille de lot par choix (batch_size_choices) et un planning progressive allant du premier au dernier choix.

Mixup et CutMix

Mixup mélange un lot d’images normalisées sur l’appareil, après le chargeur. FastCollateMixup prend les mêmes arguments et mélange des images uint8 lors de la collation dans les workers du chargeur ; il nécessite le préchargeur. Les deux renvoient des cibles denses (batch_size, num_classes) avec label_smoothing (valeur par défaut 0.1) appliqué, à utiliser avec une perte à cible douce telle que timm.loss.SoftTargetCrossEntropy, et exigent une taille de lot paire.

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

Contrôles de Mixup et CutMix :

  • mixup_alpha > 0 active Mixup.
  • cutmix_alpha > 0 active CutMix.
  • cutmix_minmax active CutMix avec une plage de taille de boîte.
  • switch_prob définit la probabilité de choisir CutMix lorsque les deux méthodes sont activées.
  • prob définit la probabilité de mélanger.
  • mode tire les paramètres une fois par batch, par pair d'éléments ou par elem (élément).
  • multi_label=True mélange les cibles multi-étiquettes denses, en lissant chaque étiquette vers 0,5.
  • mixup_enabled = False désactive le mélange, par exemple pour les dernières époques (--mixup-off-epoch). Pour FastCollateMixup, la valeur est lue dans les processus workers ; les workers persistants conservent la valeur avec laquelle ils ont démarré.

NaFlex à résolution variable

create_naflex_loader loads images as variable length sequences of patches, w/o resizing to a fixed square size, for models that take NaFlex patch inputs (e.g. the naflexvit_* models). Each batch is a dict of patches, patch_coord, patch_valid and seq_len, padded to the batch’s sequence length.

  • Entraînement. Le jeu de données est encapsulé dans un NaFlexMapDatasetWrapper (uniquement pour les jeux de données de type map), qui sélectionne l'une des valeurs de train_seq_lens par lot et applique un redimensionnement aléatoire avec recadrage à chaque image pour qu'elle corresponde à ce nombre de patches. batch_size est la taille du lot pour la longueur de séquence la plus longue ; les longueurs plus courtes reçoivent des lots proportionnellement plus grands (arrondis à un multiple de 8 inférieur) afin que le nombre de jetons par lot reste approximativement constant. patch_size_choices (avec patch_size_choice_probs) fait également varier la taille des patches par lot, pour les modèles qui le supportent.
  • Éval. Les images sont redimensionnées pour correspondre à max_seq_len patches à la patch_size donnée (requis pour l'évaluation) puis remplies jusqu'à max_seq_len.
  • Mixup. Passez un NaFlexMixup en tant que mixup_fn, il mélange au sein de chaque lot et ne prend pas en charge mode ou cutmix_minmax.

Les options de train.py sont :

  • --naflex-loader active le chargeur NaFlex.
  • --naflex-train-seq-lens définit les longueurs de séquence d'entraînement.
  • --naflex-max-seq-len définit la longueur maximale de la séquence d'évaluation.
  • --naflex-patch-sizes définit les tailles de patch pour l'entraînement avec des tailles de patch variables.
  • --naflex-patch-size-probs définit les probabilités pour ces tailles de patch.
  • --naflex-loss-scale sélectionne l'échelle de perte en fonction de la taille du lot (none, sqrt ou linear).

API

Configuration des données

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 )

Paramètres

  • model (nn.Module) — l'instance du modèle
  • args (dict) — arguments de ligne de commande / configuration sous forme de dictionnaire (remplace pretrained_cfg)
  • pretrained_cfg (dict) — configuration du modèle pré-entraîné (remplace pretrained_cfg attaché au modèle)
  • use_test_size (bool) — utiliser la résolution d'entrée du temps de test (si elle existe) au lieu de la résolution d'entraînement par défaut
  • verbose (bool) — active la journalisation supplémentaire des valeurs résolues

Résoudre la configuration des données du modèle Ceci est équivalent à resolve_data_config() mais avec les arguments réordonnés pour placer le modèle en premier.

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 )

Résoudre le prétraitement par rapport aux contraintes d’entrée du modèle actuel.

Les dimensions et les canaux fixes doivent correspondre aux demandes explicites. Les modèles flexibles conservent les recommandations de prétraitement d’entraînement/test, sauf si elles sont remplacées. La normalisation utilise la politique d’adaptation des canaux existante des chargeurs de préchargement.

Transformations

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 )

Paramètres

  • input_size — Taille d'entrée cible, sous forme de tuple (canaux, hauteur, largeur) ou de scalaire.
  • is_training — Retourne les transformations d’entraînement (aléatoires).
  • no_aug — Désactive l'augmentation pour l'entraînement (utile pour le débogage).
  • train_crop_mode — Mode de recadrage aléatoire pour l'entraînement ('rrc', 'rkrc', 'rkrr').
  • scale — Plage d'échelle de redimensionnement aléatoire (zone de recadrage, < 1.0 => zoom avant).
  • ratio — Plage de rapports d’aspect aléatoires (ratio de recadrage pour RRC, facteur d’ajustement du ratio pour RKR).
  • hflip — Probabilité de retournement horizontal.
  • vflip — Probabilité de retournement vertical.
  • color_jitter — Facteurs de composantes de variation aléatoire de la couleur (luminosité, contraste, saturation, teinte). Un scalaire est appliqué sous la forme (scalaire,) * 3 (sans teinte).
  • color_jitter_prob — Applique un ajustement de couleur avec cette probabilité si la valeur n'est pas None (pour des augmentations de type SimCLR).
  • grayscale_prob — Probabilité de convertir l’image en niveaux de gris (pour des augmentations de type SimCLR).
  • gaussian_blur_prob — Probabilité d'appliquer un flou gaussien (pour des augmentations de type SimCLR).
  • auto_augment — Chaîne de configuration Auto augment (voir auto_augment.py).
  • interpolation — Mode d'interpolation d'image.
  • mean — Moyenne de normalisation de l'image.
  • std — Écart-type de normalisation de l'image.
  • re_prob — Probabilité d'effacement aléatoire.
  • re_mode — Mode de remplissage pour l'effacement aléatoire.
  • re_count — Nombre de régions d'effacement aléatoire.
  • re_num_splits — Contrôle la répartition de l'effacement aléatoire sur la taille du lot.
  • crop_pct — Pourcentage de recadrage lors de l'inférence (taille de sortie / taille de redimensionnement).
  • crop_mode — Mode de recadrage pour l'inférence. L'une des valeurs [‘squash’, ‘border’, ‘center’]. Par défaut, ‘center’ si la valeur est None.
  • crop_border_pixels — Recadrage de l’inférence de # pixels autour du bord de l’image d’origine.
  • tf_preprocessing — Utiliser le prétraitement d’inférence TF 1.0 pour tester les ports de modèles
  • use_prefetcher — Pré-chargeur activé. Ne convertissez pas l’image en tenseur et ne normalisez pas.
  • normalize — Tenseur de normalisation en sortie avec la moyenne/l'écart-type fournis (si le préchargeur n'est pas utilisé).
  • separate — Transforme la sortie en un tuple à trois étapes.
  • patchify — Diviser la sortie en patches au lieu de s’appuyer sur le prefetcher.
  • patchify_channels_last — Utiliser la disposition channels-last à l’intérieur de chaque patch.
  • patchify_flatten — Aplati les patches d'évaluation en vecteurs. À désactiver lorsque le modèle a besoin de leurs dimensions spatiales pour l'interpolation de la taille des patches.

timm.data.rand_augment_transform

< >

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

Paramètres

  • config_str (str) — Chaîne de caractères définissant la configuration de l'augmentation aléatoire. Elle est composée de plusieurs sections séparées par des tirets (« - »). La première section définit la variante spécifique de rand augment (actuellement uniquement « rand »). Les sections restantes, sans ordre imposé, déterminent
    • ‘m’ - magnitude entière de rand augment
    • ‘n’ - nombre d'entiers de couches (nombre d'opérations de transformation sélectionnées par image)
    • ‘p’ - probabilité flottante d'application de chaque couche (par défaut 0.5)
    • ‘mstd’ - écart-type flottant du bruit d'amplitude appliqué, ou échantillonnage uniforme si infini (ou > 100)
    • ‘mmax’ - définir la limite supérieure de l'amplitude sur une valeur autre que la valeur par défaut de _LEVEL_DENOM (10)
    • ‘inc’ - entier (bool), utiliser des augmentations dont la sévérité augmente avec l'amplitude (par défaut : 0)
    • ‘t’ - str nom de l'ensemble de transformations à utiliser
  • hparams (dict) — Autres hparams (kwargs) pour le schéma RandAugmentation

Créer une transformation RandAugment

Exemples :

  • 'rand-m9-n3-mstd0.5' est RandAugment avec une magnitude de 9, 3 couches et un écart-type de magnitude de 0,5.
  • 'rand-mstd1-tweights' est RandAugment avec un écart-type de magnitude de 1,0 et une sélection pondérée des transformations, avec une magnitude par défaut de 10 et 2 couches.

timm.data.auto_augment_transform

< >

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

Paramètres

  • config_str — Chaîne définissant la configuration de l'augmentation automatique. Elle est composée de plusieurs sections séparées par des tirets (« - »). La première section définit la politique AutoAugment (l'une des valeurs « v0 », « v0r », « original », « originalr »). Les sections restantes définissent les autres arguments.
    • ‘mstd’ - écart-type flottant du bruit d'amplitude appliqué
  • hparams — Autres hparams (kwargs) pour le schéma AutoAugmentation

Créer une transformation AutoAugment

Exemples :

  • 'original-mstd0.5' est AutoAugment avec la politique originale et un écart-type de magnitude de 0,5.

timm.data.auto_augment.augment_and_mix_transform

< >

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

Paramètres

  • config_str (str) — Chaîne de caractères définissant la configuration de l’augmentation aléatoire. Elle est composée de plusieurs sections séparées par des tirets (’-’). La première section définit la variante spécifique de l’augmentation aléatoire (actuellement uniquement ‘rand’). Les sections restantes, sans ordre imposé, déterminent : ‘m’ — magnitude (gravité) entière du mélange d’augmentations (par défaut : 3) ‘w’ — largeur entière de la chaîne d’augmentations (par défaut : 3) ‘d’ — profondeur entière de la chaîne d’augmentations (-1 signifie aléatoire [1, 3], par défaut : -1) ‘b’ — entier (booléen), fusionne chaque branche de la chaîne dans le résultat final sans fusion finale, moins de CPU (par défaut : 0) ‘mstd’ — écart-type flottant du bruit de magnitude appliqué (par défaut : 0) Exemple : ‘augmix-m5-w4-d2’ donne un AugMix avec une gravité de 5, une largeur de chaîne de 4 et une profondeur de chaîne de 2
  • hparams — Autres hparams (kwargs) pour les transformations d'Augmentation

Créer une transformation PyTorch AugMix

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

Paramètres

  • probability — Probabilité que l'opération Random Erasing soit effectuée.
  • min_area — Pourcentage minimal de la zone effacée par rapport à la zone de l'image d'entrée.
  • max_area — Pourcentage maximal de la zone effacée par rapport à la zone de l'image d'entrée.
  • min_aspect — Rapport d'aspect minimal de la zone effacée.
  • mode — mode de couleur des pixels, l’un des éléments suivants : ‘const’, ‘rand’ ou ‘pixel’ ‘const’ - le bloc d’effacement est d’une couleur constante de 0 pour tous les canaux ‘rand’ - le bloc d’effacement est d’une couleur aléatoire (normale) identique pour chaque canal ‘pixel’ - le bloc d’effacement est d’une couleur aléatoire (normale) par pixel

Sélectionne aléatoirement une région rectangulaire dans une image et efface ses pixels. « Random Erasing Data Augmentation » de Zhong et al. Voir https://arxiv.org/pdf/1708.04896.pdf

Cette variante de RandomErasing est destinée à être appliquée à un tenseur d'image unique ou à un lot, après normalisation par la moyenne et l'écart-type du jeu de données.

max_count : nombre maximal de blocs d'effacement par image, la surface de chaque boîte est mise à l'échelle en fonction du nombre. Le nombre par image est choisi aléatoirement entre 1 et cette valeur.

Jeux de données

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 )

Paramètres

  • name — Nom du jeu de données, peut être vide pour les jeux de données basés sur des dossiers. Le préfixe (par ex. hfds/) est insensible à la casse, le reste est transmis tel quel (sensible à la casse) à l’exception des noms torch/.
  • root — Dossier racine du jeu de données (Tous)
  • split — Partition du jeu de données (Tous)
  • search_split — Recherche d’un pliage enfant spécifique à une partition à partir de la racine, afin de pouvoir spécifier imagenet/ plutôt que /imagenet/val, etc. sur la ligne de commande / dans la configuration. (Dossier, Torch)
  • class_map — Spécifie la correspondance classe -> index via un fichier texte ou un dictionnaire (Folder)
  • load_bytes — Charge les données et renvoie les images sous forme d'octets non décodés (Folder)
  • download — Télécharge le jeu de données s'il est absent et pris en charge (HFIDS, TFDS, Torch)
  • is_training — Crée le jeu de données en mode d’entraînement, ce qui est différent du split. Pour Iterable / TDFS, cela active le shuffle, ignoré pour les autres jeux de données. (TFDS, WDS, HFIDS)
  • batch_size — Indice de taille de lot pour les jeux de données itérables (TFDS, WDS, HFIDS)
  • seed — Graine pour les jeux de données itérables (TFDS, WDS, HFIDS)
  • repeats — Nombre de répétitions du jeu de données par itération, c'est-à-dire par époque (TFDS, WDS, HFIDS)
  • input_img_mode — Mode de conversion de couleur de l’image d’entrée, par exemple ‘RGB’, ‘L’ (folder, TFDS, WDS, HFDS, HFIDS)
  • trust_remote_code — Faire confiance au code distant dans Hugging Face Datasets si True (HFDS, HFIDS)
  • **kwargs — Autres arguments à transmettre aux classes Dataset et/ou Reader sous-jacentes

Méthode de fabrique de jeu de données

Entre parenthèses après chaque argument figure le type de jeu de données pris en charge pour cet argument, l'un des suivants :

  • Dossier - dossier timm par défaut (ou tar) basé sur ImageDataset
  • Torch - jeux de données basés sur torchvision
  • HFDS - Hugging Face Datasets
  • HFIDS - Hugging Face Datasets Iterable (mode streaming, avec IterableDataset)
  • TFDS - Enveloppeur de Tensorflow-datasets dans l'interface IterableDataset via IterableImageDataset
  • WDS - Webdataset
  • Tous - l'un des éléments ci-dessus

classe timm.data.ImageDataset

< >

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

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

classe timm.data.AugMixDataset

< >

( datasetnum_splits = 2 )

Enveloppe de jeu de données pour effectuer des mélanges AugMix ou d'autres mélanges propres/augmentation

classe timm.data.MultiLabelTarget

< >

( num_classes: intdense: bool = False )

Encode une cible multi-étiquettes comme un tenseur multi-hot float32 de longueur num_classes.

Par défaut, la cible est une séquence d’indices de classes positives : une séquence vide signifie qu’il n’y a pas d’étiquettes positives, les répétitions sont autorisées, et les valeurs négatives, hors plage ou non entières sont rejetées. Avec dense=True, la cible est déjà un vecteur de longueur num_classes contenant des valeurs bool, int ou float dans [0, 1] ; il est validé et converti en float32, en conservant les valeurs douces.

Chargeurs

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 )

Paramètres

  • dataset — Le jeu de données d'images à charger.
  • input_size — Taille d'entrée cible, sous forme de tuple (canaux, hauteur, largeur) ou de scalaire.
  • batch_size — Nombre d'échantillons par lot.
  • is_training — Retourne les transformations d’entraînement (aléatoires).
  • no_aug — Désactive l'augmentation pour l'entraînement (utile pour le débogage).
  • re_prob — Probabilité d'effacement aléatoire.
  • re_mode — Mode de remplissage pour l'effacement aléatoire.
  • re_count — Nombre de régions d'effacement aléatoire.
  • re_split — Contrôle la répartition du random erasing sur la taille du lot.
  • scale — Plage d'échelle de redimensionnement aléatoire (zone de recadrage, < 1.0 => zoom avant).
  • ratio — Plage de rapports d’aspect aléatoires (ratio de recadrage pour RRC, facteur d’ajustement du ratio pour RKR).
  • hflip — Probabilité de retournement horizontal.
  • vflip — Probabilité de retournement vertical.
  • color_jitter — Facteurs de composantes de variation aléatoire de la couleur (luminosité, contraste, saturation, teinte). Un scalaire est appliqué sous la forme (scalaire,) * 3 (sans teinte).
  • color_jitter_prob — Appliquer un ajustement de couleur avec cette probabilité si la valeur n'est pas None (pour des augmentations de type SimCLR
  • grayscale_prob — Probabilité de convertir l’image en niveaux de gris (pour des augmentations de type SimCLR).
  • gaussian_blur_prob — Probabilité d'appliquer un flou gaussien (pour des augmentations de type SimCLR).
  • auto_augment — Chaîne de configuration Auto augment (voir auto_augment.py).
  • num_aug_repeats — Active un échantillonneur spécial pour répéter la même augmentation sur les GPU distribués.
  • num_aug_splits — Active le mode permettant de répartir les augmentations sur le lot.
  • interpolation — Mode d'interpolation d'image.
  • mean — Moyenne de normalisation de l'image.
  • std — Écart-type de normalisation de l'image.
  • num_workers — Nombre de processus de travail par DataLoader.
  • distributed — Active le chargement de données pour l’entraînement distribué.
  • crop_pct — Pourcentage de recadrage lors de l'inférence (taille de sortie / taille de redimensionnement).
  • crop_mode — Mode de recadrage pour l'inférence. L'une des valeurs [‘squash’, ‘border’, ‘center’]. Par défaut, ‘center’ si la valeur est None.
  • crop_border_pixels — Recadrage de l’inférence de # pixels autour du bord de l’image d’origine.
  • collate_fn — Remplace la fonction collate_fn par défaut.
  • pin_memory — Fixe la mémoire pour le transfert vers l’appareil.
  • fp16 — Argument obsolète pour le type de données d'entrée en précision réduite. Utilisez img_dtype.
  • img_dtype — Type de données de l'image d'entrée.
  • device — Appareil vers lequel transférer les entrées et les cibles.
  • use_prefetcher — Utilise un préchargeur efficace pour charger les échantillons sur l’appareil.
  • use_multi_epochs_loader —
  • persistent_workers — Active les processus de travail persistants lorsque num_workers est supérieur à zéro.
  • worker_seeding — Contrôle l’initialisation aléatoire des workers lors de l’initialisation.
  • tf_preprocessing — Utiliser le prétraitement d’inférence TF 1.0 pour tester les ports de modèles.
  • input_size_choices — Choix des tailles d'entrée par lot pour l'entraînement de résolution planifiée.
  • batch_size_choices — Taille de lot correspondant à chaque choix de taille d'entrée. Utilise batch_size pour tous les choix lorsqu'il n'est pas spécifié.
  • batch_choice_weights — Poids d'échantillonnage pour les choix de taille d'entrée. Uniformes si non spécifiés.
  • batch_choice_seed — Graine aléatoire utilisée pour créer et mélanger le calendrier des lots.
  • batch_choice_schedule — Mode du calendrier de choix, soit constant, soit progressive.
  • batch_schedule_epochs — Nombre d'époques sur lesquelles un plan progressif parcourt ses choix.
  • batch_schedule_spread — Écart type de la fenêtre de choix progressif, en unités d'index de choix.
  • batch_schedule_random_mix — Fraction d'exploration aléatoire uniforme sur les choix de poids non nuls dans un plan progressif.
  • num_batches — Nombre fixe de lots de chargeur par époque. Inféré à partir de la taille moyenne des lots du planning pour les progressifs lorsque non spécifié.

Mixup et CutMix

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

Paramètres

  • mixup_alpha (float) — valeur alpha de mixup, mixup est actif si > 0.
  • cutmix_alpha (float) — valeur alpha de cutmix, cutmix est actif si > 0.
  • cutmix_minmax (List[float]) — ratio min/max des images pour cutmix, cutmix est actif et utilise ce ratio au lieu d'alpha s'il n'est pas None.
  • prob (float) — probabilité d'appliquer mixup ou cutmix par lot ou par élément
  • switch_prob (float) — probabilité de passer à cutmix plutôt qu'à mixup lorsque les deux sont actifs
  • mode (str) — comment appliquer les paramètres de mixup/cutmix (par « batch », « pair » (paire d’éléments), « elem » (élément)
  • correct_lam (bool) — appliquer la correction lambda lorsque la bbox de cutmix est rognée par les bords de l'image
  • label_smoothing (float) — applique le lissage des étiquettes au tenseur cible mixte
  • num_classes (int) — nombre de classes pour la cible
  • multi_label (bool) — Mélange des cibles multi-étiquettes denses, en lissant chaque étiquette vers 0,5.

Mixup/Cutmix qui applique des paramètres différents à chaque élément ou à l'ensemble du lot

classe 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 avec Mixup/Cutmix qui applique des paramètres différents à chaque élément ou à l'ensemble du lot

Une implémentation de Mixup effectuée lors de la constitution des lots.

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 )

Paramètres

  • dataset — Jeu de données à charger.
  • patch_size — Taille unique de patch à utiliser.
  • patch_size_choices — Liste des tailles de patch pour l'entraînement avec des tailles de patch variables.
  • patch_size_choice_probs — Probabilités pour chaque choix de taille de patch.
  • train_seq_lens — Longueurs de séquence d'entraînement pour le lot dynamique.
  • max_seq_len — Longueur de séquence fixe pour la validation.
  • batch_size — Taille du lot pour la validation et longueur maximale de la séquence d'entraînement.
  • is_training — Indique s'il s'agit d'une phase d'entraînement (active le lotissement dynamique).
  • mixup_fn — Fonction mixup facultative.
  • no_aug — Désactiver l'augmentation.
  • re_prob — Probabilité d'effacement aléatoire.
  • re_mode — Mode d'effacement aléatoire.
  • re_count — Nombre maximal de rectangles d’effacement.
  • re_split — Indicateur de division pour l'effacement aléatoire.
  • train_crop_mode — Mode de recadrage pour l'entraînement.
  • scale — Plage d'échelle pour le redimensionnement aléatoire avec recadrage.
  • ratio — Plage de ratio d’aspect pour le recadrage aléatoire avec redimensionnement.
  • hflip — Probabilité de retournement horizontal.
  • vflip — Probabilité de retournement vertical.
  • color_jitter — Facteur de variation de couleur.
  • color_jitter_prob — Probabilité de variation de couleur.
  • grayscale_prob — Probabilité de conversion en niveaux de gris.
  • gaussian_blur_prob — Probabilité de flou gaussien.
  • auto_augment — politique AutoAugment.
  • num_aug_repeats — Nombre de répétitions d'augmentation.
  • num_aug_splits — Nombre de splits d'augmentation.
  • Méthode d'interpolation.
  • mean — Valeurs moyennes de normalisation.
  • std — Valeurs d'écart-type de normalisation.
  • channels — Nombre de canaux d'image, utilisé pour la normalisation par canal dans le préchargeur.
  • crop_pct — Pourcentage de recadrage pour la validation.
  • crop_mode — Mode de recadrage.
  • crop_border_pixels — Recouper les pixels de bordure.
  • num_workers — Nombre de travailleurs de chargement de données.
  • distributed — Indique si l'entraînement distribué est utilisé.
  • rank — Rang du processus pour l'entraînement distribué.
  • world_size — Nombre total de processus.
  • seed — Graine aléatoire.
  • epoch — Époque de départ.
  • use_prefetcher — Indique s'il faut utiliser le préchargement.
  • pin_memory — Indique s'il faut épingler la mémoire.
  • img_dtype — Type de données de l'image.
  • device — Appareil vers lequel déplacer les tenseurs.
  • persistent_workers — Indique s'il faut utiliser des workers persistants lorsque num_workers est supérieur à zéro.
  • worker_seeding — Mode d’initialisation des workers.
  • patchify_channels_last — Disposition plate par patch. True (par défaut) : l’indice de canal varie le plus rapidement (défaut NaFlex). False : C-P-P (canaux d’abord — disposition native Gemma4 / HF). Transmis à l’amont Patchify et à la disposition de normalisation du préchargeur.

Créez un chargeur de données avec un échantillonnage de longueur de séquence dynamique pour l'entraînement.

classe 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 pour un jeu de données de base de type map.

Produit des lots de longueurs de séquences variables. Il calcule une fois un calendrier de lots canonique (paires de longueur de séquence et de taille de lot) basé sur la taille totale du jeu de données (rembourré pour la distribution). À chaque époque, il mélange l'ordre de ce calendrier canonique et les indices du jeu de données. Cela garantit un nombre constant de lots et d'échantillons par époque sur tous les rangs. Gère l'entraînement distribué et les multiples travailleurs.

set_epoch

< >

( epoch: int )

Paramètres

  • epoch — Nouveau numéro d'époque.

Définir l'époque de lecture sûre pour le multiprocessing utilisée par les travailleurs du DataLoader.

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

Enveloppe appelant qui combine le mélange et la génération de la cible.

set_epoch

< >

( epoch: int )

Mettre à jour l'état de mixup pour l'époque donnée.

Update on GitHub