timm documentation

Dữ liệu

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Dữ liệu

Trang này chứa tài liệu tham khảo API cho sub-package timm.data, cùng với tổng quan về pipeline đầu vào mà nó cung cấp: xác định cấu hình tiền xử lý của model, xây dựng transforms, tạo datasets và loaders, Mixup / CutMix, và loader phân giải biến NaFlex.

Cách sử dụng

Một pipeline được xây dựng qua bốn bước: resolve_model_data_config đọc cấu hình tiền xử lý của mô hình, create_transform xây dựng transform cho tập huấn luyện hoặc đánh giá, create_dataset tạo một dataset theo tên và thư mục gốc, và create_loader xây dựng transform cùng data loader cho một 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 hướng dẫn các bước cấu hình để chuyển đổi cho suy luận.

Tệp huấn luyện (train.py) cung cấp các tùy chọn này cho từng phần của quy trình.

Ghi đè cấu hình đầu vào (resolve_input_data_config):

  • --input-size đặt hình dạng đầu vào (C, H, W).
  • --img-size là cú pháp rút gọn dạng vuông cho --input-size, giữ nguyên số kênh của mô hình.
  • --in-chans thiết lập số kênh đầu vào.
  • --interpolation thiết lập phương pháp nội suy khi thay đổi kích thước.
  • --mean đặt giá trị trung bình chuẩn hóa.
  • --std đặt độ lệch chuẩn của phép chuẩn hóa.
  • --crop-pct đặt tỷ lệ crop đánh giá.

Tạo Dataset (create_dataset) và thiết lập target:

  • --dataset chọn bộ dữ liệu và trình đọc.
  • --data-dir đặt thư mục gốc của bộ dữ liệu.
  • --train-split chọn tập dữ liệu huấn luyện.
  • --val-split chọn phần chia kiểm định.
  • --class-map cung cấp ánh xạ lớp.
  • --input-img-mode đặt chế độ chuyển đổi màu hình ảnh.
  • --input-key chọn trường ảnh.
  • --target-key chọn trường nhãn hoặc các trường nhãn.
  • --target-format chọn các chỉ số lớp hoặc các mục tiêu đa nhiệt độ dày đặc.

Các tùy chọn loader và augmentation (create_loader) bao gồm:

  • --aa chọn chính sách tăng cường tự động.
  • --reprob đặt xác suất xóa ngẫu nhiên.
  • --remode chọn chế độ điền cho việc xóa ngẫu nhiên.
  • --scale đặt phạm vi tỷ lệ crop được resize ngẫu nhiên.
  • --ratio đặt phạm vi tỷ lệ khung hình của thao tác crop có kích thước ngẫu nhiên.
  • --hflip đặt xác suất lật ngang.
  • --color-jitter thiết lập cường độ jitter màu.
  • --train-interpolation đặt phương pháp nội suy khi thay đổi kích thước trong quá trình huấn luyện.
  • --workers thiết lập số lượng worker của loader.
  • --no-prefetcher tắt prefetcher.

Mixup và CutMix (Mixup):

  • --mixup đặt alpha của Mixup.
  • --cutmix đặt alpha của CutMix.
  • --cutmix-minmax đặt phạm vi kích thước hộp CutMix.
  • --mixup-prob đặt xác suất trộn.
  • --mixup-switch-prob đặt xác suất chọn CutMix khi cả hai phương pháp đều được bật.
  • --mixup-mode chọn trộn theo batch, cặp hoặc từng phần tử.
  • --smoothing thiết lập làm mịn nhãn.

Xem Scripts để có ví dụ.

Cấu hình dữ liệu

resolve_data_config trả về một dict với các key bên dưới, khớp với các đối số của create_transform và create_loader. Các giá trị được đặt trong args (một dict, ví dụ vars(args) của các đối số dòng lệnh đã được phân tích) có độ ưu tiên cao hơn đối số pretrained_cfg, mặc định là model.pretrained_cfg. resolve_model_data_config hoạt động tương tự nhưng với model làm đối số đầu tiên.

Cả hai đều đọc kích thước đầu vào và số kênh từ cfg được huấn luyện trước, mô tả checkpoint nguồn, chứ không phải mô hình được tạo hoặc thay đổi để sử dụng img_size hoặc in_chans khác. resolve_input_data_config, được sử dụng bởi các script huấn luyện, xác thực và suy luận, sẽ đối chiếu với đầu vào hiện tại của mô hình: mô hình có kích thước đầu vào cố định luôn nhận kích thước hiện tại của nó, các args tường minh xung đột với số kênh hoặc kích thước cố định của mô hình sẽ gây ra lỗi, và mean / std không khớp với số kênh sẽ được thay thế bằng giá trị trung bình của chúng (kèm theo cảnh báo).

KhóaCác khóa của argsMô tảMặc định
input_sizeinput_size, img_size, in_chansKích thước đầu vào (C, H, W). Với use_test_size=True, test_input_size của cấu hình sẽ được sử dụng nếu có(3, 224, 224)
interpolationinterpolationNội suy thay đổi kích thước, bilinear, bicubic, …bicubic
mean, stdmean, stdChuẩn hóa, một giá trị duy nhất được lặp lại cho mỗi kênhTrung bình / độ lệch chuẩn của ImageNet
crop_pctcrop_pctVới Eval crop, ảnh được thay đổi kích thước thành size / crop_pct trước khi được cắt thành size (test_crop_pct với use_test_size=True)0.875
crop_modecrop_modeChế độ cắt khi đánh giá, center, squash hoặc bordercenter

Các chế độ cắt cho đánh giá, với size đầu ra và scale_size = floor(size / crop_pct):

