timm documentation

البيانات

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

البيانات

تحتوي هذه الصفحة على توثيق مرجع واجهة برمجة التطبيقات (API) لحزمة timm.data الفرعية، بالإضافة إلى نظرة عامة على خط أنابيب الإدخال الذي توفره: حل إعداد ما قبل المعالجة للنموذج، وبناء التحويلات، وإنشاء مجموعات البيانات والمحمِّلات، وMixup / CutMix، ومحمِّل حل المتغيرات NaFlex.

الاستخدام

يُبنى خط الأنابيب في أربع خطوات: يقرأ 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,)

يقدم الدليل السريع شرحًا لخطوات التهيئة والتحويل للاستدلال.

يُتيح سكربت التدريب (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).

تشمل خيارات التحميل والتعزيز (create_loader):

  • يحدد --aa سياسة التوسيع التلقائي.
  • يحدد --reprob احتمال المسح العشوائي.
  • يحدد --remode وضع التعبئة للمسح العشوائي.
  • --scale يحدد نطاق مقياس المحاصيل المعاد تغيير حجمها عشوائياً.
  • يحدد --ratio نطاق نسبة أبعاد المحاصيل المُعاد تغيير حجمها عشوائياً.
  • يحدد --hflip احتمال الانقلاب الأفقي.
  • يحدد --color-jitter قوة اهتزاز الألوان.
  • يحدد --train-interpolation طريقة الاستيفاء لإعادة تغيير حجم التدريب.
  • يحدد --workers عدد عمّال المُحمِّل.
  • --no-prefetcher يعطّل المُسبِق.

مزج البيانات وقطع المزج (Mixup):

  • يحدد --mixup قيمة ألفا الخاصة بـ Mixup.
  • يحدد --cutmix قيمة ألفا الخاصة بـ CutMix.
  • يحدد --cutmix-minmax نطاق حجم صندوق CutMix.
  • يحدد --mixup-prob احتمال الخلط.
  • يحدد --mixup-switch-prob احتمال اختيار CutMix عند تمكين كلا الطريقتين.
  • يحدد --mixup-mode مزج الدفعة أو الزوج أو على مستوى العنصر.
  • يحدد --smoothing تنعيم التسميات.

راجع Scripts للحصول على أمثلة.

إعدادات البيانات

يعيد resolve_data_config قاموسًا بمفاتيح أدناه، والتي تتطابق مع الحجج الخاصة بـ create_transform و create_loader. القيم المحددة في args (قاموس، مثل vars(args) للحجج المحللة من سطر الأوامر) لها الأولوية على الحجة pretrained_cfg، والتي تكون افتراضيًا model.pretrained_cfg. resolve_model_data_config هي نفسها مع النموذج كحجة أولى.

Both read the input size and channels from the pretrained cfg, which describes the source checkpoint, not a model created or changed to use a different img_size or in_chans. resolve_input_data_config, used by the training, validation and inference scripts, resolves against the model’s current input instead: a fixed input size model always gets its current size, explicit args that conflict with the model’s channels or fixed size raise an error, and a mean / std that doesn’t match the channel count is replaced by its average (with a warning).

المفتاحمفاتيح argsالوصفافتراضي
input_sizeinput_size, img_size, in_chansحجم الإدخال (C, H, W). عند استخدام use_test_size=True يتم استخدام test_input_size من التكوين إذا كان موجودًا(3, 224, 224)
interpolationinterpolationاستيفاء تغيير الحجم، bilinear، bicubic، …bicubic
mean, stdmean, stdالتطبيع، حيث يُكرر قيمة واحدة لكل قناةمتوسط / انحراف معياري ImageNet
crop_pctcrop_pctفي حالة قص التقييم، يتم تغيير حجم الصورة إلى size / crop_pct قبل قصها إلى size (test_crop_pct عند استخدام use_test_size=True)0.875
crop_modecrop_modeوضع قص التقييم، center أو squash أو bordercenter

أوضاع قص التقييم، لحجم مخرجات size وscale_size = floor(size / crop_pct):

crop_modeالسلوك
centerتغيير حجم الحافة الأقصر إلى scale_size (مع الحفاظ على نسبة الأبعاد)، ثم قص مركزي إلى size
squashتغيير حجم الحافتين إلى scale_size (دون الحفاظ على نسبة الأبعاد)، ثم قصّ من المنتصف إلى size
borderقم بتغيير حجم الحافة الأطول إلى scale_size، ثم اقطع من المنتصف وأضف حشواً بلون المتوسط، مع الحفاظ على الصورة كاملة عند crop_pct=1.0

تحويلات

