timm documentation
데이터
데이터
이 페이지에는 timm.data 서브패키지의 API 참조 문서와, 해당 서브패키지가 제공하는 입력 파이프라인의 개요가 포함되어 있습니다. 모델의 전처리 구성 해석, 변환 구성, 데이터셋 및 로더 생성, Mixup / CutMix, 그리고 NaFlex 가변 해상도 로더에 대한 내용입니다.
사용
Pipeline은 네 단계로 구성됩니다: resolve_model_data_config은 모델의 전처리 구성을 읽고, create_transform은 학습 또는 평가 변환을 구성하며, create_dataset은 이름과 루트를 기반으로 데이터셋을 생성하고, create_loader은 데이터셋에 대한 변환과 데이터 로더를 구성합니다.
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에서는 추론을 위한 config에서 transform 단계까지를 안내합니다.
학습 스크립트(train.py)는 파이프라인의 각 부분에 대해 이러한 옵션을 제공합니다.
입력 구성 오버라이드(resolve_input_data_config):
--input-size는 입력 형상(C, H, W)를 설정합니다.--img-size은--input-size의 정사각형 단축형으로, 모델의 채널 수는 유지됩니다.--in-chans는 입력 채널을 설정합니다.--interpolation은 리사이즈 보간법을 설정합니다.--mean은 정규화 평균을 설정합니다.--std은 정규화 표준편차를 설정합니다.--crop-pct는 평가 크롭 비율을 설정합니다.
데이터셋 생성(create_dataset) 및 대상 설정:
--dataset은 데이터셋과 리더를 선택합니다.--data-dir은 데이터셋 루트를 설정합니다.--train-split은 학습용 분할을 선택합니다.--val-split은 검증 분할을 선택합니다.--class-map은 클래스 매핑을 제공합니다.--input-img-mode는 이미지 색상 변환 모드를 설정합니다.--input-key는 이미지 필드를 선택합니다.--target-key는 라벨 필드 하나 또는 여러 개를 선택합니다.--target-format은 클래스 인덱스 또는 dense multi-hot target을 선택합니다.
로더 및 증강 옵션(create_loader)에는 다음이 포함됩니다:
--aa는 자동 증강 정책을 선택합니다.--reprob는 랜덤 에레이징 확률을 설정합니다.--remode는 랜덤 에레이징 채우기 모드를 선택합니다.--scale는 무작위 리사이즈 크롭의 스케일 범위를 설정합니다.--ratio는 무작위 리사이즈 크롭의 종횡비 범위를 설정합니다.--hflip은 수평 플립 확률을 설정합니다.--color-jitter는 컬러 지터 강도를 설정합니다.--train-interpolation은 학습 리사이즈 보간을 설정합니다.--workers는 로더 워커의 수를 설정합니다.--no-prefetcher는 prefetcher를 비활성화합니다.
Mixup 및 CutMix (Mixup):
--mixup은 Mixup 알파를 설정합니다.--cutmix는 CutMix 알파를 설정합니다.--cutmix-minmax는 CutMix 박스 크기 범위를 설정합니다.--mixup-prob은 혼합 확률을 설정합니다.--mixup-switch-prob는 두 가지 방법이 모두 활성화된 경우 CutMix를 선택할 확률을 설정합니다.--mixup-mode는 배치, 페어 또는 요소별 믹싱을 선택합니다.--smoothing은 label smoothing을 설정합니다.
예제는 Scripts를 참조하세요.
데이터 구성
resolve_data_config는 아래 키를 가진 dict를 반환하며, 이 키들은 create_transform와 create_loader의 인수와 일치합니다. args(dict, 예를 들어 파싱된 커맨드 라인 인수의 vars(args))에 설정된 값은 pretrained_cfg 인자보다 우선하며, pretrained_cfg의 기본값은 model.pretrained_cfg입니다. resolve_model_data_config는 첫 번째 인수로 model을 받는 동일한 함수입니다.
두 함수 모두 사전 학습된 cfg에서 입력 크기 및 채널을 읽으며, 이 cfg는 다른 img_size 또는 in_chans를 사용하도록 생성되거나 변경된 모델이 아닌 소스 체크포인트를 설명합니다. 학습, 검증 및 추론 스크립트에서 사용되는 resolve_input_data_config는 모델의 현재 입력 기준으로 해결합니다: 고정 입력 크기 모델은 항상 현재 크기를 받으며, 모델의 채널 또는 고정 크기와 충돌하는 명시적 args는 오류를 발생시키고, 채널 수와 일치하지 않는 mean / std는 그 평균으로 대체됩니다(경고와 함께).
| 키 | args 키 | 설명 | 기본값 |
|---|---|---|---|
input_size | input_size, img_size, in_chans | (C, H, W) 입력 크기. use_test_size=True인 경우, 설정에 test_input_size가 있으면 이를 사용합니다 | (3, 224, 224) |
interpolation | interpolation | 리사이즈 보간, bilinear, bicubic, … | bicubic |
mean, std | mean, std | Normalization, 각 채널마다 하나의 값이 반복됩니다 | ImageNet 평균 / 표준편차 |
crop_pct | crop_pct | Eval crop의 경우, 이미지는 size로 크롭하기 전에 size / crop_pct로 리사이즈됩니다 (use_test_size=True인 경우 test_crop_pct 사용). | 0.875 |
crop_mode | crop_mode | 평가 크롭 모드, center, squash 또는 border | center |
출력 size와 scale_size = floor(size / crop_pct)에 대한 eval crop 모드:
crop_mode | 동작 |
|---|---|
center | 가장 짧은 변을 scale_size로 리사이즈(종횡비 유지)한 후, 중앙에서 size 크기로 크롭 |
squash | 양쪽 가장자리를 scale_size로 리사이즈한 후(종횡비 유지 안 함), size로 중앙 크롭 |
border | 가장 긴 변을 scale_size로 리사이즈한 뒤, 중앙 크롭 및 평균 색상 패딩을 적용하며, crop_pct=1.0로 전체 이미지가 유지됩니다 |
변형
create_transform은 torchvision의 Compose를 반환합니다. eval 변환은 위에서 설명한 대로 리사이즈 및 크롭을 수행한 후, 텐서로 변환하고 정규화합니다. 학습 변환은 랜덤 리사이즈드 크롭(기본값 scale=(0.08, 1.0), ratio=(3/4, 4/3)), 수평 플립(hflip=0.5), 컬러 지터(color_jitter=0.4), 선택적 auto_augment 정책, 텐서 변환 및 정규화, 랜덤 이레이징을 포함합니다.
train_crop_mode='rkrc'또는'rkrr'는 무작위 리사이즈 크롭을 종횡비를 유지하는 무작위 리사이즈로 대체한 뒤, 중앙(rkrc) 또는 무작위(rkrr) 크롭 또는 패딩을 수행합니다.interpolation='random'(학습을 위한train.py의 기본값)는 이미지별로 bilinear 또는 bicubic을 선택합니다.no_aug=True는 학습을 리사이즈와 중앙 크롭으로만 줄입니다.
auto_augment | 증강 |
|---|---|
rand-m9-mstd0.5-inc1 | rand_augment_transform를 통한 RandAugment |
augmix-m5-w4-d2 | AugMix via augment_and_mix_transform |
original, originalr, v0, v0r, 3a | AutoAugment policy via auto_augment_transform |
RandAugment 옵션 토큰:
m은 크기를 설정합니다(기본값 10).n은 이미지당 연산 수를 설정합니다(기본값 2).p은 연산별 확률을 설정합니다(기본값 0.5).mstd는 크기 노이즈 표준편차를 설정합니다.inc1은 크기가 커질수록 심각도가 증가하는 연산을 선택합니다.t<name>는 op set(weights,3a,3aw)을 선택합니다.
AugMix 옵션 토큰:
m은 심각도를 설정합니다(기본값 3).w은 너비를 설정합니다(기본값 3).d는 깊이(기본값 -1, 무작위 1-3)를 설정합니다.b1은 혼합 증강을 활성화합니다.mstd는 크기 노이즈 표준편차를 설정합니다.
AutoAugment은 mstd를 허용하며, 예를 들어 original-mstd0.5입니다.
Transform 동작:
auto_augment이 설정된 경우, 문자열에3a가 포함되어 있지 않으면 Color jitter가 비활성화됩니다.RandomErasing(re_prob,re_count)는 정규화된 텐서에서 실행됩니다.re_mode는 영으로 채우기(const, 기본값), 영역별 무작위 정규 색상(rand) 또는 무작위 정규 픽셀(pixel,train.py의 기본값)을 지정합니다.use_prefetcher=True를 사용하면 변환이uint8텐서에서 끝나고, 정규화 및 랜덤 이레이징은 로더가 디바이스에서 수행합니다.create_transform과create_loader는 기본적으로 모델의 값이 아닌bilinear보간과 ImageNet 평균 / 표준편차를 사용합니다. 모델의 사전 학습과 일치하도록 해결된 데이터 구성을 전달하세요.
데이터셋
create_dataset은 name의 접두사를 기반으로 데이터셋 구현체와 리더를 선택합니다:
name | 데이터셋 | root | 필요 사항 |
|---|---|---|---|
'' 또는 접두사 없음 | ImageDataset, 클래스 하위 폴더에 있는 이미지(재귀적으로 검색되며, 리프 폴더 이름이 클래스가 됨), 또는 동일한 구조의 단일 .tar 파일 | Dataset 폴더 또는 .tar 파일 | |
torch/<name> | torchvision cifar10, cifar100, mnist, kmnist, fashion_mnist, qmnist, inaturalist (inat), places365, imagenet 또는 image_folder (folder) | torchvision 데이터셋 루트 | |
hfds/<name> | Hugging Face Hub 데이터셋(또는 로컬 경로)에서 datasets.load_dataset를 통해 ImageDataset | 캐시 디렉터리 (선택 사항) | datasets |
hfids/<name> | Hugging Face 데이터셋을 스트리밍하거나 download=True로 먼저 다운로드 및 준비한 IterableImageDataset | 캐시 디렉터리 (선택 사항) | datasets |
tfds/<name> | TensorFlow Datasets의 IterableImageDataset에서 download=True를 사용하면 다운로드 및 빌드 | TFDS 데이터 디렉터리 | tensorflow, tensorflow-datasets |
wds/<name> | WebDataset tar shards의 IterableImageDataset | _info.json(또는 info.json) 파일로 스플릿을 설명하는 샤드 폴더 | webdataset |
데이터셋 옵션:
split은 데이터셋 분할을 선택합니다(기본값validation). WebDataset의 경우 샘플 수를 포함한 샤드 패턴,'imagenet-train-{0000..1023}.tar|1281167'도 사용할 수 있습니다.search_split=True(기본값)은 폴더 데이터셋이root의split이름이 붙은 하위 폴더를 찾도록 하며, 해당 폴더가 없으면 train(train,training) 또는 eval(val,valid,validation,eval,evaluation) 스플릿의 동의어 이름을 가진 폴더를 찾습니다.add_img_extensions은 기본 이미지 확장자(.png,.jpg,.jpeg)에 추가합니다.class_map은 dict,.txt(한 줄에 하나의 클래스) 또는.pkl파일을 사용하여 클래스 이름을 인덱스로 재매핑합니다.
Iterable 데이터셋(hfids, tfds, wds)도 다음을 받습니다:
is_training이 쉐플링을 활성화합니다.batch_size는 학습 시 각 워커가 담당하는 샘플 수를 정수 배치 단위로 올림합니다.num_samples은 샘플 수를 설정하며, 리더가 이를 결정할 수 없는 경우(hfids에 split 정보가 없는 경우) 필수입니다.seed은 랜덤 시드를 설정합니다.repeats는 에포크당 샘플 수를 곱하여, 리더가 해당 횟수만큼 데이터를 반복적으로 읽도록 합니다.
각 epoch마다 dataset.set_epoch()을 호출하여 다시 섞습니다.
기타 키워드 인수는 리더로 그대로 전달됩니다. Hugging Face, TFDS 및 WebDataset 리더의 경우:
input_key는 이미지 필드를 선택합니다(기본값은image이며,wds의 경우jpg,png또는webp이미지입니다).target_key는 레이블 필드를 선택합니다(기본값은label이며,wds의 경우.cls파일 또는target_key로 지정된.json사이드카 필드입니다). 쉼표로 구분된 값은 클래스별로 하나의 바이너리 필드를 읽습니다.target_format='multihot'는 다중 레이블 데이터의 클래스 인덱스 목록 대신 밀집형 멀티핫 벡터를 읽습니다.target_transform=MultiLabelTarget(num_classes)은 타깃을 float multi-hot 텐서로 인코딩합니다. multi-hot 필드의 경우MultiLabelTarget에dense=True를 전달합니다.
폴더 및 tar 리더는 단일 클래스 인덱스를 반환합니다. 자세한 내용은 다중 레이블 분류를 참조하세요.
로더
create_loader는 자체 인수를 사용하여 create_transform로 transform을 생성하고, 이를 dataset.transform에 할당(기존 transform이 있으면 교체)한 뒤 DataLoader를 반환합니다. 학습용 로더(is_training=True)는 데이터를 섞고 마지막 불완전한 배치의 데이터를 제거합니다.
- 프리페처.
use_prefetcher=True(기본값)인 경우 데이터셋은uint8텐서를 반환하며, 배치들은device(기본값cuda, CUDA의 경우 사이드 스트림에서)로 이동된 뒤img_dtype으로 변환되고 정규화 및 랜덤 어레이징이 해당 위치에서 수행됩니다.device를 학습 장치로 설정하거나, 정규화된 텐서의 일반DataLoader를 사용하려면use_prefetcher=False를 설정하세요. - 분산.
distributed=True는 map-style 학습 데이터셋에DistributedSampler(또는num_aug_repeats를 사용한 반복 증강 샘플러)를 사용하고, 평가에는 각 프로세스의 샘플 수를 동일하게 패딩하는 순서 샘플러를 사용합니다. 이로 인해 검증 결과가 약간 달라질 수 있습니다. Iterable 데이터셋은 프로세스와 워커 간에 자체적으로 샤딩됩니다. - Collate.
collate_fn는 기본값(prefetcher 사용 시fast_collate, 미사용 시default_collate)을FastCollateMixup등으로 대체합니다. - 증강 분할. JSD 손실을 사용하는 AugMix(
--aug-splits)의 경우, 데이터셋을AugMixDataset(dataset, num_splits=n)으로 감싸고num_aug_splits=n을 전달합니다. 각 배치에는 깨끗한 분할 하나와n - 1개의 증강 분할이 포함되며, prefetcher가 배치 차원을 따라 이를 연결합니다. - 예약된 해상도.
input_size_choices(--train-img-sizes)는 배치별로 입력 크기를 선택하며, 선택 사항으로 각 선택 항목에 대한 배치 크기(batch_size_choices)와 첫 번째 선택 항목부터 마지막 선택 항목까지의progressive스케줄을 지정할 수 있습니다.
Mixup 및 CutMix
Mixup는 로더 이후에 디바이스에서 정규화된 이미지 배치의 혼합을 수행합니다. FastCollateMixup는 동일한 인수를 받아 로더 워커에서 collating하는 동안 uint8 이미지를 혼합하며, prefetcher가 필요합니다. 둘 다 label_smoothing(기본값 0.1)가 적용된 dense (batch_size, num_classes) targets를 반환하며, timm.loss.SoftTargetCrossEntropy와 같은 soft target loss와 함께 사용하도록 설계되어 있고, 짝수 batch size를 요구합니다.
from timm.data import Mixup, FastCollateMixup
# Continuing the example above.
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
mixup_args = dict(mixup_alpha=0.8, cutmix_alpha=1.0, label_smoothing=0.1, num_classes=1000)
# Prefetcher enabled (default), mixed in the loader's collate.
loader = create_loader(
dataset,
**data_config,
batch_size=4,
is_training=True,
collate_fn=FastCollateMixup(**mixup_args),
device=device,
)
for images, targets in loader:
... # images normalized on device, targets (4, 1000)
# Prefetcher disabled, mixed in the training loop.
loader = create_loader(dataset, **data_config, batch_size=4, is_training=True, use_prefetcher=False)
mixup_fn = Mixup(**mixup_args)
for images, targets in loader:
images, targets = mixup_fn(images.to(device), targets.to(device))Mixup 및 CutMix 컨트롤:
mixup_alpha > 0를 설정하면 Mixup이 활성화됩니다.cutmix_alpha > 0를 설정하면 CutMix가 활성화됩니다.cutmix_minmax는 박스 크기 범위를 지정하여 CutMix를 활성화합니다.switch_prob은 두 가지 방법이 모두 활성화된 경우 CutMix를 선택할 확률을 설정합니다.prob은 혼합을 수행할 확률을 설정합니다.mode는batch당, 요소pair당 또는elem(element)당 매개변수를 한 번씩 추출합니다.multi_label=True는 밀집형 다중 레이블 타깃을 혼합하며, 각 레이블을 0.5 방향으로 부드럽게 조정합니다.mixup_enabled = False는 혼합을 끕니다. 예를 들어 마지막 에포크(--mixup-off-epoch)에서 사용할 수 있습니다.FastCollateMixup의 경우 워커 프로세스에서 이 값을 읽으며, 영속 워커는 시작 시점에 설정된 값을 유지합니다.
NaFlex 가변 해상도
create_naflex_loader는 고정된 정사각형 크기로 리사이즈하지 않고 가변 길이의 패치 시퀀스로 이미지를 로드하여, NaFlex 패치 입력을 받는 모델(예: naflexvit_* 모델)에 사용합니다. 각 배치에는 patches, patch_coord, patch_valid, seq_len이 포함된 딕셔너리이며, 배치의 시퀀스 길이로 패딩됩니다.
- 학습. 데이터셋은
NaFlexMapDatasetWrapper(map-style 데이터셋만 해당)로 감싸지며, 이는 배치마다train_seq_lens중 하나를 선택하고 각 이미지를 해당 패치 수에 맞게 무작위 리사이즈 크롭합니다.batch_size는 가장 긴 시퀀스 길이에 해당하는 배치 크기이며, 더 짧은 길이의 경우 토큰 수를 대략 일정하게 유지하기 위해 8의 배수로 반올림하여 비례적으로 더 큰 배치를 사용합니다.patch_size_choices(patch_size_choice_probs와 함께)는 이를 지원하는 모델의 경우 배치마다 패치 크기도 다양하게 설정합니다. - 평가. 이미지는 주어진
patch_size기준으로max_seq_len개의 패치에 맞게 리사이즈되고(평가에 필수),max_seq_len까지 패딩됩니다. - Mixup.
mixup_fn에NaFlexMixup를 전달하면 각 배치 내에서 혼합을 수행하며,mode또는cutmix_minmax를 지원하지 않습니다.
train.py 옵션은 다음과 같습니다:
--naflex-loader는 NaFlex 로더를 활성화합니다.--naflex-train-seq-lens는 학습 시퀀스 길이를 설정합니다.--naflex-max-seq-len은 최대 평가 시퀀스 길이를 설정합니다.--naflex-patch-sizes는 가변 패치 크기 학습을 위한 패치 크기를 설정합니다.--naflex-patch-size-probs는 해당 patch size의 확률을 설정합니다.--naflex-loss-scale는 배치 크기에 따라 손실 스케일링을 선택합니다(none,sqrt또는linear).
API
데이터 구성
timm.data.resolve_data_config
< source >( args = Nonepretrained_cfg = Nonemodel = Noneuse_test_size = Falseverbose = False )
timm.data.resolve_model_data_config
< source >( modelargs = Nonepretrained_cfg = Noneuse_test_size = Falseverbose = False )
Resolve Model Data Config 이것은 resolve_data_config()과 동일하지만, 모델이 먼저 오도록 인자 순서가 재배열되었습니다.
timm.data.resolve_input_data_config
< source >( modelargs: typing.Optional[typing.Dict[str, typing.Any]] = Nonepretrained_cfg: typing.Optional[typing.Dict[str, typing.Any]] = Noneuse_test_size: bool = Falseverbose: bool = False )
현재 모델의 입력 제약 조건에 따라 전처리 문제를 해결합니다.
고정된 차원과 채널은 명시적인 요청과 일치해야 합니다. 유연한 모델은 오버라이드되지 않는 한 학습/테스트 전처리 권장 사항을 유지합니다. 정규화는 프리페치 로더의 기존 채널 적응 정책을 사용합니다.
변형
timm.data.create_transform
< source >( 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 )
매개변수
- input_size — 대상 입력 크기 (채널, 높이, 너비) 튜플 또는 크기 스칼라.
- is_training — 학습(랜덤) 변환을 반환합니다.
- no_aug — 학습용 증강을 비활성화합니다(디버깅에 유용).
- train_crop_mode — 학습용 랜덤 크롭 모드(‘rrc’, ‘rkrc’, ‘rkrr’).
- scale — 랜덤 리사이즈 스케일 범위(크롭 영역, < 1.0 => 확대).
- ratio — 무작위 종횡비 범위(RRC의 crop ratio, RKR의 ratio 조정 계수).
- hflip — 수평 플립 확률.
- vflip — 세로 방향 뒤집기 확률.
- color_jitter — 무작위 색상 jitter 구성 요소 계수(밝기, 대비, 채도, 색조). 스칼라는 (scalar,) * 3으로 적용됩니다(색조 없음).
- color_jitter_prob — None이 아닌 경우, 이 확률로 색상 지터를 적용합니다 (SimCLR 유사 증강을 위한 것).
- grayscale_prob — 이미지를 회색조로 변환할 확률 (SimCLR 유사 증강을 위한 것).
- gaussian_blur_prob — 가우시안 블러를 적용할 확률 (SimCLR 유사 증강을 위한 것).
- auto_augment — Auto augment 구성 문자열 (auto_augment.py 참조).
- interpolation — 이미지 보간 모드.
- mean — 이미지 정규화 평균.
- std — 이미지 정규화 표준 편차.
- re_prob — 랜덤 이레이징 확률.
- re_mode — 랜덤 지우기 채우기 모드.
- re_count — 랜덤 에라싱 영역의 개수.
- re_num_splits — 배치 크기에 걸쳐 랜덤 이레이징의 분할을 제어합니다.
- crop_pct — 추론 시 크롭 비율(출력 크기 / 리사이즈 크기).
- crop_mode — 추론 크롭 모드. [‘squash’, ‘border’, ‘center’] 중 하나입니다. None인 경우 기본값은 ‘center’입니다.
- crop_border_pixels — 원본 이미지의 가장자리 주위를 지정된 # 픽셀만큼 추론 크롭 보더를 설정합니다.
- tf_preprocessing — 모델 포트 테스트를 위해 TF 1.0 추론 전처리 사용
- use_prefetcher — Pre-fetcher 활성화. 이미지를 tensor로 변환하거나 정규화하지 마세요.
- normalize — 제공된 mean/std를 사용하여 정규화 텐서를 출력합니다 (prefetcher를 사용하지 않는 경우).
- separate — 3단계 튜플로 변환을 출력합니다.
- patchify — prefetcher에 의존하지 않고 출력을 Patchify합니다.
- patchify_channels_last — 각 패치 내에서 channels-last 레이아웃을 사용합니다.
- patchify_flatten — 평가 패치를 벡터로 평탄화합니다. 모델이 패치 크기 보간에 공간 차원을 필요로 하는 경우 비활성화합니다.
timm.data.rand_augment_transform
< source >( config_str: strhparams: typing.Optional[typing.Dict] = Nonetransforms: typing.Union[str, typing.Dict, typing.List, NoneType] = None )
매개변수
- config_str (str) — 랜덤 증강의 구성을 정의하는 문자열. 대시('-')로 구분된 여러 섹션으로 구성됩니다. 첫 번째 섹션은 rand augment의 특정 변형을 정의합니다(현재 'rand'만 지원). 나머지 섹션은 순서에 구애받지 않으며
- ‘m’ - rand augment의 정수 크기
- ‘n’ - 정수, 레이어 수(이미지당 선택된 변환 연산의 수)
- ‘p’ - 각 레이어를 적용할 확률 (float, 기본값 0.5)
- ‘mstd’ - 적용되는 크기 노이즈의 부동 소수점 표준 편차, 무한대(또는 > 100)인 경우 균등 샘플링
- ‘mmax’ - _LEVEL_DENOM (10)인 기본값이 아닌 다른 값으로 크기의 상한을 설정
- ‘inc’ - 정수 (bool), 심각도가 크기에 따라 증가하는 증강을 사용 (기본값: 0)
- ‘t’ - 사용할 변환 세트의 str 이름
- hparams (dict) — RandAugmentation 스킴에 사용할 기타 hparams (kwargs)
RandAugment 변환 생성
예:
'rand-m9-n3-mstd0.5'는 magnitude 9, 3개의 layer, magnitude std 0.5를 가진 RandAugment입니다.'rand-mstd1-tweights'는 magnitude std가 1.0이고 가중 변환 선택을 사용하는 RandAugment이며, 기본 magnitude 10과 2개의 레이어를 사용합니다.
timm.data.auto_augment_transform
< source >( config_str: strhparams: typing.Optional[typing.Dict] = None )
AutoAugment 변환 생성
예:
'original-mstd0.5'는 원래 정책과 0.5의 magnitude std를 가진 AutoAugment입니다.
timm.data.auto_augment.augment_and_mix_transform
< source >( config_str: strhparams: typing.Optional[typing.Dict] = None )
매개변수
- config_str (str) — 랜덤 증강의 구성을 정의하는 문자열입니다. 대시(’-’)로 구분된 여러 섹션으로 구성됩니다. 첫 번째 섹션은 rand augment의 특정 변형을 정의합니다(현재는 ‘rand’만 지원). 나머지 섹션은 순서에 구애받지 않으며, 다음과 같은 값을 결정합니다. ‘m’ - 증강 믹스의 정수 크기(심도)(기본값: 3) ‘w’ - 증강 체인의 정수 폭(기본값: 3) ‘d’ - 증강 체인의 정수 깊이(-1은 [1, 3] 범위에서 랜덤, 기본값: -1) ‘b’ - 정수(불리언), 최종 블렌딩 없이 체인의 각 분기를 최종 결과에 블렌딩하여 CPU 사용량 감소(기본값: 0) ‘mstd’ - 적용되는 크기 노이즈의 부동소수점 표준편차(기본값: 0) 예: ‘augmix-m5-w4-d2’는 심도 5, 체인 폭 4, 체인 깊이 2인 AugMix를 생성합니다
- hparams — Augmentation 변환에 사용할 기타 hparams(kwargs)
AugMix PyTorch 변환 생성
class timm.data.random_erasing.RandomErasing
< source >( probability = 0.5min_area = 0.02max_area = 0.3333333333333333min_aspect = 0.3max_aspect = Nonemode = 'const'min_count = 1max_count = Nonenum_splits = 0device = 'cuda' )
매개변수
- probability — Random Erasing 작업이 수행될 확률.
- min_area — 입력 이미지 영역 대비 지워진 영역의 최소 비율.
- max_area — 입력 이미지 영역 대비 지워진 영역의 최대 비율.
- min_aspect — 지워질 영역의 최소 가로세로 비율.
- mode — 픽셀 색상 모드, ‘const’, ‘rand’, ‘pixel’ 중 하나 ‘const’ - 지우기 블록은 모든 채널에서 0인 상수 색상 ‘rand’ - 지우기 블록은 채널별 동일한 무작위(정규) 색상 ‘pixel’ - 지우기 블록은 픽셀별 무작위(정규) 색상
이미지에서 사각형 영역을 무작위로 선택하고 해당 픽셀을 지웁니다. Zhong 외의 ‘Random Erasing Data Augmentation’ https://arxiv.org/pdf/1708.04896.pdf 참고
이 RandomErasing 변형은 dataset의 mean과 std로 정규화된 후, 배치 또는 단일 이미지 텐서에 적용하도록 설계되었습니다.
max_count: 이미지당 지울 블록의 최대 개수, 박스당 면적은 count에 의해 스케일링됩니다. 이미지당 개수는 1과 이 값 사이에서 무작위로 선택됩니다.
데이터셋
timm.data.create_dataset
< source >( 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 )
매개변수
- name — 데이터셋 이름입니다. 폴더 기반 데이터셋의 경우 비워 둘 수 있습니다. 접두사(예:
hfds/)는 대소문자를 구분하지 않으며,torch/이름의 경우를 제외하고 나머지 부분은 그대로(대소문자 구분) 전달됩니다. - root — 데이터셋의 루트 폴더(All)
- split — 데이터셋 분할(전체)
- search_split — 루트에서 split에 해당하는 하위 fold를 검색하여, cmd line / config에서
/imagenet/val대신imagenet/등을 지정할 수 있습니다. (Folder, Torch) - class_map — 텍스트 파일 또는 dict를 통해 클래스 -> 인덱스 매핑을 지정합니다 (Folder)
- load_bytes — 데이터를 로드하고 이미지를 디코딩되지 않은 바이트로 반환합니다 (Folder)
- download — 데이터셋이 존재하지 않고 지원되는 경우(HFIDS, TFDS, Torch) 다운로드
- is_training — train 모드로 데이터셋을 생성합니다. 이는 split과 다릅니다. Iterable / TDFS의 경우 shuffle을 활성화하며, 다른 데이터셋(TFDS, WDS, HFIDS)에서는 무시됩니다.
- batch_size — 반복 가능한 데이터셋(TFDS, WDS, HFIDS)에 대한 배치 크기 힌트
- seed — 반복 가능한 데이터셋(TFDS, WDS, HFIDS)에 사용할 시드
- repeats — 반복 데이터셋, 반복 횟수(에포크) (TFDS, WDS, HFIDS)
- input_img_mode — 입력 이미지의 색상 변환 모드, 예: ‘RGB’, ‘L’ (folder, TFDS, WDS, HFDS, HFIDS)
- trust_remote_code — True인 경우 Hugging Face Datasets의 원격 코드를 신뢰합니다 (HFDS, HFIDS)
- **kwargs — 기본 Dataset 및/또는 Reader 클래스에 전달할 기타 인자
Dataset 팩토리 메서드
각 인자 뒤에 괄호로 표시된 것은 해당 인자가 지원하는 데이터셋의 유형이며, 다음 중 하나입니다:
- 폴더 - 기본, timm 폴더(또는 tar) 기반 ImageDataset
- Torch - torchvision 기반 데이터셋
- HFDS - Hugging Face Datasets
- HFIDS - Hugging Face Datasets 반복 가능(스트리밍 모드, IterableDataset 사용)
- TFDS - IterableImageDataset를 통해 IterableDataset 인터페이스로 제공되는 Tensorflow-datasets 래퍼
- WDS - Webdataset
- All - 위의 항목 중 하나
class timm.data.ImageDataset
< source >( rootreader = Nonesplit = 'train'class_map = Noneload_bytes = Falseinput_img_mode = 'RGB'transform = Nonetarget_transform = Noneadditional_features = None**kwargs )
class timm.data.IterableImageDataset
< source >( 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 )
AugMix 또는 기타 clean/augmentation mix를 수행하기 위한 Dataset wrapper
num_classes 길이의 float32 multi-hot 텐서로 다중 레이블 타깃을 인코딩합니다.
기본적으로 target은 양의 클래스 인덱스 시퀀스입니다. 빈 시퀀스는 양의 라벨이 없음을 의미하며, 중복은 허용됩니다. 음수, 범위 밖의 값, 또는 정수가 아닌 값은 거부됩니다. dense=True인 경우 target은 이미 num_classes 길이의 벡터이며, [0, 1] 범위의 bool, int, 또는 float 값을 포함합니다. 이 값은 검증된 후 float32로 캐스팅되며, 소프트 값은 유지됩니다.
로더
timm.data.create_loader
< source >( 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 )
매개변수
- dataset — 로드할 이미지 데이터셋.
- input_size — 대상 입력 크기 (채널, 높이, 너비) 튜플 또는 크기 스칼라.
- batch_size — 배치에 포함된 샘플 수.
- is_training — 학습(랜덤) 변환을 반환합니다.
- no_aug — 학습용 증강을 비활성화합니다(디버깅에 유용).
- re_prob — 랜덤 이레이징 확률.
- re_mode — 랜덤 지우기 채우기 모드.
- re_count — 랜덤 에라싱 영역의 개수.
- re_split — 배치 크기 간 랜덤 이레이징 분할을 제어합니다.
- scale — 랜덤 리사이즈 스케일 범위(크롭 영역, < 1.0 => 확대).
- ratio — 무작위 종횡비 범위(RRC의 crop ratio, RKR의 ratio 조정 계수).
- hflip — 수평 플립 확률.
- vflip — 세로 방향 뒤집기 확률.
- color_jitter — 무작위 색상 jitter 구성 요소 계수(밝기, 대비, 채도, 색조). 스칼라는 (scalar,) * 3으로 적용됩니다(색조 없음).
- color_jitter_prob — None이 아닌 경우, 이 확률로 색상 지터를 적용합니다 (SimCLR 유사 증강
- grayscale_prob — 이미지를 회색조로 변환할 확률 (SimCLR 유사 증강을 위한 것).
- gaussian_blur_prob — 가우시안 블러를 적용할 확률 (SimCLR 유사 증강을 위한 것).
- auto_augment — Auto augment 구성 문자열 (auto_augment.py 참조).
- num_aug_repeats — 분산 GPU에서 동일한 증강을 반복하도록 특수 샘플러를 활성화합니다.
- num_aug_splits — 증강을 배치에 걸쳐 분할할 수 있는 모드를 활성화합니다.
- interpolation — 이미지 보간 모드.
- mean — 이미지 정규화 평균.
- std — 이미지 정규화 표준 편차.
- num_workers — DataLoader당 워커 프로세스 수.
- distributed — 분산 학습을 위한 데이터 로딩을 활성화합니다.
- crop_pct — 추론 시 크롭 비율(출력 크기 / 리사이즈 크기).
- crop_mode — 추론 크롭 모드. [‘squash’, ‘border’, ‘center’] 중 하나입니다. None인 경우 기본값은 ‘center’입니다.
- crop_border_pixels — 원본 이미지의 가장자리 주위를 지정된 # 픽셀만큼 추론 크롭 보더를 설정합니다.
- collate_fn — 기본 collate_fn을 재정의합니다.
- pin_memory — 디바이스 전송을 위해 메모리를 고정합니다.
- fp16 — 반정밀 입력 dtype를 위한 비추천 인자. img_dtype을 사용하세요.
- img_dtype — 입력 이미지의 데이터 유형.
- device — 입력과 타깃을 전송할 장치.
- use_prefetcher — 샘플을 장치로 로드하기 위해 효율적인 pre-fetcher를 사용합니다.
- use_multi_epochs_loader —
- persistent_workers —
num_workers가 0보다 큰 경우 영속 워커 프로세스를 활성화합니다. - worker_seeding — 초기화 시 워커의 무작위 시딩을 제어합니다.
- tf_preprocessing — 모델 포트 테스트를 위해 TF 1.0 추론 전처리 사용.
- input_size_choices — 스케줄된 해상도 학습을 위한 배치별 입력 크기 선택지.
- batch_size_choices — 각 입력 크기 선택에 해당하는 배치 크기. 지정되지 않은 경우 모든 선택에 대해
batch_size를 사용합니다. - batch_choice_weights — 입력 크기 선택에 대한 샘플링 가중치. 지정되지 않으면 균등 분포를 사용합니다.
- batch_choice_seed — 배치 스케줄을 생성하고 섞는 데 사용되는 랜덤 시드.
- batch_choice_schedule — Choice schedule 모드.
constant또는progressive중 하나입니다. - batch_schedule_epochs — 점진적 스케줄이 선택지를 순회하는 에포크 수.
- batch_schedule_spread — 선택 인덱스 단위로 표현된 점진적 선택 창(progressive choice window)의 표준 편차.
- batch_schedule_random_mix — 점진적 스케줄에서 가중치가 0이 아닌 선택지에 대한 균등한 무작위 탐색의 비율.
- num_batches — 에포크당 로더 배치의 고정 개수. 지정되지 않은 경우, 점진적 스케줄의 경우 스케줄 평균 배치 크기에서 추론됩니다.
Mixup 및 CutMix
class timm.data.Mixup
< source >( 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 )
매개변수
- mixup_alpha (float) — mixup alpha 값입니다. 0보다 크면 mixup이 활성화됩니다.
- cutmix_alpha (float) — cutmix alpha 값, 0보다 크면 cutmix가 활성화됩니다.
- cutmix_minmax (List[float]) — cutmix min/max 이미지 비율입니다. cutmix가 활성화되어 있고 None이 아닌 경우 alpha 대신 이 값을 사용합니다.
- prob (float) — 배치 또는 요소별로 mixup 또는 cutmix를 적용할 확률
- switch_prob (float) — 둘 다 활성화된 경우 mixup 대신 cutmix로 전환할 확률
- mode (str) — mixup/cutmix 파라미터를 적용하는 방식 (‘batch’, ‘pair’ (요소 쌍), ‘elem’ (요소))
- correct_lam (bool) — cutmix bbox가 이미지 경계에 의해 잘리는 경우 lambda 보정을 적용합니다
- label_smoothing (float) — 혼합된 대상 텐서에 라벨 스무딩을 적용합니다
- num_classes (int) — 대상의 클래스 수
- multi_label (bool) — 밀집형 다중 레이블 타깃을 혼합하며, 각 레이블을 0.5 방향으로 스무딩합니다.
각 요소 또는 전체 배치에 서로 다른 매개변수를 적용하는 Mixup/Cutmix
class timm.data.FastCollateMixup
< source >( 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 )
각 요소 또는 전체 배치에 서로 다른 매개변수를 적용하는 Mixup/Cutmix를 지원하는 빠른 Collate
collate하는 동안 수행되는 Mixup 구현입니다.
NaFlex
timm.data.create_naflex_loader
< source >( 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 )
매개변수
- dataset — 로드할 Dataset.
- patch_size — 사용할 단일 패치 크기.
- patch_size_choices — 가변 패치 크기 학습을 위한 패치 크기 목록.
- patch_size_choice_probs — 각 패치 크기 선택에 대한 확률.
- train_seq_lens — 동적 배치(dynamic batching)를 위한 학습 시퀀스 길이.
- max_seq_len — 검증에 사용되는 고정 시퀀스 길이.
- batch_size — 검증용 배치 크기 및 최대 학습 시퀀스 길이.
- is_training — 학습용인지 여부(동적 배치 처리를 활성화합니다).
- mixup_fn — 선택적 mixup 함수.
- no_aug — 증강을 비활성화합니다.
- re_prob — 랜덤 이레이징 확률.
- re_mode — 랜덤 지우기 모드.
- re_count — 지우개 사각형의 최대 개수.
- re_split — 랜덤 지우기 분할 플래그.
- train_crop_mode — 학습 크롭 모드.
- scale — 랜덤 리사이즈 크롭의 스케일 범위.
- ratio — 무작위 리사이즈 크롭에 사용할 가로세로 비율 범위.
- hflip — 수평 플립 확률.
- vflip — 세로 방향 뒤집기 확률.
- color_jitter — 색상 jitter 계수.
- color_jitter_prob — 색상 jitter 확률.
- grayscale_prob — 회색 변환 확률.
- gaussian_blur_prob — 가우시안 블러 확률.
- auto_augment — AutoAugment 정책.
- num_aug_repeats — 증강 반복 횟수.
- num_aug_splits — 증강 분할의 수.
- interpolation — 보간 방법.
- mean — 정규화 평균 값.
- std — 정규화 표준 편차 값.
- channels — 이미지 채널 수. prefetcher에서 채널별 정규화에 사용됩니다.
- crop_pct — 검증용 크롭 비율.
- crop_mode — 크롭 모드.
- crop_border_pixels — 경계 픽셀을 자릅니다.
- num_workers — 데이터 로딩 워커의 수.
- distributed — 분산 학습을 사용할지 여부.
- rank — 분산 학습을 위한 프로세스 랭크.
- world_size — 전체 프로세스 수.
- seed — 랜덤 시드.
- epoch — 시작 epoch.
- use_prefetcher — 프리페칭을 사용할지 여부.
- pin_memory — 메모리를 고정할지 여부.
- img_dtype — 이미지 데이터 유형.
- device — 텐서를 이동할 대상 디바이스.
- persistent_workers —
num_workers가 0보다 큰 경우 영속 워커를 사용할지 여부. - worker_seeding — Worker seeding 모드.
- patchify_channels_last — 패치별 평탄화 레이아웃.
True(기본값): 채널 인덱스가 가장 빠르게 변합니다 (NaFlex 기본값).False: C-P-P (채널 우선 — Gemma4 / HF 네이티브 레이아웃). 상위Patchify및 프리페처의 정규화 레이아웃으로 전달됩니다.
학습을 위해 동적 시퀀스 길이 샘플링을 사용하는 데이터 로더를 생성합니다.
class timm.data.NaFlexMapDatasetWrapper
< source >( 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 )
map 스타일 기반 데이터셋을 위한 IterableDataset 래퍼.
가변 시퀀스 길이를 가진 배치(yields batches)를 생성합니다. 전체 데이터셋 크기(분배를 위해 패딩된 값)를 기준으로 정준 배치 스케줄(시퀀스 길이, 배치 크기 쌍)을 한 번만 계산합니다. 각 에포크마다 이 정준 스케줄의 순서와 데이터셋 인덱스를 섞습니다. 이를 통해 모든 랭크에서 에포크당 배치 수와 샘플 수가 일관되게 유지됩니다. 분산 학습과 여러 워커를 처리합니다.
DataLoader 워커가 읽는 multiprocessing-safe epoch을 설정합니다.
class timm.data.NaFlexMixup
< source >( 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 )
혼합과 대상 생성을 결합하는 콜러블 래퍼입니다.
epoch에 대한 mixup 상태를 업데이트합니다.