crop_modeHành vi
centerPhóng to cạnh ngắn nhất thành scale_size (giữ nguyên tỷ lệ khung hình), sau đó cắt ở giữa thành size
squashPhóng to cả hai cạnh lên scale_size (không giữ nguyên tỷ lệ khung hình), sau đó cắt ở giữa thành size
borderPhóng to cạnh dài nhất thành scale_size, cắt ở giữa và chèn viền bằng màu trung bình, toàn bộ hình ảnh được giữ ở crop_pct=1.0

Biến đổi

create_transform trả về một Compose của torchvision. Transform đánh giá sẽ resize và crop như ở trên, sau đó chuyển sang tensor và chuẩn hóa. Transform huấn luyện là random resized crop (mặc định scale=(0.08, 1.0), ratio=(3/4, 4/3)), lật ngang (hflip=0.5), color jitter (color_jitter=0.4), chính sách auto_augment tùy chọn, chuyển đổi tensor và chuẩn hóa, cùng với random erasing.

  • train_crop_mode='rkrc' hoặc 'rkrr' thay thế thao tác crop có kích thước ngẫu nhiên bằng thao tác resize ngẫu nhiên giữ nguyên tỷ lệ khung hình, sau đó thực hiện crop hoặc pad ở giữa (rkrc) hoặc ngẫu nhiên (rkrr).
  • interpolation='random' (mặc định của train.py khi huấn luyện) chọn bilinear hoặc bicubic cho từng ảnh.
  • no_aug=True giảm quy trình huấn luyện xuống còn thao tác thay đổi kích thước và cắt ở giữa.
auto_augmentTăng cường
rand-m9-mstd0.5-inc1RandAugment thông qua rand_augment_transform
augmix-m5-w4-d2AugMix thông qua augment_and_mix_transform
original, originalr, v0, v0r, 3aAutoAugment policy thông qua auto_augment_transform

Các token tùy chọn của RandAugment:

  • m đặt độ lớn (mặc định là 10).
  • n đặt số lượng ops trên mỗi ảnh (mặc định là 2).
  • p đặt xác suất cho mỗi op (mặc định là 0.5).
  • mstd đặt độ lệch chuẩn của nhiễu biên độ.
  • inc1 chọn các op mà mức độ nghiêm trọng tăng theo biên độ.
  • t<name> chọn bộ toán tử (weights, 3a, 3aw).

Các token tùy chọn AugMix:

  • m đặt mức độ nghiêm trọng (mặc định là 3).
  • w đặt chiều rộng (mặc định là 3).
  • d đặt độ sâu (mặc định -1, ngẫu nhiên 1-3).
  • b1 cho phép tăng cường dữ liệu hỗn hợp.
  • mstd đặt độ lệch chuẩn của nhiễu biên độ.

AutoAugment chấp nhận mstd, ví dụ original-mstd0.5.

Hành vi của Transform:

  • Color jitter bị vô hiệu hóa khi auto_augment được đặt, trừ khi chuỗi chứa 3a.
  • RandomErasing (re_prob, re_count) chạy trên tensor đã chuẩn hóa. re_mode điền bằng số không (const, mặc định), một màu chuẩn ngẫu nhiên cho mỗi vùng (rand) hoặc các pixel chuẩn ngẫu nhiên (pixel, mặc định của train.py).
  • use_prefetcher=True kết thúc transform tại một tensor uint8, sau đó normalization và random erasing được thực hiện bởi loader trên thiết bị.
  • create_transform và create_loader mặc định sử dụng nội suy bilinear và giá trị trung bình / độ lệch chuẩn của ImageNet, thay vì các giá trị của mô hình. Hãy truyền cấu hình dữ liệu đã được giải quyết để khớp với quá trình tiền huấn luyện của mô hình.

Bộ dữ liệu

create_dataset chọn triển khai dataset và reader từ một tiền tố của name:

nameBộ dữ liệurootYêu cầu
'' hoặc không có tiền tốImageDataset, các hình ảnh trong các thư mục con của lớp (tìm kiếm đệ quy, tên thư mục lá là tên lớp), hoặc một tệp .tar duy nhất có cùngThư mục Dataset hoặc tệp .tar
torch/<name>torchvision cifar10, cifar100, mnist, kmnist, fashion_mnist, qmnist, inaturalist (inat), places365, imagenet hoặc image_folder (folder)thư mục gốc của bộ dữ liệu torchvision
hfds/<name>ImageDataset trên một dataset của Hugging Face Hub (hoặc đường dẫn cục bộ) thông qua datasets.load_datasetThư mục cache (tùy chọn)datasets
hfids/<name>IterableImageDataset, bộ dữ liệu Hugging Face được stream, hoặc được tải xuống và chuẩn bị trước với download=TrueThư mục cache (tùy chọn)datasets
tfds/<name>IterableImageDataset trên TensorFlow Datasets, download=True sẽ tải xuống và xây dựngThư mục dữ liệu TFDStensorflow, tensorflow-datasets
wds/<name>IterableImageDataset trên các shard tar của WebDatasetThư mục shard có _info.json (hoặc info.json) mô tả các phần chiawebdataset

Các tùy chọn bộ dữ liệu:

  • split chọn phần chia của bộ dữ liệu (mặc định là validation). Đối với WebDataset, nó cũng có thể là một mẫu shard kèm theo số lượng mẫu, 'imagenet-train-{0000..1023}.tar|1281167'.
  • search_split=True (mặc định) khiến các dataset dạng thư mục tìm kiếm thư mục con của root có tên là split hoặc, nếu không có, một từ đồng nghĩa của split train (train, training) hoặc eval (val, valid, validation, eval, evaluation).
  • add_img_extensions bổ sung vào các định dạng ảnh mặc định (.png, .jpg và .jpeg).
  • class_map ánh xạ lại tên lớp sang chỉ số bằng một dict, một tệp .txt (mỗi dòng một lớp) hoặc một tệp .pkl.