يعيد create_transform كائن torchvision Compose. يقوم تحويل التقييم بتغيير حجم الصورة وقصّها كما هو موضح أعلاه، ثم تحويلها إلى متجه (tensor) وتطبيعها. أما تحويل التدريب فيشمل قصًا عشوائيًا مع تغيير الحجم (scale=(0.08, 1.0)، ratio=(3/4, 4/3) افتراضيًا)، انعكاس أفقي (hflip=0.5)، اضطراب ألوان (color_jitter=0.4)، سياسة auto_augment الاختيارية، تحويل إلى متجه وتطبيع، ومسح عشوائي.

  • train_crop_mode='rkrc' or 'rkrr' replaces the random resized crop with a random resize that keeps the aspect ratio, followed by a center (rkrc) or random (rkrr) crop or pad.
  • interpolation='random' (الافتراضي في train.py للتدريب) يختار بين الاستيفاء ثنائي الخطية أو ثنائي التكعيبية لكل صورة.
  • يُقلّل no_aug=True التدريب إلى تغيير الحجم والقص من المنتصف.
auto_augmentالزيادة
rand-m9-mstd0.5-inc1RandAugment عبر rand_augment_transform
augmix-m5-w4-d2AugMix عبر augment_and_mix_transform
original, originalr, v0, v0r, 3aسياسة AutoAugment عبر auto_augment_transform

رموز خيارات RandAugment:

  • m يحدد القيمة المطلقة (الافتراضي 10).
  • n يحدد عدد العمليات لكل صورة (الافتراضي 2).
  • p يحدد الاحتمال لكل عملية (الافتراضي 0.5).
  • يحدد mstd الانحراف المعياري لضوضاء السعة.
  • تختار inc1 العمليات التي تزداد حدّتها مع حجمها.
  • t<name> يختار مجموعة العمليات (weights، 3a، 3aw).

رموز خيارات AugMix:

  • يحدد m مستوى الخطورة (الافتراضي 3).
  • w يحدد العرض (الافتراضي 3).
  • d يحدد العمق (الافتراضي -1، عشوائي بين 1 و3).
  • يتيح b1 تعزيزًا مدمجًا.
  • يحدد mstd الانحراف المعياري لضوضاء السعة.

يقبل AutoAugment mstd، على سبيل المثال original-mstd0.5.

سلوك التحويل:

  • يتم تعطيل تذبذب اللون عند تعيين auto_augment، ما لم يحتوي النص على 3a.
  • 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 واحد مماثلمجلد مجموعة البيانات أو ملف .tar
torch/<name>torchvision cifar10، cifar100، mnist، kmnist، fashion_mnist، qmnist، inaturalist (inat)، places365، imagenet أو image_folder (folder)جذر مجموعة بيانات torchvision
hfds/<name>ImageDataset على مجموعة بيانات من Hugging Face Hub (أو مسار محلي) عبر datasets.load_datasetمجلد التخزين المؤقت (اختياري)datasets
hfids/<name>IterableImageDataset، مجموعة بيانات Hugging Face التي يتم بثها، أو تنزيلها وتجهيزها أولاً باستخدام download=Trueمجلد التخزين المؤقت (اختياري)datasets
tfds/<name>يُحمّل IterableImageDataset من TensorFlow Datasets، عند تعيين download=True، البيانات ويبنيهامجلد بيانات TFDStensorflow, tensorflow-datasets
wds/<name>IterableImageDataset على شظايا tar الخاصة بـ WebDatasetمجلد شارد يحتوي على _info.json (أو info.json) يصف التقسيماتwebdataset

خيارات مجموعة البيانات:

  • يحدد split تقسيم مجموعة البيانات (الافتراضي هو validation). وفي حالة WebDataset، يمكن أن يكون أيضًا نمطًا للتجزئة مع عدد العينات، 'imagenet-train-{0000..1023}.tar|1281167'.
  • search_split=True (الافتراضي) يجعل مجموعات البيانات المبنية على المجلدات تبحث عن مجلد فرعي داخل root يحمل اسم split أو، في حال عدم وجوده، مرادفًا لتقسيم التدريب (train، training) أو التقويم (val، valid، validation، eval، evaluation).
  • add_img_extensions يضيف إلى امتدادات الصور الافتراضية (.png و.jpg و.jpeg).
  • يعيد class_map تعيين أسماء الفئات إلى فهارس باستخدام قاموس، أو ملف .txt (فئة واحدة في كل سطر)، أو ملف .pkl.

تستقبل مجموعات البيانات القابلة للتكرار (hfids، tfds، wds) أيضًا:

  • is_training يُفعّل الخلط.
  • يقوم batch_size بتقريب حصة كل عامل من العينات إلى أقرب دفعة كاملة عند التدريب.
  • يحدد num_samples عدد العينات، وهو مطلوب عندما لا يستطيع القارئ تحديده (hfids دون معلومات عن التقسيم).
  • يحدد seed البذرة العشوائية.
  • repeats يضاعف عدد العينات في كل دورة، حيث يمرّ القارئون على البيانات ذلك العدد من المرات.

استدعِ dataset.set_epoch() في كل حقبة لإعادة الخلط.

