timm documentation
البيانات
البيانات
تحتوي هذه الصفحة على توثيق مرجع واجهة برمجة التطبيقات (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_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 | التطبيع، حيث يُكرر قيمة واحدة لكل قناة | متوسط / انحراف معياري ImageNet |
crop_pct | crop_pct | في حالة قص التقييم، يتم تغيير حجم الصورة إلى size / crop_pct قبل قصها إلى size (test_crop_pct عند استخدام use_test_size=True) | 0.875 |
crop_mode | crop_mode | وضع قص التقييم، center أو squash أو border | center |
أوضاع قص التقييم، لحجم مخرجات 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-inc1 | RandAugment عبر rand_augment_transform |
augmix-m5-w4-d2 | AugMix عبر 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، البيانات ويبنيها | مجلد بيانات TFDS | tensorflow, 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 = Falseturns mixing off, e.g. for the final epochs (--mixup-off-epoch). ForFastCollateMixupit 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
< 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 )
المعاملات
- 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
< 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، ومعامل ضبط النسبة لـ 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
< source >( 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
< source >( 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
< 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’ - عدد صحيح (منطقي)، دمج كل فرع من السلسلة في النتيجة النهائية دون دمج نهائي، مما يقلل من استخدام المعالج (الافتراضي: 0) ‘mstd’ - انحراف معياري كعدد عشري للضوضاء المطبقة على الحجم (الافتراضي: 0) مثال: ‘augmix-m5-w4-d2’ يؤدي إلى AugMix بشدة 5، وعرض سلسلة 4، وعمق سلسلة 2
- hparams — معاملات أخرى (kwargs) لتحويلات المعالجة
إنشاء تحويل PyTorch لـ AugMix
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 — احتمال تنفيذ عملية المسح العشوائي.
- 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
< 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 — مجلد الجذر للبيانات (الكل)
- 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
< source >( rootreader = Nonesplit = 'train'class_map = Noneload_bytes = Falseinput_img_mode = 'RGB'transform = Nonetarget_transform = Noneadditional_features = None**kwargs )
فئة 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 أو مزيج آخر من البيانات النظيفة/المعززة
ترميز هدف متعدد التسميات كموتراف متعدد الحرارة من نوع float32 بطول num_classes.
بشكل افتراضي، يكون الهدف تسلسلًا من فهارس الفئة الإيجابية: التسلسل الفارغ يعني عدم وجود تسميات إيجابية، ويُسمح بالتكرار، وتُرفض القيم السالبة أو خارج النطاق أو غير الصحيحة. عند تعيين dense=True، يكون الهدف متجهًا بطول num_classes يحتوي مسبقًا على قيم من نوع bool أو int أو float ضمن المجال [0, 1]؛ يتم التحقق منه وتحويله إلى 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، ومعامل ضبط النسبة لـ 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
< 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، يكون 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
< 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 )
Fast Collate مع Mixup/Cutmix يطبّق معاملات مختلفة لكل عنصر أو للدفعة بأكملها
تنفيذ 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 — مجموعة البيانات التي سيتم التحميل منها.
- 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
< 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 )
غلاف IterableDataset لمجموعة بيانات أساسية بنمط الخريطة.
تُنتج دفعات بطول تسلسل متغير. فهي تحسب جدول دفعات قياسي (أزواج من طول التسلسل وحجم الدفعة) مرة واحدة بناءً على حجم مجموعة البيانات الإجمالي (مع إضافة حشو للتوزيع). في كل دورة، تعيد ترتيب هذا الجدول القياسي وفهارس مجموعة البيانات. يضمن ذلك عددًا ثابتًا من الدفعات والعينات في كل دورة عبر جميع الرتب. يتعامل مع التدريب الموزع والعمال المتعددين.
اضبط قراءة الحقبة الآمنة للتعدد العمليات بواسطة عمّالي DataLoader.
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 )
غلاف قابل للاستدعاء يجمع بين الخلط وتوليد الهدف.
حدّث حالة mixup للعصر المحدد.