Các tập dữ liệu dạng lặp (hfids, tfds, wds) cũng nhận:

  • is_training cho phép xáo trộn.
  • batch_size làm tròn phần mẫu của mỗi worker lên thành các batch nguyên khi huấn luyện.
  • num_samples đặt số lượng mẫu, bắt buộc khi trình đọc không thể xác định được (hfids không có thông tin phân chia).
  • seed đặt hạt ngẫu nhiên.
  • repeats nhân số mẫu mỗi epoch, các reader sẽ quét qua dữ liệu bấy nhiêu lần.

Gọi dataset.set_epoch() mỗi epoch để xáo trộn lại.

Các đối số từ khóa khác được truyền tiếp đến trình đọc. Đối với các trình đọc Hugging Face, TFDS và WebDataset:

  • input_key chọn trường ảnh (mặc định là image, đối với wds là ảnh jpg, png hoặc webp).
  • target_key chọn trường nhãn (mặc định là label, với wds là tệp .cls hoặc trường sidecar .json được đặt tên bởi target_key). Giá trị phân tách bằng dấu phẩy đọc một trường nhị phân cho mỗi lớp.
  • target_format='multihot' đọc các vector multi-hot dày đặc thay vì các danh sách chỉ số lớp cho dữ liệu đa nhãn.
  • target_transform=MultiLabelTarget(num_classes) mã hóa các mục tiêu thành các tensor multi-hot dạng float. Truyền dense=True vào MultiLabelTarget cho các trường multi-hot.

Trình đọc thư mục và tar trả về các chỉ mục lớp đơn. Xem phân loại đa nhãn để biết thêm chi tiết.

Trình nạp

create_loader tạo transform bằng create_transform từ các đối số của chính nó, gán nó cho dataset.transform (thay thế mọi transform hiện có) và trả về một DataLoader. Các loader huấn luyện (is_training=True) sẽ xáo trộn và bỏ qua batch cuối cùng không đầy đủ.

  • Trình lấy trước (Prefetcher). Với use_prefetcher=True (mặc định), tập dữ liệu sẽ tạo ra các tensor uint8, các lô (batch) được chuyển đến device (mặc định là cuda, trên một luồng phụ cho CUDA), sau đó được chuyển đổi sang img_dtype, chuẩn hóa và xóa ngẫu nhiên ngay tại đó. Đặt device thành thiết bị huấn luyện, hoặc đặt use_prefetcher=False để sử dụng DataLoader thông thường với các tensor đã được chuẩn hóa.
  • Phân tán. distributed=True sử dụng DistributedSampler cho các tập dữ liệu huấn luyện theo kiểu map (hoặc một bộ lấy mẫu tăng cường lặp lại với num_aug_repeats) và một bộ lấy mẫu có thứ tự cho đánh giá, trong đó mỗi tiến trình được đệm để có cùng số lượng mẫu, điều này có thể làm thay đổi nhẹ kết quả xác thực. Các tập dữ liệu dạng iterable tự chia nhỏ (shard) trên các tiến trình và worker.
  • Collate. collate_fn thay thế mặc định (fast_collate với prefetcher, default_collate không có), ví dụ bằng FastCollateMixup.
  • Các phần chia tăng cường. Đối với AugMix có loss JSD (--aug-splits), bọc dataset trong AugMixDataset(dataset, num_splits=n) và truyền num_aug_splits=n. Mỗi batch chứa một phần chia sạch và n - 1 phần chia đã tăng cường, được nối theo chiều batch bởi prefetcher.
  • Giải quyết theo lịch trình. input_size_choices (--train-img-sizes) chọn kích thước đầu vào cho mỗi batch, tùy chọn kèm kích thước batch cho từng lựa chọn (batch_size_choices) và lịch trình progressive từ lựa chọn đầu tiên đến lựa chọn cuối cùng.

Mixup và CutMix

Mixup trộn một batch ảnh đã chuẩn hóa trên thiết bị, sau loader. FastCollateMixup nhận cùng các đối số và trộn các ảnh uint8 trong khi collate trong các worker của loader, nó yêu cầu prefetcher. Cả hai đều trả về các target dạng dense (batch_size, num_classes) với label_smoothing (mặc định là 0.1) được áp dụng, để sử dụng với một loss target mềm như timm.loss.SoftTargetCrossEntropy, và yêu cầu batch size chẵn.

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

Các điều khiển Mixup và CutMix:

  • mixup_alpha > 0 bật Mixup.
  • cutmix_alpha > 0 bật CutMix.
  • cutmix_minmax cho phép bật CutMix với một khoảng kích thước hộp.
  • switch_prob đặt xác suất chọn CutMix khi cả hai phương pháp đều được bật.
  • prob đặt xác suất của việc trộn lẫn.
  • mode vẽ các tham số một lần cho mỗi batch, cho mỗi pair các phần tử hoặc cho mỗi elem (phần tử).
  • multi_label=True trộn các mục tiêu đa nhãn dạng dense, làm mượt từng nhãn về phía 0.5.
  • mixup_enabled = False tắt tính năng trộn, ví dụ cho các epoch cuối (--mixup-off-epoch). Đối với FastCollateMixup, giá trị này được đọc trong các tiến trình worker; các worker bền (persistent) sẽ giữ nguyên giá trị ban đầu của chúng.