تُمرَّر حُجج الكلمات المفتاحية الأخرى إلى القارئ. بالنسبة لقارئات Hugging Face وTFDS وWebDataset:

  • يحدد input_key حقل الصورة (افتراضيًا image، وفي حالة wds تكون صورة jpg أو png أو webp).
  • يحدد target_key حقل التسمية (حقل label افتراضياً، أما في حالة wds فهو ملف .cls أو حقل مرافق .json مُسَمّى بواسطة target_key). القيمة المفصولة بفواصل تقرأ حقل ثنائياً واحداً لكل فئة.
  • target_format='multihot' يقرأ متجهات متعددة الساخنة الكثيفة بدلاً من قوائم فهارس الفئات لبيانات التسميات المتعددة.
  • target_transform=MultiLabelTarget(num_classes) يرمّز الأهداف كمُتجهات متعددة الحرارة من نوع float. مرّر dense=True إلى MultiLabelTarget للحقول متعددة الحرارة.

تُنتج قارئات المجلد وtar فهارس فئة واحدة. راجع التصنيف متعدد العلامات للتفاصيل.

المحمِّلات

create_loader ينشئ التحويل باستخدام create_transform من معلماته الخاصة، ويُسند إلى dataset.transform (مع استبدال أي تحويل موجود مسبقاً) ويعيد DataLoader. محمّلات التدريب (is_training=True) تخلط البيانات وتُهمِل الدفعة الأخيرة غير المكتملة.

  • جهاز الاستباق (Prefetcher). عند تعيين use_prefetcher=True (الافتراضي)، تُنتج مجموعة البيانات تينسورات من نوع uint8، وتُنقل الدفعات إلى device (الافتراضي cuda، على تدفق جانبي في حالة CUDA)، ثم تُحوَّل إلى img_dtype وتُطبع وتُحذف عشوائياً هناك. عيّن device إلى جهاز التدريب، أو عيّن use_prefetcher=False للحصول على DataLoader عادي من تينسورات مطبوعة.
  • موزّع. يستخدم distributed=True عيّنة DistributedSampler لمجموعات بيانات التدريب بنمط الخريطة (أو عيّنة زيادة متكررة مع num_aug_repeats) وعيّنة مرتبة للتقييم تُضيف لكل عملية عددًا متساويًا من العينات، مما قد يُغيّر نتائج التحقق بشكل طفيف. تتوزّع مجموعات البيانات القابلة للتكرار ذاتيًا عبر العمليات والعمال.
  • تجميع. يستبدل collate_fn الافتراضي (fast_collate مع المُسبِق، default_collate بدونه)، على سبيل المثال، بـ FastCollateMixup.
  • تقسيمات المعالجة. في حالة استخدام AugMix مع خسارة JSD (--aug-splits)، قم بتغليف مجموعة البيانات في AugMixDataset(dataset, num_splits=n) وقم بتمرير num_aug_splits=n. يحتوي كل دفعة على تقسيم نظيف وn - 1 تقسيمات معالجة، يتم دمجها على طول بُعد الدفعة بواسطة المُسبِق.
  • حل مجدول. يختار input_size_choices (--train-img-sizes) حجم الإدخال لكل دفعة، اختيارياً مع حجم دفعة لكل خيار (batch_size_choices) وجدول progressive من الخيار الأول إلى الأخير.

Mixup و CutMix

Mixup يمزج دفعة من الصور المعيارية على الجهاز، بعد المُحمِّل. FastCollateMixup يستقبل نفس الحُجج ويمزج صور uint8 أثناء الجمع في عمّال المُحمِّل، ويتطلب المُسبق. يعيد كلاهما أهدافًا كثيفة (batch_size, num_classes) مع تطبيق label_smoothing (الافتراضي 0.1)، لاستخدامها مع خسارة هدف ناعم مثل timm.loss.SoftTargetCrossEntropy، وتتطلب حجم دفعة زوجي.

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 عندما يكون mixup_alpha > 0
  • تفعيل cutmix_alpha > 0 يفعّل CutMix.
  • تُمكّن cutmix_minmax من تفعيل CutMix مع نطاق لحجم الصندوق.
  • يحدد switch_prob احتمال اختيار CutMix عند تمكين كلا الطريقتين.
  • prob يحدد احتمال الخلط على الإطلاق.
  • يرسم mode المعاملات مرة واحدة لكل batch، أو لكل pair من العناصر، أو لكل elem (عنصر).
  • يخلط multi_label=True بين أهداف متعددة التسميات الكثيفة، مع تنعيم كل تسمية باتجاه 0.5.
  • mixup_enabled = False turns mixing off, e.g. for the final epochs (--mixup-off-epoch). For FastCollateMixup it is read in the worker processes, persistent workers keep the value they started with.

دقة متغيرة لـ NaFlex