NaFlex độ phân giải biến

create_naflex_loader nạp ảnh dưới dạng các chuỗi patch có độ dài thay đổi, mà không resize về kích thước vuông cố định, dành cho các mô hình nhận đầu vào patch NaFlex (ví dụ các mô hình naflexvit_*). Mỗi batch là một dict gồm patches, patch_coord, patch_valid và seq_len, được pad đến độ dài chuỗi của batch.

  • Đào tạo. Bộ dữ liệu được bọc trong NaFlexMapDatasetWrapper (chỉ dành cho các bộ dữ liệu dạng map), trong đó mỗi batch sẽ chọn một trong số train_seq_lens và thực hiện random resize crop cho từng ảnh để vừa với số lượng patch tương ứng. batch_size là kích thước batch tại độ dài chuỗi dài nhất; các độ dài ngắn hơn sẽ có batch lớn hơn theo tỷ lệ (làm tròn xuống đến bội số của 8) để số token mỗi batch gần như không đổi. patch_size_choices (kết hợp với patch_size_choice_probs) cũng thay đổi kích thước patch theo từng batch, dành cho các mô hình hỗ trợ tính năng này.
  • Đánh giá. Ảnh được điều chỉnh kích thước để vừa với max_seq_len patch ở patch_size đã cho (bắt buộc cho đánh giá) và được đệm lên max_seq_len.
  • Mixup. Truyền một NaFlexMixup vào mixup_fn, nó sẽ trộn lẫn trong mỗi batch và không hỗ trợ mode hoặc cutmix_minmax.

Các tùy chọn của train.py là:

  • --naflex-loader bật trình nạp NaFlex.
  • --naflex-train-seq-lens thiết lập độ dài chuỗi huấn luyện.
  • --naflex-max-seq-len đặt độ dài chuỗi đánh giá tối đa.
  • --naflex-patch-sizes thiết lập kích thước patch cho việc huấn luyện với kích thước patch thay đổi.
  • --naflex-patch-size-probs thiết lập xác suất cho các kích thước patch đó.
  • --naflex-loss-scale chọn việc mở rộng loss theo kích thước batch (none, sqrt hoặc linear).

API

Cấu hình dữ liệu

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 )

Tham số

  • model (nn.Module) — bản thể của mô hình
  • args (dict) — các đối số dòng lệnh / cấu hình ở dạng dict (ghi đè pretrained_cfg)
  • pretrained_cfg (dict) — cấu hình của mô hình được huấn luyện trước (ghi đè pretrained_cfg gắn với mô hình)
  • use_test_size (bool) — sử dụng độ phân giải đầu vào ở thời điểm kiểm tra (nếu có) thay vì độ phân giải huấn luyện mặc định
  • verbose (bool) — bật ghi log bổ sung cho các giá trị đã được phân giải

Giải quyết Cấu hình Dữ liệu Mô hình Điều này tương đương với resolve_data_config() nhưng với các đối số được sắp xếp lại để đặt mô hình lên đầu.

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 )

Giải quyết tiền xử lý theo các ràng buộc đầu vào của mô hình hiện tại.

Kích thước và số kênh cố định phải khớp với các yêu cầu tường minh. Các mô hình linh hoạt giữ lại các khuyến nghị tiền xử lý cho tập huấn luyện/kiểm tra trừ khi bị ghi đè. Chuẩn hóa sử dụng chính sách thích ứng kênh hiện có của các trình nạp trước (prefetch loaders).

Biến đổi

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 )

Tham số

  • input_size — Kích thước đầu vào mục tiêu, dưới dạng tuple (channels, height, width) hoặc giá trị vô hướng.
  • is_training — Trả về các biến đổi (random) cho quá trình huấn luyện.
  • no_aug — Tắt tăng cường dữ liệu cho huấn luyện (hữu ích để gỡ lỗi).
  • train_crop_mode — Chế độ cắt ngẫu nhiên khi huấn luyện (‘rrc’, ‘rkrc’, ‘rkrr’).
  • scale — Khoảng tỷ lệ thay đổi kích thước ngẫu nhiên (vùng crop, < 1.0 => thu phóng vào).
  • ratio — Khoảng tỷ lệ khung hình ngẫu nhiên (tỷ lệ cắt cho RRC, hệ số điều chỉnh tỷ lệ cho RKR).
  • hflip — Xác suất lật ngang.
  • vflip — Xác suất lật dọc.
  • color_jitter — Các hệ số thành phần jitter màu ngẫu nhiên (độ sáng, độ tương phản, độ bão hòa, sắc độ). Giá trị vô hướng được áp dụng dưới dạng (scalar,) * 3 (không có sắc độ).
  • color_jitter_prob — Áp dụng color jitter với xác suất này nếu không phải None (cho tăng cường kiểu SimCLR).
  • grayscale_prob — Xác suất chuyển ảnh sang thang xám (cho tăng cường kiểu SimCLR).
  • gaussian_blur_prob — Xác suất áp dụng gaussian blur (cho tăng cường kiểu SimCLR).
  • auto_augment — Chuỗi cấu hình auto augment (xem auto_augment.py).
  • interpolation — Chế độ nội suy ảnh.
  • mean — Giá trị trung bình để chuẩn hóa ảnh.
  • std — Độ lệch chuẩn chuẩn hóa ảnh.
  • re_prob — Xác suất xóa ngẫu nhiên.
  • re_mode — Chế độ lấp đầy xóa ngẫu nhiên.
  • re_count — Số lượng vùng xóa ngẫu nhiên.
  • re_num_splits — Kiểm soát việc chia tách random erasing trên kích thước batch.
  • crop_pct — Tỷ lệ cắt khi suy luận (kích thước đầu ra / kích thước điều chỉnh).
  • crop_mode — Chế độ cắt khi suy luận. Một trong [‘squash’, ‘border’, ‘center’]. Mặc định là ‘center’ khi là None.
  • crop_border_pixels — Cắt bỏ viền khi suy luận, loại bỏ # pixel quanh cạnh của ảnh gốc.
  • tf_preprocessing — Sử dụng tiền xử lý suy luận TF 1.0 để kiểm tra các bản port mô hình
  • use_prefetcher — Bật pre-fetcher. Không chuyển đổi ảnh sang tensor hoặc chuẩn hóa.
  • normalize — Tensor chuẩn hóa đầu ra với mean/std được cung cấp (nếu không dùng prefetcher).
  • separate — Chuyển đổi đầu ra thành bộ ba 3 giai đoạn.
  • patchify — Patchify đầu ra thay vì dựa vào prefetcher.
  • patchify_channels_last — Sử dụng bố cục channels-last trong mỗi patch.
  • patchify_flatten — Dẹt các patch đánh giá thành các vector. Tắt khi mô hình cần các chiều không gian của chúng để nội suy kích thước patch.