تحمّل create_naflex_loader الصور كسلاسل متغيرة الطول من الباتشات، دون إعادة تحجيمها إلى حجم مربع ثابت، وذلك للنماذج التي تستقبل مدخلات باتشات NaFlex (مثل نماذج naflexvit_*). كل دفعة (batch) هي قاموس (dict) يحتوي على patches وpatch_coord وpatch_valid وseq_len، مع ملء (padding) حتى طول السلسلة الخاص بالدفعة.

  • التدريب. يتم تغليف مجموعة البيانات في NaFlexMapDatasetWrapper (لمجموعات البيانات ذات نمط الخريطة فقط)، حيث يختار واحدة من train_seq_lens لكل دفعة، ويقوم بتغيير حجم كل صورة عشوائياً عبر اقتطاعها لتناسب عدد الباتشات المحدد. يمثل batch_size حجم الدفعة عند أطول طول تسلسل، بينما تحصل الأطوال الأقصر على دفعات أكبر تناسبياً (مقربة إلى الأسفل إلى مضاعف لـ 8) بحيث يبقى عدد الرموز في كل دفعة ثابتاً تقريباً. كما أن patch_size_choices (مع patch_size_choice_probs) يُغيّر حجم الباتش لكل دفعة، وذلك للنماذج التي تدعم هذه الميزة.
  • التقييم. يتم تغيير حجم الصور لتناسب max_seq_len رقعة عند patch_size المحدد (مطلوب للتقييم) ثم تُملأ حتى max_seq_len.
  • مزج البيانات (Mixup). مرّر NaFlexMixup كـ mixup_fn، حيث يقوم بالمزج داخل كل دفعة ولا يدعم mode أو cutmix_minmax.

خيارات train.py هي:

  • تفعيل --naflex-loader
  • يحدد --naflex-train-seq-lens أطوال تسلسلات التدريب.
  • يحدد --naflex-max-seq-len الحد الأقصى لطول تسلسل التقييم.
  • يحدد --naflex-patch-sizes أحجام الباتشات (patch sizes) لتدريب أحجام الباتشات المتغيرة.
  • يحدد --naflex-patch-size-probs الاحتمالات الخاصة بأحجام البقع تلك.
  • يحدد --naflex-loss-scale توسيع الخسارة بناءً على حجم الدفعة (none أو sqrt أو linear).

واجهة برمجة التطبيقات

إعدادات البيانات

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 )

المعاملات

  • model (nn.Module) — نموذج
  • args (dict) — حُجج سطر الأوامر / الإعدادات بصيغة dict (تتجاوز pretrained_cfg)
  • pretrained_cfg (dict) — إعدادات النموذج المُدرَّب مسبقًا (تتجاوز إعدادات النموذج المُدرَّب مسبقًا المرتبطة بالنموذج)
  • use_test_size (bool) — استخدام دقة الإدخال في وقت الاختبار (إذا كانت موجودة) بدلاً من دقة التدريب الافتراضية
  • verbose (bool) — تفعيل تسجيل إضافي للقيم المُحدَّدة

حلّ إعداد بيانات النموذج هذا يعادل resolve_data_config() لكن مع إعادة ترتيب الحُجج لوضع النموذج أولاً.

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 )

حلّ المعالجة المسبقة مقابل قيود مدخلات النموذج الحالي.

يجب أن تتطابق الأبعاد والقنوات الثابتة مع الطلبات الصريحة. تحافظ النماذج المرنة على توصيات ما قبل المعالجة للتدريب/الاختبار ما لم يتم تجاوزها. يستخدم التطبيع سياسة تكييف القنوات الموجودة في محمّلات الاستباق.

تحويلات

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 )

المعاملات

  • input_size — حجم الإدخال المستهدف (القنوات، الارتفاع، العرض) كسلسلة أو كمقياس حجم.
  • is_training — إرجاع تحويلات التدريب (العشوائية).
  • no_aug — تعطيل المعالجة أثناء التدريب (مفيد للتصحيح).
  • train_crop_mode — وضع الاقتصاص العشوائي للتدريب (‘rrc’، ‘rkrc’، ‘rkrr’).
  • scale — نطاق مقياس تغيير الحجم العشوائي (منطقة القص، < 1.0 => تقريب).
  • ratio — نطاق نسبة العرض إلى الارتفاع العشوائية (نسطة الاقتصاص لـ RRC، ومعامل ضبط النسبة لـ RKR).
  • hflip — احتمال الانقلاب الأفقي.
  • vflip — احتمال الانقلاب الرأسي.
  • color_jitter — عوامل مكوّنات التذبذب العشوائي في اللون (السطوع، التباين، التشبع، الصبغة). يُطبَّق القياسي على شكل (scalar,) * 3 (بدون صبغة).
  • color_jitter_prob — تطبيق اضطراب الألوان (color jitter) بهذه الاحتمالية إذا لم تكن القيمة 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’]. القيمة الافتراضية هي ‘center’ عند تعيين None.
  • crop_border_pixels — حدود الاقتصاص أثناء الاستدلال، بمقدار # بكسل محدد حول حافة الصورة الأصلية.
  • tf_preprocessing — استخدم معالجة ما قبل الاستدلال الخاصة بـ TF 1.0 لاختبار نقل النماذج
  • use_prefetcher — تم تفعيل مُسبِق الجلب. لا تُحوِّل الصورة إلى مُتجه ولا تُطبِّق التطبيع.
  • normalize — مخرجات مصفوفة التطبيع باستخدام المتوسط/الانحراف المعياري المُقدَّم (في حال عدم استخدام المُسبِق).
  • separate — إخراج التحويلات في ثلاثية من ثلاث مراحل.
  • patchify — تحويل المخرجات إلى بقع بدلاً من الاعتماد على المُجلب المسبق.
  • patchify_channels_last — استخدم تخطيط channels-last داخل كل رقعة.
  • patchify_flatten — تسطيح رقعات التقييم إلى متجهات. عطّل هذا الخيار عندما يحتاج النموذج إلى أبعادها المكانية لاستيفاء حجم الرقعة.

timm.data.rand_augment_transform

< >

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

المعاملات

  • config_str (str) — نص يحدد تكوين المعالجة العشوائية. يتكون من عدة أقسام مفصولة بشرطات (-). يحدد القسم الأول النسخة المحددة من المعالجة العشوائية (حاليًا 'rand' فقط). الأقسام المتبقية، غير المرتبة، تحدد
    • ‘m’ - القيمة الصحيحة لحجم rand augment
    • ‘n’ - عدد صحيح لطبقات (عدد عمليات التحويل المختارة لكل صورة)
    • ‘p’ - احتمال تطبيق كل طبقة (افتراضي 0.5)
    • ‘mstd’ - الانحراف المعياري العائم لضوضاء السعة المطبّقة، أو أخذ عينات منتظم إذا كان لا نهائيًا (أو > 100)
    • ‘mmax’ - تحديد الحد الأعلى للقيمة المطلقة بقيمة أخرى غير الافتراضي _LEVEL_DENOM (10)
    • ‘inc’ - عدد صحيح (منطقي)، استخدام تعديلات تزيد حدّتها مع زيادة القيمة (الافتراضي: 0)
    • ‘t’ - str اسم مجموعة التحويل التي سيتم استخدامها
  • hparams (dict) — معاملات أخرى (kwargs) لمخطط RandAugmentation

إنشاء تحويل RandAugment

أمثلة:

  • 'rand-m9-n3-mstd0.5' هو RandAugment مع شدة 9، و3 طبقات، وانحراف معياري للشدة قدره 0.5.
  • 'rand-mstd1-tweights' هو RandAugment مع انحراف معياري للشدّة قدره 1.0 واختيار تحويلات موزونة، عند الشدّة الافتراضية 10 وطبقتين.

timm.data.auto_augment_transform

< >

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

المعاملات

  • config_str — سلسلة نصية تُعرّف إعدادات التوسيع التلقائي. تتكون من عدة أقسام مفصولة بشرطات (-). يُعرّف القسم الأول سياسة AutoAugment (إحدى القيم: 'v0'، 'v0r'، 'original'، 'originalr'). بينما تُعرّف الأقسام المتبقية معاملات أخرى.
    • ‘mstd’ - الانحراف المعياري العائم للضوضاء المطبقة على السعة
  • hparams — معاملات أخرى (kwargs) لخطة AutoAugmentation

إنشاء تحويل AutoAugment

أمثلة:

  • 'original-mstd0.5' هو AutoAugment مع السياسة الأصلية وانحراف معياري للمقدار قدره 0.5.

timm.data.auto_augment.augment_and_mix_transform

< >

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

المعاملات

  • config_str (str) — نص يحدد تكوين المعالجة العشوائية. يتكون من عدة أقسام مفصولة بشرطات (’-’). يحدد القسم الأول النسخة المحددة من rand augment (حاليًا ‘rand’ فقط). تحدد الأقسام المتبقية، دون ترتيب محدد، ما يلي: ‘m’ - حجم (شدة) خلطة المعالجة كعدد صحيح (الافتراضي: 3) ‘w’ - عرض سلسلة المعالجة كعدد صحيح (الافتراضي: 3) ‘d’ - عمق سلسلة المعالجة كعدد صحيح (-1 يعني عشوائي [1, 3]، الافتراضي: -1) ‘b’ - عدد صحيح (منطقي)، دمج كل فرع من السلسلة في النتيجة النهائية دون دمج نهائي، مما يقلل من استخدام المعالج (الافتراضي: 0) ‘mstd’ - انحراف معياري كعدد عشري للضوضاء المطبقة على الحجم (الافتراضي: 0) مثال: ‘augmix-m5-w4-d2’ يؤدي إلى AugMix بشدة 5، وعرض سلسلة 4، وعمق سلسلة 2
  • hparams — معاملات أخرى (kwargs) لتحويلات المعالجة