timm.data.rand_augment_transform

< >

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

Tham số

  • config_str (str) — Chuỗi định nghĩa cấu hình của random augmentation. Gồm nhiều phần được phân tách bằng dấu gạch ngang ('-'). Phần đầu tiên định nghĩa biến thể cụ thể của rand augment (hiện tại chỉ có 'rand'). Các phần còn lại, không phụ thuộc vào thứ tự, xác định
    • ‘m’ - độ lớn nguyên của rand augment
    • ‘n’ - số nguyên num layers (số lượng phép biến đổi được chọn cho mỗi ảnh)
    • ‘p’ - xác suất float để áp dụng mỗi lớp (mặc định là 0.5)
    • ‘mstd’ - độ lệch chuẩn dạng float của nhiễu biên độ được áp dụng, hoặc lấy mẫu đều nếu là vô cùng (hoặc > 100)
    • ‘mmax’ - đặt giới hạn trên cho độ lớn thành một giá trị khác mặc định là _LEVEL_DENOM (10)
    • ‘inc’ - số nguyên (bool), sử dụng các phép tăng cường có mức độ nghiêm trọng tăng dần theo độ lớn (mặc định: 0)
    • ‘t’ - str tên của bộ biến đổi cần sử dụng
  • hparams (dict) — Các hparams (kwargs) khác cho phương án RandAugmentation

Tạo một transform RandAugment

Ví dụ:

  • 'rand-m9-n3-mstd0.5' là RandAugment với magnitude 9, 3 lớp và độ lệch chuẩn magnitude là 0.5.
  • 'rand-mstd1-tweights' là RandAugment với độ lệch chuẩn của magnitude là 1.0 và lựa chọn biến đổi có trọng số, ở mức magnitude mặc định là 10 và 2 lớp.

timm.data.auto_augment_transform

< >

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

Tham số

  • config_str — Chuỗi định nghĩa cấu hình của auto augmentation. Gồm nhiều phần được phân tách bằng dấu gạch ngang ('-'). Phần đầu tiên định nghĩa chính sách AutoAugment (một trong 'v0', 'v0r', 'original', 'originalr'). Trong khi các phần còn lại định nghĩa các đối số khác
    • ‘mstd’ - độ lệch chuẩn dạng float của nhiễu biên độ được áp dụng
  • hparams — Các hparams (kwargs) khác cho lược đồ AutoAugmentation

Tạo một transform AutoAugment

Ví dụ:

  • 'original-mstd0.5' là AutoAugment với chính sách gốc và độ lệch chuẩn của magnitude là 0.5.

timm.data.auto_augment.augment_and_mix_transform

< >

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

Tham số

  • config_str (str) — Chuỗi định nghĩa cấu hình của tăng dữ liệu ngẫu nhiên. Gồm nhiều phần được phân tách bằng dấu gạch ngang (’-’). Phần đầu tiên định nghĩa biến thể cụ thể của rand augment (hiện tại chỉ có ‘rand’). Các phần còn lại, không phụ thuộc vào thứ tự, xác định: ‘m’ - độ lớn (mức độ nghiêm trọng) dạng số nguyên của hỗn hợp tăng dữ liệu (mặc định: 3) ‘w’ - độ rộng dạng số nguyên của chuỗi tăng dữ liệu (mặc định: 3) ‘d’ - độ sâu dạng số nguyên của chuỗi tăng dữ liệu (-1 là ngẫu nhiên [1, 3], mặc định: -1) ‘b’ - số nguyên (bool), trộn mỗi nhánh của chuỗi vào kết quả cuối mà không cần bước trộn cuối cùng, ít tốn CPU hơn (mặc định: 0) ‘mstd’ - độ lệch chuẩn dạng số thực của nhiễu độ lớn được áp dụng (mặc định: 0) VD ‘augmix-m5-w4-d2’ cho ra AugMix với mức độ nghiêm trọng 5, độ rộng chuỗi 4, độ sâu chuỗi 2
  • hparams — Các hparams (kwargs) khác cho các biến đổi Augmentation

Tạo biến đổi AugMix PyTorch

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