إنشاء تحويل PyTorch لـ AugMix

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

المعاملات

  • probability — احتمال تنفيذ عملية المسح العشوائي.
  • min_area — الحد الأدنى لنسبة المسح بالنسبة لمساحة الصورة المدخلة.
  • max_area — النسبة المئوية القصوى للمنطقة المحذوفة مقارنةً بمنطقة الصورة المدخلة.
  • min_aspect — نسبة العرض إلى الارتفاع الدنيا للمحذوف.
  • mode — وضع لون البكسل، أحد ‘const’ أو ‘rand’ أو ‘pixel’ ‘const’ - كتلة المسح بلون ثابت بقيمة 0 لجميع القنوات ‘rand’ - كتلة المسح بلون عشوائي (طبيعي) متطابق لكل قناة ‘pixel’ - كتلة المسح بلون عشوائي (طبيعي) لكل بكسل

يختار عشوائياً منطقة مستطيلة في صورة ويمسح بكسلاتها. «تعزيز البيانات بالمحو العشوائي» لـ Zhong وآخرون. انظر إلى https://arxiv.org/pdf/1708.04896.pdf

يُقصَد بتطبيق هذا المتغير من RandomErasing على مجموعة (batch) أو على متجه صورة واحدة بعد تطبيعها باستخدام متوسط ومعيار مجموعة البيانات.

max_count: الحد الأقصى لعدد كتل المسح لكل صورة، حيث يتم تحجيم مساحة كل مربع حسب العدد. يتم اختيار العدد لكل صورة بشكل عشوائي بين 1 وقيمة max_count.

مجموعات البيانات

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 )

المعاملات

  • name — اسم مجموعة البيانات، ويمكن أن يكون فارغًا لمجموعات البيانات القائمة على المجلدات. البادئة (مثل hfds/) لا تفرق بين الأحرف الكبيرة والصغيرة، بينما يُمرَّر الباقي كما هو (مع التمييز بين الأحرف الكبيرة والصغيرة) باستثناء أسماء torch/.
  • root — مجلد الجذر للبيانات (الكل)
  • split — تقسيم مجموعة البيانات (الكل)
  • search_split — البحث عن طيّ فرعي محدد للتقسيم من الجذر بحيث يمكن تحديد imagenet/ بدلاً من /imagenet/val، وما إلى ذلك، في سطر الأوامر / ملف الإعداد. (مجلد، Torch)
  • class_map — تحديد تعيين الفئة إلى الفهرس عبر ملف نصي أو قاموس (مجلد)
  • load_bytes — تحميل البيانات، وإرجاع الصور كبيانات بايت غير مُفككة الترميز (مجلد)
  • download — تنزيل مجموعة البيانات إذا لم تكن موجودة وكان ذلك مدعوماً (HFIDS، TFDS، Torch)
  • is_training — إنشاء مجموعة البيانات في وضع التدريب، وهذا يختلف عن التقسيم. في حالة Iterable / TDFS، يُفعّل الخلط، بينما يُتجاهل في مجموعات البيانات الأخرى. (TFDS، WDS، HFIDS)
  • batch_size — تلميح لحجم الدفعة (batch size) لمجموعات البيانات القابلة للتكرار (TFDS، WDS، HFIDS)
  • seed — البذرة للمجموعات القابلة للتكرار (TFDS، WDS، HFIDS)
  • repeats — عدد تكرارات مجموعة البيانات لكل تكرار، أي لكل حقبة (TFDS، WDS، HFIDS)
  • input_img_mode — وضع تحويل ألوان الصورة المدخلة، مثل ‘RGB’ أو ‘L’ (مجلد، TFDS، WDS، HFDS، HFIDS)
  • trust_remote_code — الثقة في الشيفرة البعيدة في مجموعات بيانات Hugging Face إذا كانت True (HFDS، HFIDS)
  • **kwargs — حُجج أخرى تُمرَّر إلى فئات Dataset و/أو Reader الأساسية

طريقة مصنع مجموعة البيانات

تُذكر بين قوسين بعد كل معامل نوع مجموعة البيانات المدعومة لكل معامل، وهو أحد الأنواع التالية:

  • Folder - الافتراضي، مجموعة بيانات صور ImageDataset مبنية على مجلد timm (أو ملف tar)
  • Torch - مجموعات بيانات مبنية على torchvision
  • HFDS - مجموعات بيانات Hugging Face
  • HFIDS - مجموعات بيانات Hugging Face القابلة للتكرار (وضع البث، باستخدام IterableDataset)
  • TFDS - غلاف مكتبة Tensorflow-datasets في واجهة IterableDataset عبر IterableImageDataset
  • WDS - Webdataset
  • الكل - أي من المذكور أعلاه

فئة timm.data.ImageDataset

< >

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

فئة 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 )