Tham số

  • probability — Xác suất thao tác Random Erasing sẽ được thực hiện.
  • min_area — Tỷ lệ phần trăm tối thiểu của vùng bị xóa so với diện tích ảnh đầu vào.
  • max_area — Tỷ lệ phần trăm tối đa của vùng bị xóa so với diện tích ảnh đầu vào.
  • min_aspect — Tỷ lệ khung hình tối thiểu của vùng bị xóa.
  • mode — chế độ màu pixel, một trong ‘const’, ‘rand’ hoặc ‘pixel’ ‘const’ - khối xóa có màu cố định là 0 cho tất cả các kênh ‘rand’ - khối xóa có màu ngẫu nhiên (chuẩn) giống nhau cho từng kênh ‘pixel’ - khối xóa có màu ngẫu nhiên (chuẩn) cho từng pixel

Tự động chọn một vùng hình chữ nhật ngẫu nhiên trong ảnh và xóa các pixel của vùng đó. ‘Random Erasing Data Augmentation’ của Zhong và cộng sự. Xem https://arxiv.org/pdf/1708.04896.pdf

Biến thể của RandomErasing này được thiết kế để áp dụng cho một batch hoặc một tensor ảnh đơn sau khi đã được chuẩn hóa bằng mean và std của dataset.

max_count: số lượng khối xóa tối đa trên mỗi ảnh, diện tích của mỗi hộp được nhân theo count. số lượng trên mỗi ảnh được chọn ngẫu nhiên giữa 1 và giá trị này.

Bộ dữ liệu

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 )

Tham số

  • name — Tên dataset, có thể để trống đối với dataset dựa trên thư mục. Tiền tố (ví dụ hfds/) không phân biệt chữ hoa chữ thường, phần còn lại được truyền qua nguyên vẹn (phân biệt chữ hoa chữ thường) ngoại trừ các tên torch/.
  • root — Thư mục gốc của bộ dữ liệu (Tất cả)
  • split — Tập dữ liệu (Tất cả)
  • search_split — Tìm kiếm fold con cụ thể cho split từ root để có thể chỉ định imagenet/ thay vì /imagenet/val, v.v. trên dòng lệnh / cấu hình. (Folder, Torch)
  • class_map — Chỉ định ánh xạ lớp -> chỉ số thông qua tệp văn bản hoặc dict (Folder)
  • load_bytes — Nạp dữ liệu, trả về các hình ảnh dưới dạng byte chưa giải mã (Folder)
  • download — Tải xuống bộ dữ liệu nếu chưa có và được hỗ trợ (HFIDS, TFDS, Torch)
  • is_training — Tạo dataset ở chế độ train, điều này khác với split. Với Iterable / TDFS, nó bật shuffle, bị bỏ qua với các dataset khác. (TFDS, WDS, HFIDS)
  • batch_size — Gợi ý kích thước batch cho các tập dữ liệu dạng lặp (TFDS, WDS, HFIDS)
  • seed — Hạt giống cho các tập dữ liệu có thể lặp lại (TFDS, WDS, HFIDS)
  • repeats — Số lần lặp lại của Dataset cho mỗi lần lặp, tức là mỗi epoch (TFDS, WDS, HFIDS)
  • input_img_mode — Chế độ chuyển đổi màu ảnh đầu vào, ví dụ ‘RGB’, ‘L’ (folder, TFDS, WDS, HFDS, HFIDS)
  • trust_remote_code — Tin tưởng mã từ xa trong Hugging Face Datasets nếu là True (HFDS, HFIDS)
  • **kwargs — Các đối số khác để truyền qua cho các lớp Dataset và/hoặc Reader bên dưới

Phương thức factory của Dataset

Trong ngoặc đơn sau mỗi arg là kiểu dataset được hỗ trợ cho mỗi arg, một trong các

  • Thư mục - mặc định, tập dữ liệu ảnh dựa trên thư mục (hoặc tệp tar) của timm
  • Torch - Bộ dữ liệu dựa trên torchvision
  • HFDS - Hugging Face Datasets
  • HFIDS - Hugging Face Datasets Iterable (chế độ streaming, với IterableDataset)
  • TFDS - lớp bọc Tensorflow-datasets trong giao diện IterableDataset thông qua IterableImageDataset
  • WDS - Webdataset
  • Tất cả - bất kỳ mục nào ở trên

lớp timm.data.ImageDataset

< >

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

lớp 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 )

class timm.data.AugMixDataset

< >

( datasetnum_splits = 2 )

Dataset wrapper để thực hiện AugMix hoặc các hỗn hợp sạch/tăng cường khác

lớp timm.data.MultiLabelTarget

< >

( num_classes: intdense: bool = False )

Mã hóa một mục tiêu đa nhãn thành một tensor đa nhiệt kiểu float32 có độ dài num_classes.

Mặc định, target là một chuỗi các chỉ số lớp dương: chuỗi rỗng có nghĩa là không có nhãn dương, cho phép lặp lại, và các giá trị âm, ngoài phạm vi hoặc không phải số nguyên sẽ bị từ chối. Với dense=True, target đã là một vector có độ dài num_classes chứa các giá trị bool, int hoặc float trong khoảng [0, 1]; nó được kiểm tra và chuyển đổi sang float32, giữ nguyên các giá trị mềm.

Trình nạp

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 )