فئة timm.data.AugMixDataset

< >

( datasetnum_splits = 2 )

غلاف مجموعة بيانات لتنفيذ AugMix أو مزيج آخر من البيانات النظيفة/المعززة

فئة timm.data.MultiLabelTarget

< >

( num_classes: intdense: bool = False )

ترميز هدف متعدد التسميات كموتراف متعدد الحرارة من نوع float32 بطول num_classes.

بشكل افتراضي، يكون الهدف تسلسلًا من فهارس الفئة الإيجابية: التسلسل الفارغ يعني عدم وجود تسميات إيجابية، ويُسمح بالتكرار، وتُرفض القيم السالبة أو خارج النطاق أو غير الصحيحة. عند تعيين dense=True، يكون الهدف متجهًا بطول num_classes يحتوي مسبقًا على قيم من نوع bool أو int أو float ضمن المجال [0, 1]؛ يتم التحقق منه وتحويله إلى float32 مع الحفاظ على القيم الناعمة.

المحمِّلات

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 )

المعاملات

  • dataset — مجموعة بيانات الصور التي سيتم تحميلها.
  • input_size — حجم الإدخال المستهدف (القنوات، الارتفاع، العرض) كسلسلة أو كمقياس حجم.
  • batch_size — عدد العينات في الدفعة.
  • is_training — إرجاع تحويلات التدريب (العشوائية).
  • no_aug — تعطيل المعالجة أثناء التدريب (مفيد للتصحيح).
  • re_prob — احتمال المسح العشوائي.
  • re_mode — وضع التعبئة للمسح العشوائي.
  • re_count — عدد مناطق المسح العشوائية.
  • re_split — التحكم في تقسيم المسح العشوائي عبر حجم الدفعة.
  • scale — نطاق مقياس تغيير الحجم العشوائي (منطقة القص، < 1.0 => تقريب).
  • ratio — نطاق نسبة العرض إلى الارتفاع العشوائية (نسطة الاقتصاص لـ RRC، ومعامل ضبط النسبة لـ RKR).
  • hflip — احتمال الانقلاب الأفقي.
  • vflip — احتمال الانقلاب الرأسي.
  • color_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 — تفعيل مُعيّن خاص لتكرار نفس المعالجة عبر وحدات معالجة الرسوميات الموزعة.
  • num_aug_splits — تفعيل الوضع الذي يمكن فيه تقسيم عمليات المعالجة عبر الدفعة.
  • interpolation — وضع استيفاء الصورة.
  • mean — متوسط تطبيع الصورة.
  • std — الانحراف المعياري لتطبيع الصورة.
  • num_workers — عدد عمليات worker لكل DataLoader.
  • distributed — تفعيل تحميل البيانات للتدريب الموزّع.
  • crop_pct — نسبة اقتطاع الاستدلال (حجم الإخراج / حجم إعادة التحجيم).
  • crop_mode — وضع اقتصاص الاستدلال. أحد القيم [‘squash’, ‘border’, ‘center’]. القيمة الافتراضية هي ‘center’ عند تعيين None.
  • crop_border_pixels — حدود الاقتصاص أثناء الاستدلال، بمقدار # بكسل محدد حول حافة الصورة الأصلية.
  • collate_fn — تجاوز collate_fn الافتراضي.
  • pin_memory — تثبيت الذاكرة لنقلها إلى الجهاز.
  • fp16 — حجة غير مستخدمة لمعامل نوع البيانات نصف الدقة. استخدم img_dtype.
  • img_dtype — نوع البيانات للصورة المدخلة.
  • device — الجهاز الذي سيتم نقل المدخلات والأهداف إليه.
  • use_prefetcher — استخدم مُجلبًا مسبقًا فعالًا لتحميل العينات على الجهاز.
  • use_multi_epochs_loader —
  • persistent_workers — تفعيل عمليات العامل الدائمة عندما يكون num_workers أكبر من صفر.
  • worker_seeding — التحكم في البذر العشوائي للعاملين عند التهيئة.
  • tf_preprocessing — استخدم معالجة ما قبل الاستدلال الخاصة بـ TF 1.0 لاختبار نقل النماذج.
  • input_size_choices — خيارات حجم الإدخال لكل دفعة لتدريب الدقة المجدولة.
  • batch_size_choices — حجم الدفعة المقابل لكل خيار من خيارات حجم الإدخال. يستخدم batch_size لجميع الخيارات عند عدم تحديده.
  • batch_choice_weights — أوزات العينة لخيارات حجم الإدخال. تكون موحدة إذا لم تُحدد.
  • batch_choice_seed — البذرة العشوائية المستخدمة لإنشاء جدول الدفعات وخلطه.
  • batch_choice_schedule — وضع جدول الاختيار، إما constant أو progressive.
  • batch_schedule_epochs — عدد الفترات التي يتحرك عبرها الجدول التدريجي خلال اختياراته.
  • batch_schedule_spread — الانحراف المعياري لنافذة الاختيار التدريجي، بوحدات مؤشر الاختيار.
  • batch_schedule_random_mix — نسبة الاستكشاف العشوائي المنتظم على الخيارات ذات الأوزان غير الصفرية في الجدول التدريجي.
  • num_batches — عدد ثابت من دفعات المُحمِّل لكل حقبة. يُستنتج من متوسط حجم الدفعة في الجدول للجدول التدريجي عند عدم تحديده.