Tham số

  • dataset — Bộ dữ liệu ảnh cần tải.
  • input_size — Kích thước đầu vào mục tiêu, dưới dạng tuple (channels, height, width) hoặc giá trị vô hướng.
  • batch_size — Số lượng mẫu trong một batch.
  • is_training — Trả về các biến đổi (random) cho quá trình huấn luyện.
  • no_aug — Tắt tăng cường dữ liệu cho huấn luyện (hữu ích để gỡ lỗi).
  • re_prob — Xác suất xóa ngẫu nhiên.
  • re_mode — Chế độ lấp đầy xóa ngẫu nhiên.
  • re_count — Số lượng vùng xóa ngẫu nhiên.
  • re_split — Kiểm soát việc chia tách random erasing theo kích thước batch.
  • scale — Khoảng tỷ lệ thay đổi kích thước ngẫu nhiên (vùng crop, < 1.0 => thu phóng vào).
  • ratio — Khoảng tỷ lệ khung hình ngẫu nhiên (tỷ lệ cắt cho RRC, hệ số điều chỉnh tỷ lệ cho RKR).
  • hflip — Xác suất lật ngang.
  • vflip — Xác suất lật dọc.
  • color_jitter — Các hệ số thành phần jitter màu ngẫu nhiên (độ sáng, độ tương phản, độ bão hòa, sắc độ). Giá trị vô hướng được áp dụng dưới dạng (scalar,) * 3 (không có sắc độ).
  • color_jitter_prob — Áp dụng jitter màu với xác suất này nếu không phải None (cho tăng cường kiểu SimCLR
  • grayscale_prob — Xác suất chuyển ảnh sang thang xám (cho tăng cường kiểu SimCLR).
  • gaussian_blur_prob — Xác suất áp dụng gaussian blur (cho tăng cường kiểu SimCLR).
  • auto_augment — Chuỗi cấu hình auto augment (xem auto_augment.py).
  • num_aug_repeats — Bật bộ lấy mẫu đặc biệt để lặp lại cùng một phép tăng dữ liệu trên các GPU phân tán.
  • num_aug_splits — Bật chế độ cho phép chia các phép tăng cường dữ liệu (augmentations) trên toàn bộ batch.
  • interpolation — Chế độ nội suy ảnh.
  • mean — Giá trị trung bình để chuẩn hóa ảnh.
  • std — Độ lệch chuẩn chuẩn hóa ảnh.
  • num_workers — Số tiến trình worker cho mỗi DataLoader.
  • distributed — Bật tải dữ liệu cho huấn luyện phân tán.
  • crop_pct — Tỷ lệ cắt khi suy luận (kích thước đầu ra / kích thước điều chỉnh).
  • crop_mode — Chế độ cắt khi suy luận. Một trong [‘squash’, ‘border’, ‘center’]. Mặc định là ‘center’ khi là None.
  • crop_border_pixels — Cắt bỏ viền khi suy luận, loại bỏ # pixel quanh cạnh của ảnh gốc.
  • collate_fn — Ghi đè collate_fn mặc định.
  • pin_memory — Cố định bộ nhớ để chuyển sang thiết bị.
  • fp16 — Tham số đã bị ngừng hỗ trợ cho kiểu dữ liệu đầu vào độ chính xác nửa. Hãy dùng img_dtype.
  • img_dtype — Kiểu dữ liệu cho ảnh đầu vào.
  • device — Thiết bị để chuyển các đầu vào và mục tiêu sang.
  • use_prefetcher — Sử dụng bộ pre-fetcher hiệu quả để nạp mẫu lên thiết bị.
  • use_multi_epochs_loader —
  • persistent_workers — Bật các tiến trình worker bền vững khi num_workers lớn hơn không.
  • worker_seeding — Kiểm soát việc khởi tạo ngẫu nhiên của worker khi khởi tạo.
  • tf_preprocessing — Sử dụng tiền xử lý suy luận TF 1.0 để kiểm tra các bản port mô hình.
  • input_size_choices — Các lựa chọn kích thước đầu vào cho từng lô (batch) trong quá trình huấn luyện độ phân giải được lên lịch.
  • batch_size_choices — Batch size tương ứng với mỗi lựa chọn kích thước đầu vào. Sử dụng batch_size cho tất cả các lựa chọn khi không được chỉ định.
  • batch_choice_weights — Trọng số lấy mẫu cho các lựa chọn kích thước đầu vào. Phân phối đều khi không được chỉ định.
  • batch_choice_seed — Hạt ngẫu nhiên được sử dụng để tạo và xáo trộn lịch trình lô.
  • batch_choice_schedule — Chế độ lịch chọn, có thể là constant hoặc progressive.
  • batch_schedule_epochs — Số epoch mà lịch trình tiến bộ di chuyển qua các lựa chọn của nó.
  • batch_schedule_spread — Độ lệch chuẩn của cửa sổ lựa chọn tiến trình, tính theo đơn vị chỉ số lựa chọn.
  • batch_schedule_random_mix — Tỷ lệ khám phá ngẫu nhiên đều trên các lựa chọn có trọng số khác không trong lịch trình tiến bộ.
  • num_batches — Số lượng cố định các lô (batch) của loader cho mỗi epoch. Được suy ra từ kích thước lô trung bình của lịch trình đối với các lịch trình tiến bộ khi không được chỉ định.

Mixup và CutMix

lớp 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 )