Mixup و CutMix

فئة 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 )

المعاملات

  • mixup_alpha (float) — قيمة ألفا الخاصة بـ mixup، يكون mixup مفعلاً إذا كانت القيمة > 0.
  • cutmix_alpha (float) — قيمة cutmix alpha، حيث يكون cutmix مفعلاً إذا كانت القيمة > 0.
  • cutmix_minmax (List[float]) — نسبة الحد الأدنى/الحد الأقصى للصورة في cutmix، حيث يكون cutmix نشطًا ويستخدم هذه النسبة مقابل alpha إذا لم تكن None.
  • prob (float) — احتمال تطبيق mixup أو cutmix لكل دفعة أو عنصر
  • switch_prob (float) — احتمال التبديل إلى cutmix بدلاً من mixup عندما يكون كلاهما مفعلاً
  • mode (str) — كيفية تطبيق معاملات mixup/cutmix (لكل ‘batch’، ‘pair’ (زوج من العناصر)، ‘elem’ (عنصر)
  • correct_lam (bool) — تطبيق تصحيح لامدا عند قص صندوق cutmix بواسطة حدود الصورة
  • label_smoothing (float) — تطبيق تنعيم التسميات على متجه الهدف المختلط
  • num_classes (int) — عدد الفئات للهدف
  • multi_label (bool) — يمزج أهداف التسميات المتعددة الكثيفة، مع تنعيم كل تسمية نحو 0.5.

Mixup/Cutmix الذي يطبّق معاملات مختلفة على كل عنصر أو على الدفعة كاملة

فئة 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 مع Mixup/Cutmix يطبّق معاملات مختلفة لكل عنصر أو للدفعة بأكملها

تنفيذ Mixup يتم أثناء تجميع الدُفعات.

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 )

المعاملات

  • dataset — مجموعة البيانات التي سيتم التحميل منها.
  • patch_size — حجم الباتش الواحد المستخدم.
  • patch_size_choices — قائمة بأحجام البقع (patches) لتدريب أحجام البقع المتغيرة.
  • patch_size_choice_probs — احتمالات لكل خيار من خيارات حجم الباتش.
  • train_seq_lens — أطوال التسلسلات التدريبية للتجميع الديناميكي.
  • 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 — معامل اهتزاز اللون.
  • color_jitter_prob — احتمال تذبذب اللون.
  • 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 — الحقبة الابتدائية.
  • use_prefetcher — ما إذا كان سيتم استخدام الاستباق.
  • pin_memory — ما إذا كان يجب تثبيت الذاكرة.
  • img_dtype — نوع بيانات الصورة.
  • device — الجهاز الذي سيتم نقل المصفوفات (tensors) إليه.
  • persistent_workers — ما إذا كان سيتم استخدام عمّال دائمين عندما يكون num_workers أكبر من صفر.
  • worker_seeding — وضع بذرة العامل.
  • patchify_channels_last — تخطيط مسطّح لكل رقعة. True (الافتراضي): يتغيّر فهرس القناة بأسرع معدل (الافتراضي في NaFlex). False: C-P-P (القنوات أولاً — تخطيط Gemma4 / HF الأصلي). يُمرَّر إلى Patchify في المنبع وإلى تخطيط التطبيع في مُسبِق الجلب.

أنشئ مُحمِّل بيانات مع أخذ عينات بطول تسلسل ديناميكي للتدريب.

فئة 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 لمجموعة بيانات أساسية بنمط الخريطة.

تُنتج دفعات بطول تسلسل متغير. فهي تحسب جدول دفعات قياسي (أزواج من طول التسلسل وحجم الدفعة) مرة واحدة بناءً على حجم مجموعة البيانات الإجمالي (مع إضافة حشو للتوزيع). في كل دورة، تعيد ترتيب هذا الجدول القياسي وفهارس مجموعة البيانات. يضمن ذلك عددًا ثابتًا من الدفعات والعينات في كل دورة عبر جميع الرتب. يتعامل مع التدريب الموزع والعمال المتعددين.

set_epoch

< >

( epoch: int )

المعاملات

  • epoch — رقم الحقبة الجديد.

اضبط قراءة الحقبة الآمنة للتعدد العمليات بواسطة عمّالي 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 )

غلاف قابل للاستدعاء يجمع بين الخلط وتوليد الهدف.

set_epoch

< >

( epoch: int )

حدّث حالة mixup للعصر المحدد.

Update on GitHub