Tham số

  • mixup_alpha (float) — giá trị alpha của mixup, mixup được kích hoạt nếu > 0.
  • cutmix_alpha (float) — giá trị alpha của cutmix, cutmix được kích hoạt nếu > 0.
  • cutmix_minmax (List[float]) — tỷ lệ ảnh min/max của cutmix, cutmix được kích hoạt và sử dụng giá trị này thay cho alpha nếu không phải None.
  • prob (float) — xác suất áp dụng mixup hoặc cutmix cho mỗi batch hoặc phần tử
  • switch_prob (float) — xác suất chuyển sang cutmix thay vì mixup khi cả hai đều được kích hoạt
  • mode (str) — cách áp dụng các tham số mixup/cutmix (theo ‘batch’, ‘pair’ (cặp phần tử), ‘elem’ (phần tử)
  • correct_lam (bool) — áp dụng hiệu chỉnh lambda khi bbox của cutmix bị cắt bởi biên ảnh
  • label_smoothing (float) — áp dụng label smoothing cho tensor mục tiêu đã trộn
  • num_classes (int) — số lượng lớp cho target
  • multi_label (bool) — Trộn các mục tiêu đa nhãn dạng dense, làm mịn mỗi nhãn về phía 0.5.

Mixup/Cutmix áp dụng các tham số khác nhau cho từng phần tử hoặc toàn bộ batch

lớp 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 w/ Mixup/Cutmix áp dụng các tham số khác nhau cho từng phần tử hoặc toàn bộ batch

Một cài đặt Mixup được thực hiện trong khi gom các lô (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 )

Tham số

  • dataset — Bộ dữ liệu để tải.
  • patch_size — Kích thước patch đơn lẻ cần sử dụng.
  • patch_size_choices — Danh sách các kích thước patch cho việc huấn luyện với kích thước patch thay đổi.
  • patch_size_choice_probs — Xác suất cho mỗi lựa chọn kích thước patch.
  • train_seq_lens — Độ dài chuỗi huấn luyện cho việc phân lô động.
  • max_seq_len — Độ dài chuỗi cố định cho kiểm chứng.
  • batch_size — Kích thước batch cho kiểm chứng và độ dài chuỗi huấn luyện tối đa.
  • is_training — Xác định xem đây có phải là cho huấn luyện hay không (bật dynamic batching).
  • mixup_fn — Hàm mixup tùy chọn.
  • no_aug — Tắt tăng cường dữ liệu.
  • re_prob — Xác suất xóa ngẫu nhiên.
  • re_mode — Chế độ xóa ngẫu nhiên.
  • re_count — Số lượng tối đa của các hình chữ nhật xóa.
  • re_split — Cờ chia cắt xóa ngẫu nhiên.
  • train_crop_mode — Chế độ cắt khi huấn luyện.
  • scale — Phạm vi tỷ lệ cho thao tác cắt và thay đổi kích thước ngẫu nhiên.
  • ratio — Phạm vi tỷ lệ khung hình cho thao tác cắt và thay đổi kích thước ngẫu nhiên.
  • hflip — Xác suất lật ngang.
  • vflip — Xác suất lật dọc.
  • color_jitter — Hệ số jitter màu.
  • color_jitter_prob — Xác suất jitter màu.
  • grayscale_prob — Xác suất chuyển đổi sang thang xám.
  • gaussian_blur_prob — Xác suất làm mờ Gaussian.
  • auto_augment — Chính sách AutoAugment.
  • num_aug_repeats — Số lần lặp tăng cường.
  • num_aug_splits — Số lượng phần chia tăng cường.
  • interpolation — Phương pháp nội suy.
  • mean — Giá trị trung bình để chuẩn hóa.
  • std — Các giá trị độ lệch chuẩn chuẩn hóa.
  • channels — Số kênh của ảnh, được dùng để chuẩn hóa theo từng kênh trong prefetcher.
  • crop_pct — Tỷ lệ cắt cho kiểm tra.
  • crop_mode — Chế độ cắt.
  • crop_border_pixels — Cắt các pixel ở viền.
  • num_workers — Số lượng worker tải dữ liệu.
  • distributed — Có sử dụng huấn luyện phân tán hay không.
  • rank — Xếp hạng tiến trình cho huấn luyện phân tán.
  • world_size — Tổng số tiến trình.
  • seed — Hạt ngẫu nhiên.
  • epoch — Epoch bắt đầu.
  • use_prefetcher — Xác định có sử dụng prefetching hay không.
  • pin_memory — Có nên ghim bộ nhớ hay không.
  • img_dtype — Kiểu dữ liệu ảnh.
  • device — Thiết bị để di chuyển các tensor tới.
  • persistent_workers — Xác định có sử dụng các worker bền vững hay không khi num_workers lớn hơn không.
  • worker_seeding — Chế độ khởi tạo hạt cho worker.
  • patchify_channels_last — Bố cục phẳng theo từng patch. True (mặc định): chỉ số kênh thay đổi nhanh nhất (mặc định của NaFlex). False: C-P-P (kênh trước — bố cục gốc của Gemma4 / HF). Được chuyển tiếp đến Patchify phía upstream và đến bố cục chuẩn hóa của prefetcher.

Tạo một trình tải dữ liệu với lấy mẫu độ dài chuỗi động cho huấn luyện.

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

IterableDataset là lớp bọc (wrapper) cho một dataset gốc theo kiểu map.

Trả về các lô (batch) có độ dài chuỗi thay đổi. Nó tính toán một lịch trình lô chuẩn (các cặp độ dài chuỗi, kích thước lô) một lần dựa trên kích thước tổng của bộ dữ liệu (được đệm để phân phối). Mỗi epoch, nó xáo trộn thứ tự của lịch trình chuẩn này và các chỉ số bộ dữ liệu. Điều này đảm bảo số lượng lô và mẫu mỗi epoch nhất quán trên tất cả các rank. Xử lý huấn luyện phân tán và nhiều worker.

set_epoch

< >

( epoch: int )

Tham số

  • epoch — Số epoch mới.

Đặt epoch đọc an toàn cho đa tiến trình bởi các worker của DataLoader.

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

Bọc có thể gọi kết hợp trộn lẫn và tạo mục tiêu.

set_epoch

< >

( epoch: int )

Cập nhật trạng thái mixup cho epoch được chỉ định.

Update on GitHub