timm documentation
سجل التغييرات
سجل التغييرات
3 نوفمبر 2026
reset_classifier()وإعادة بناء نقطة التفتيش: إصلاحات عبر ViT وEVA وBEiT وNaFlexViT وRepViT وiFormer الحفاظ على موضع التطبيع وإعدادات التقطير عند تصدير/إعادة تحميل النماذج بعد تغيير المصنّف أو التجميع. كما تم إصلاح تصدير PiT غير المجمّع وEfficientFormerV2 مع تعطيل التقطير.- NaFlex: إصلاح موضع تطبيع ViT / EVA أثناء التحويل، ودعم محاذاة SwiGLU لنقاط التفتيش الخاصة بـ DINOv3 / Lingbot، والحفاظ على قنوات الإدخال الرمادية / غير RGB في محمّلات البيانات.
- إصلاح تجميع تدرّج معدل التعلم على مستوى الطبقات لـ RepViT و HGNet و MViTv2 و ViTs ذات التطبيع المسبق، وأحجام الميزات في InceptionNeXt مع
output_stride=8/16. - الإصدار 1.0.31.
24 أكتوبر 2026
forward_intermediates()وprune_intermediate_layers()أصبحت مدعومة الآن من قِبل كل نموذج. أُضيفت حديثًا لـ CSPNet وNFNet وDLA وDenseNet (#2870، شكرًا ghaith-mq)، وCoaT وConViT وConvMixer وCrossViT وHRNet وInception-v3 وInception-ResNet-v2 وNASNet وPNASNet وSelecSLS وSENet وSequencer2d وVGG وVisformer وXception وAligned Xception، معprune_intermediate_layers()لمُشفِّرات NaFlexViT وMobileNetV5. كما اكتسب CoaT وConViT وConvMixer وCrossViT وVisformer دعمfeatures_only.prune_intermediate_layers()إصلاحاتprune_head=Trueيزيل الرأس بالكامل (تطبيع الرأس، طبقات ما قبل logits، تجميع الانتباه) بحيث لا يترك النموذج المُقتطع أي معاملات غير مستخدمة (DDP بدونfind_unused_parameters)، باستثناء CoaT وCrossViT وHRNet عندما يُؤخذ بعض مقاييسها/فروعها المتوازية فقط. مرّرprune_head=Falseللاحتفاظ به.- عند تقليم نموذج هرمي إلى مرحلة سابقة، يتم حذف المعيار النهائي والرأس المُعدّ للمرحلة الأخيرة، وينتهي
forward_features()عند آخر ميزة محفوظة، ويتطابقnum_features/head_hidden_sizeمعها. أما التقليم إلى ميزة الجذع فيؤدي إلى حذف تجميع الجذع الذي يليها. - إصلاحات لـ grad checkpointing و
stop_earlyوإزالة رمز الفئة / الشبكة اللاحقة، وتحويل TorchScript للنماذج المقصوصة /feature_cls='getter'عبر العديد من العائلات.
head_hidden_sizeهو العرض الفعلي قبل طبقة اللوجيت (المجمَّعة) في جميع النماذج، بما في ذلك تجميع concat (catavgmax) وبعدreset_classifier(). أنواع التجميع التي لا يمكن للنموذج تطبيقها حاليًا تثير خطأً عند الإنشاء أو إعادة الضبط بدلاً من تجاهلها بصمت أو فشلها في الأمامية.- إصلاحات أخرى: مخرجات VOLO عند
num_classes=0هي تضمين رمز الفئة (مطابقًا لـforward_head(pre_logits=True))، وإزالةvit_pe_corereset_classifier()مع تجمع غيرmapتحذف تجمع الانتباه، وتصدير نوع التجمع عبرsave_for_hfيقرأ التجميع الحالي للرأس، وإعادة تحميل نقاط التفتيش الخاصة بـ Swin وSwinV2 وDaViT وNextViT بدون رأس (num_classes=0) بشكل صحيح.
13 أكتوبر 2026
- مسح المعلمات الفائضة عبر
sweep.pyالجديد: بحث شبكي / عشوائي على أي معامل فيtrain.py، مع--configفعّال واحد لكل مهمة، ويُنفَّذ على مجموعة من وحدات معالجة الرسوميات المحلية ويمكن استئنافه. تُدرّب عمليات مسح WSD جذعًا مستقرًا واحدًا لكل تركيبة من المعلمات الفائضة، وتفرع تبريدات مستقلة من نقاط التفتيش الخاصة بمعالمه، مقارنةً بين التبريد عند ميزانيات متعددة بتكلفة أقل بكثير من التكاليف الكاملة للتشغيل. راجع وثائق التدريب. train.py: يستأنف--resume autoالتدريب من مكانه انطلاقًا من ملفlast.pth.tarالخاص بالتجربة نفسها (تبقى سجلات نقاط الحفظ، وmodel_best، وsummary.csvمتسقة)، ويوقف--stop-epoch Nالتدريب دون تغيير الجدول الزمني، ويحافظ--save-epochs N [N ...]على لقطاتmilestone-N.pth.tar، وتُتحقق قيم YAML في--configمن صحة حِجج السكربت.- إلغاء استخدام
PlateauLRScheduler(--sched plateau). جدولةtimmهي دوال بلا حالة تعتمد على عدد الحقبات أو عدد التحديثات، ولم تتناسب جدولة plateau التي يقودها المقياس مع ذلك، كما أن حالتها لا تُحفظ في نقاط التفتيش، لذا لم تكن الاستعادة دقيقة أبدًا. استخدمcosineأوwsd. - التوثيق: صفحة واجهة برمجة التطبيقات للنماذج الجديدة، وصفحات عائلات النماذج المولّدة لكل وحدة نماذج لتحل محل صفحات النموذج الواحد القديمة، وصفحات مرجعية موسّعة للبيانات / الدوال الخاسرة / النماذج.
- إصلاحات اتساق واجهة برمجة التطبيقات للنماذج:
reset_classifier()يحافظ على التجميع الحالي في جميع النماذج، وتُثير معاملات المُنشئ غير المعروفةTypeErrorفي كل مكان،dynamic_img_sizeلعائلة Swin، وتلاشي معدل التعلم على مستوى الطبقات في LeViT، وأسماءno_weight_decayالتي لم تتطابق مع أي معاملات (NesT، SwinV2، XCiT، FocalNet)، وتسجيل حالة تغيير الحجم لجميع عائلاتset_input_size. - إصلاحات: خلط صور GCViT الاستعلامات العالمية داخل دفعة، نقطة التدرّج للمراجعة (gradient checkpointing) لـ RDNet و MobileNetV5، حجم مدخلات الاختبار القديم في
save_for_hf، تغيير حجم مستطيل في EfficientViT (MSRA)، أخطاء تحويل الصور في ImageDataset (#2846). تم نقلreparameterize_modelإلىtimm.models.
9 أكتوبر 2026
- أضف CSPNeXt (هيكل RTMDet)
cspnext_{tiny,s,m,l,x}مع أوزان تصنيف ImageNet-1k محوّلة من OpenMMLab. شكرًا Munehiro Kobayashi. - تحسينات المُحسِّن
- تنفيذات ForEach (متعددة المتجهات) لخوارزميات RMSpropTF وLaProp وLAMB وLARS وAdaBelief. تُقسَّم خطوات ForEach حسب حجم ذاكرة L2 على الجهاز (يمكن تجاوز ذلك باستخدام
TIMM_FOREACH_CHUNK_SIZE). - قصّ تحديث RMS (
clipping_threshold) لـ AdamWLegacy / NAdamW، ومتغيرات NovoGrad الجديدة المنفصلة / المُصححة لتلاشي الوزن (novogradw،novogradc). - إصلاحات في الدقة عبر العديد من المُحسِّنات، بما في ذلك تصحيح اضمحلال الأوزان مع تحديث متجه معدل التعلم في الموقع، وتوقف تحديثات FP16 عند معدلات تعلم منخفضة، ومعالجة الحالة بدقة منخفضة (Kron، AdaBelief، NovoGrad)، وعدم تعديل
p.gradفي الموقع بعد الآن. torch.compile/ إصلاحات CUDA graph لـ Adopt وSGDW وAdafactorBV.- وثائق جديدة للمحسّن تغطي الاستخدام، ومعايير التسمية، والعائلات.
- تنفيذات ForEach (متعددة المتجهات) لخوارزميات RMSpropTF وLaProp وLAMB وLARS وAdaBelief. تُقسَّم خطوات ForEach حسب حجم ذاكرة L2 على الجهاز (يمكن تجاوز ذلك باستخدام
- أضِف مُجدوِل معدل التعلّم WSD (الدفء-الثبات-التحلّل) (
--sched wsd،--lr-decay-fn،--lr-stable-timescale). - إصلاحات نموذج EMA للنماذج من نوع bfloat16 / float16. تستخدم نماذج ModelEmaV3 من نوع bfloat16 التقريب العشوائي افتراضيًا، بينما تحتفظ نماذج float16 بـ EMA من نوع float32.
- تغيير حجم النموذج عبر
set_input_size()- دعم موسّع للنماذج النافذية (MaxViT، CoAtNet، BEiT، EfficientViT-MSRA، relpos ViT، عائلة Swin).
- تحتفظ Swin / SwinV2 / SwinV2-CR بنسبة نافذة كل مرحلة إلى الشبكة عند تغيير الحجم، فأصبح الاستدعاء بالحجم الحالي لا يؤدي إلى أي إجراء. يتم دعم
window_size/window_ratioلكل مرحلة. يُصلح هذا Swin S3 ونماذج SwinV2window16/window12التي كانت تُغيّر المخرجات عند استدعاء بحجم متساوٍ. - إصلاح قيم NaN في SwinV2 عند استخدام حجم نافذة يساوي 1، وأحجام ميزات غير زوجية في المراحل، وإعادة تحجيم ViT الهجين على CUDA / الدقة المنخفضة.
- إصلاح معالجة بقايا تراكم التدرّجات (#2821)، والعينة الموزّعة / المعزّز المتكرر على مجموعات البيانات الصغيرة، وتجاوزات المصدر المُسبق التدريب وإعداد معلّم التقطير، و
train.pyمع--sched none، والاستيفاء للمحاصيل المركزية للتقييم للمدخلات غير المربعة. - إصلاحات توافق تصدير ONNX عبر إصدارات PyTorch، وإصلاحات اتساق dropout، بالإضافة إلى إصلاحات أخرى لتهيئة meta-device.
25 سبتمبر 2026
- دعم تصنيف التسميات المتعددة
- أضف
--task multilabelإلىtrain.py/validate.py، حيث يتم التدريب باستخدام BCE (MultiLabelClassificationTask). راجع وثائق التدريب للاطلاع على التفاصيل. - يمكن أن تكون الأهداف قوائم من فهارس الفئات، أو متجهات متعددة الحارة الكثيفة (
--target-format multihot)، أو حقل ثنائي واحد لكل فئة (--target-key a,b,c)، مع مسارات/إلى الحقول المتداخلة. يدعمها قارئاتhfdsوhfidsوtfds(مفاتيح متعددة الحقول) وwds. - تدعم محمّلات Mixup / CutMix وNaFlex أهدافًا متعددة التسميات. ينقل تنعيم التسميات كل هدف نحو 0.5، ويكون الافتراضي 0 في حالة التسميات المتعددة.
- يقوم التحقق بتقرير mAP (المتري الافتراضي
--eval-metric) بالإضافة إلى micro وmacro وsample F1، مع تحديد عتبة F1 بواسطة--multilabel-threshold. - تُحسب مقاييس على مستوى مجموعة البيانات الجديدة عبر كامل مجموعة التحقق على جميع الرتب الموزعة، مع استبعاد حشوة عينة التوزيع.
- راجع مجموعة تجمعات بيانات الصور متعددة التسميات في timm على Hub للحصول على أمثلة أو مجموعات بيانات مرجعية تعمل مباشرة دون إعداد إضافي.
- أضف
- خيارات جديدة للدالة الخاسرة عبر
--loss- خسائر Poly-1 وTwo-way وZLPR وDistribution-Balanced.
- وزن التكرار حسب الفئة لـ BCE / ASL، محسوب من أعداد التسميات التي تجمعها
class_weights.py. - أصبح ASL الآن آمنًا لـ fp16 ويعتمد افتراضيًا على اختزال
batchmean
- إعادة هيكلة RoPE
تمديد زيادة إحداثيات RoPE المخصصة للتدريب فقط (الإزاحة، الاهتزاز، إعادة التحجيم) لتشمل التضمينات المحورية والمختلطة و MRoPE، مع مشاركة أدوات مساعدة مع DINOv3 مع الحفاظ على سلوك الزيادة الحالي فيه. إضافة خيارات grid_type و normalize_coords إلى منشئات فورييه/الدوارة (build_fourier_pos_embed، build_rotary_pos_embed) ووحدات RoPE المحورية، وأقسام MRoPE قابلة للتكوين في EVA. دعم rotate_half في RotaryEmbedding الذي يعيد tuples والمتغير الأساسي للمصنع. تصحيح تمرير تخطيط الدوران في EVA و NaFlexViT و MRoPE attention pooling. إبقاء مخازن ترددات وإحداثيات RoPE غير القابلة للتعلم بدقة float32 على الأقل في النماذج ذات الدقة النصفية/bfloat16، وحساب مراحل RoPE المختلطة بدقة float32 تحت autocast. قد تغيّر هذه التصحيحات الدقيقة مخرجات النماذج منخفضة الدقة. إصلاح تضمينات RoPE الدفعية لشبكات البكسل وإعادة تحجيم الشكل المرجعي. أصبح DINOv3 grid_indexing='xy' يبدّل قنوات الإحداثيات كما طُلب؛ تتغير المخرجات لهذه الإعدادات التي كانت غير صحيحة سابقًا. جعل apply_rot_embed و apply_rot_embed_cat و apply_rot_embed_list تعيد نوع البيانات (dtype) لكل مدخل، مع التحويل بعد الدوران دون خفض دقة sin/cos أولاً. توحيد وحدتي RoPE المحوريتين خلف قاعدة خاصة. تبقى الاستدعاءات الحالية متوافقة، لكن مخزن bands يُحتفظ به الآن في وضعي التخزين المؤقت الديناميكي (لم يعد rope.bands يساوي None في الوضع المخزّن مؤقتًا).
- توسيع زيادة إحداثيات RoPE الخاصة بالتدريب فقط (الإزاحة، الاهتزاز، إعادة التحجيم) لتشمل التضمينات المحورية والمختلطة وتضمينات MRoPE، مع مشاركة أدوات مساعدة مع DINOv3 والحفاظ في الوقت نفسه على سلوك الزيادة الحالي فيه.
- أضِف خيارات
grid_typeوnormalize_coordsإلى منشئات فورييه / الدورانية (build_fourier_pos_embed،build_rotary_pos_embed) ووحدات RoPE المحورية، بالإضافة إلى أقسام MRoPE قابلة للتكوين في EVA. - دعم
rotate_halfفيRotaryEmbeddingذي المخرجات على شكل tuple وفي النسخةbaseمن المصنع. - إصلاح تمرير تخطيط الدوران بشكل صحيح في EVA وNaFlexViT وMRoPE في تجميع الانتباه.
- حافظ على مخازن ترددات RoPE غير المتعلمة وإحداثياتها على الأقل بدقة float32 في النماذج ذات الدقة النصفية/bfloat16، واحسب مراحل RoPE المختلطة بدقة float32 تحت autocast. قد تُغيّر هذه الإصلاحات المتعلقة بالدقة مخرجات النماذج منخفضة الدقة.
- إصلاح تضمينات RoPE المُجمَّعة لشبكات البكسل وإعادة تحجيم الشكل المرجعي. في DINOv3، يقوم
grid_indexing='xy'الآن بتبديل قنوات الإحداثيات كما هو مطلوب؛ وتتغير المخرجات لهذه الإعدادات التي كانت غير صحيحة سابقًا. - اجعل
apply_rot_embedوapply_rot_embed_catوapply_rot_embed_listتُرجع نوع البيانات (dtype) الخاص بكل مدخل، مع إجراء التحويل (casting) بعد الدوران دون خفض نوع بيانات sin/cos أولاً. - دمج وحدتي RoPE المحوريتين خلف قاعدة خاصة. تبقى الاستدعاءات الحالية متوافقة، لكن مخزن
bandsيُحتفظ به الآن في وضعي التخزين المؤقت الديناميكي (rope.bandsلم يعدNoneفي وضع التخزين المؤقت).
- إصلاحات تبديل وضع التدريب/التقييم وتغيير نوع البيانات (dtype) لنموذج LeViT والنماذج ذات الصلة (EfficentFormer*، EfficientViT-MSRA، TinyViT) مع تحيّزات الانتباه المخزنة مؤقتًا.
22 سبتمبر 2026
- إضافة أوزان برج الرؤية لنموذج Qwen-Drive-1.0-4B.
- إصلاح إعادة استخدام/مزامنة تدفّع محمّل الاستباق (prefetch loader) وAugMix للصور غير المربعة والصور أحادية النطاق.
- إصلاح توسيع معدل التعلم في AdaMuon conv، وقصّ AdafactorBigVision، وسجلّ التدرّجات في MARS، وتحميل نقاط التفتيش في Kron.
- إصلاح كاشات انحياز الانتباه القديمة في التقييم، وبيانات الوصف الخاصة بميزات النموذج المُقتطع، وتعبئة الحد الأقصى للجمع المُمدد، ووضع تدرج الخسارة غير المتماثل.
- الإصدار 1.0.30
10-11 سبتمبر 2026
- إضافة متغيرات مصنّف ومشفّر ViT لـ Qwen3-VL / Qwen3.5 / Qwen3.8، بما في ذلك المصنّفات مع دمج المكانية الأصلي وبدونه.
- أضِف نماذج Sapiens2 ViTs مع دعم EVA وNaFlexViT. تتضمن إضافتا النموذج أوزان timm Hub الأصلية. شكرًا Yonghye Kwon.
- أضِف iFormer مع أوزان timm Hub الأصلية. شكرًا Ryan Hou.
- أضِف EfficientViM مع أوزان timm Hub الأصلية. شكرًا smellslikeml.
- إضافة مصنّفات ومشفّرات ViT لنماذج DeepSeek-V4 / V4.1 مع أوزان Hub الأصلية من timm. شكرًا Yonghye Kwon.
- تبديل التفسير الموضعي الافتراضي لـ NaFlex SigLIP، واختيار حجم الإدخال في
inference.py، وتحسين تحليل--model-kwargs. - إصلاح بناء جهاز meta ودعم مصنع الجهاز/نوع البيانات لعدد قليل من النماذج؛ نقل اختبارات الإعداد إلى meta لتسريع CI، وتغطية سياق meta.
27 أغسطس 2026
- إضافة نموذج LowFormer والأوزان
- إصلاح أو دمج مجموعة من الأخطاء الحقيقية لكنها صغيرة أو غير شائعة الظهور والتي اكتشفها الوكلاء
- الإصدار 1.0.29
11 أغسطس 2026
- إضافة تعريفات النماذج والأوزان المُسبقة التدريب لـ
- CPUBone، وهو هيكل رؤية فعال للأجهزة ذات قدرات التوازي المنخفضة.
- PP-LCNetV2.
- LingBot-Vision.
- إضافة جدولة الصور وحجم الدفعة لكل دفعة لتدريب غير NaFlex، بما في ذلك جداول الدقة التدريجية من الصغيرة إلى الكبيرة.
- حسّن NaFlexViT باستخدام أقنعة انتباه تعتمد على المفاتيح فقط، وعيّنة مواقع متوافقة مع التجميع وفعّالة من حيث الذاكرة، واستيفاء متغيّر الباتش المخزّن مؤقتًا.
- تحسين مسار مصنع النموذج ومعالجة نقاط التفتيش؛ إصلاح إعادة أخذ عينات تضمين الموضعيات للرموز المتساوية.
10 يوليو 2026
- تحسين دعم المُحسِّن
torch.compileومعدّل تعلّم المصفوفات. - توسيع تخطيط الباتش (patch-layout) في NaFlexViT (لـ NaFlex-CLAP)، ودعم
forward_intermediates(إمداد قاموس NaFlex). - تقوية تحميل pickle وتحسين الاستدلال على التسميات المخصصة.
- الإصدار 1.0.28
27 مايو 2026
- أضِف تعريفات النماذج والأوزان المُسبقة التدريب لنماذج EUPE ViT (بنمط DINOv3) وConvNeXt. راجع ورقة Efficient Universal Perception Encoder.
- أضِف تعريفات نماذج TIPSv2 والأوزان المُسبقة التدريب لنماذج ViT (على غرار DINOv2). راجع ورقة TIPSv2.
8 مايو 2026
- الإصدار 1.0.27
23 أبريل 2026
- إضافة مُشفّرات Gemma4 ViT مع دعم خط أنابيب NaFlex (نسبة أبعاد/حجم متغيّر لكل صورة). شكرًا Yonghye Kwon
- دعم أوزان DINOv3 في NaFlexVit. شكرًا Yonghye Kwon
- بعض التحسينات على سلوك معدل التعلم (lr) في آلية الاحتياط (fallback) الخاصة بـ Muon (AdamW/NadamW)
23 مارس 2026
- تحسين أمان معالجة نقاط التفتيش الخاصة بـ pickle. تعيين جميع عمليات التحميل افتراضيًا إلى
weights_only=True، وإضافة safe_global لـ ArgParse. - تحسين معالجة قناع الانتباه للنماذج الأساسية ViT/EVA والطبقات. حلّ أقنعة bool، وتحويل
is_causalعبر مهام SSL. - إصلاح استخدامات فئة register مع ViT عند عدم تفعيل تضمين الموضع.
- إضافة تحسين تمثيل الباتش (PRR) كخيار للتجميع في ViT. شكرًا لـ Sina (https://github.com/sinahmr).
- تحسين اتساق أبعاد الإسقاط المخرجات / طبقات MLP لطبقات تجميع الانتباه.
- تحسين F.SDPA في نموذج Hiera للسماح باستخدام نواة Flash Attention.
- تمت إضافة تحذير إلى مُحسِّن SGDP.
- الإصدار 1.0.26. أول إصدار صيانة منذ مغادرتي لشركة Hugging Face.
23 فبراير 2026
- إضافة دعم تدريب تقطير الرموز إلى أغلفة مهام التقطير
- إزالة بعض استخدامات torch.jit استعدادًا للإلغاء الرسمي
- إضافة تحذير إلى مُحسِّن AdamP
- استدعِ reset_parameters() حتى عند استخدام تهيئة جهاز meta، حتى يتم تهيئة المخازن باستخدام حيل مثل init_empty_weights
- تعديل مُحسِّن Muon ليعمل مع DTensor/FSDP2 (استخدام بدلاً من clamp_min، وتبديل فرع NS لـ DTensor)
- الإصدار 1.0.25
21 يناير 2026
- Compat Break: إصلاح إغفال يتعلق بـ QKV مقابل MLP bias في
ParallelScalingBlock(&DiffParallelScalingBlock)- لا يؤثر على أي من نماذج
timmالمدرَّبة، لكنه قد يؤثر على الاستخدام اللاحق.
- لا يؤثر على أي من نماذج
5 و6 يناير 2026
- الإصدار 1.0.24
- إضافة ملفات csv جديدة لنتائج المعايير المرجعية لأزمنة الاستدلال على جميع النماذج باستخدام بطاقات RTX Pro 6000 و5090 و4090 مع PyTorch 2.9.1
- إصلاح خطأ وحدة مُنقَلة في مسار الاستيراد المُتقادم timm.models.layers الذي يؤثر على الاستيرادات القديمة
- الإصدار 1.0.23
30 ديسمبر 2025
- إضافة نماذج ViT (تفاضلية) مدربة بشكل أفضل بواسطة NAdaMuon
dpwee,dwee,dlittle(مع تحسّن طفيف مقارنةً بالتشغيلات السابقة - إضافة نموذج بحجم ~21 مليون معامل
timmمن نموذج CSATv2 بدقة 512x512 و 640x640- https://huggingface.co/timm/csatv2_21m.sw_r640_in1k (83.13% top-1)
- https://huggingface.co/timm/csatv2_21m.sw_r512_in1k (82.58% top-1)
- استخراج تهيئة المعاملات غير الدائمة من
__init__إلى طريقة مشتركة يمكن استدعاؤها من الخارج عبرinit_non_persistent_buffers()بعد تهيئة جهاز meta.
12 ديسمبر 2025
- إضافة نموذج CSATV2 (شكرًا لـ https://github.com/gusdlf93) — نموذج خفيف الوزن لكنه عالي الدقة مع جذر DCT واهتمام مكاني. https://huggingface.co/Hyunil/CSATv2
- إضافة دعم لخوارزميتي AdaMuon وNAdaMuon إلى تطبيق
timmالخاص بخوارزمية Muon الموجودة مسبقًا. يبدو أن الأداء أكثر تنافسية مقارنةً بـ AdamW عند استخدام معاملات مألوفة لمهام الصور. - تنظيف طلبات الدمج في نهاية العام، ودمج جوانب من عدة طلبات دمج مفتوحة منذ فترة طويلة
- دمج الانتباه التفاضلي (
DiffAttention), ، وإضافةDiffParallelScalingBlock(لـ ViT)، وتدريب بعض نماذج ViT الصغيرة - أضف بعض وحدات التجميع،
LsePlusوSimPool - تنظيف وتحسين
DropBlock2d(مع إضافة الدعم أيضاً للنماذج القائمة على ByobNet)
- دمج الانتباه التفاضلي (
- ترقية اختبارات الوحدات إلى PyTorch 2.9.1 وPython 3.13 في الحد الأعلى، مع خفض الحد الأدنى إلى PyTorch 1.13 وPython 3.10
1 ديسمبر 2025
- أضِف تجريدًا خفيفًا للمهام، وأضِف دعمًا لتقطير القيم اللوجستية والميزات إلى سكربت التدريب عبر مهام جديدة.
- إزالة دعم APEX AMP القديم
4 نوفمبر 2025
- إصلاح خطأ في تهيئة LayerScale / LayerScale2d (تجاهل قيم التهيئة)، الذي أُدخل في الإصدار 1.0.21. شكرًا https://github.com/Ilya-Fradlin
- الإصدار 1.0.22
31 أكتوبر 2025 🎃
- تحديث ملفات csv لنتائج imagenet & OOD variant لتشمل بعض النماذج الجديدة والتحقق من صحتها عبر عدة إصدارات من torch & timm
- تمت إضافة أوزان نماذج EfficientNet-X و EfficientNet-H B5 كجزء من بحث على المعلمات الفائقة لمقارنة AdamW مع Muon (لا يزال العمل جارياً على تشغيلات Muon)
16-20 أكتوبر 2025
- إضافة تنفيذ لمُحسِّن Muon (مبني على https://github.com/KellerJordan/Muon) مع تخصيصات
- مرونة إضافية ومعالجة محسّنة لأوزان الالتفاف، مع بدائل لأشكال الأوزان غير المناسبة للتعامد
- تحسين طفيف لسرعة تكرارات NS عن طريق تقليل عمليات التخصيص واستخدام عمليات (b)add(b)mm المدمجة
- تستخدم بشكل افتراضي تحديثات AdamW (أو NAdamW إذا كان
nesterov=True) إذا لم يكن muon مناسبًا لشكل المعامل (أو تم استبعاده عبر علم مجموعة المعاملات) - مثل تطبيق torch، اختر من بين عدة دوال لضبط مقياس معدل التعلم عبر
adjust_lr_fn - اختر من بين عدة إعدادات مسبقة لمعامل NS أو حدد إعداداتك الخاصة عبر
ns_coefficients
- دعم أول خطوتين من تهيئة نموذج جهاز 'meta'
- إصلاح عدة عمليات كانت تُسبب فشل الإنشاء في سياق جهاز ‘meta’
- Add device & dtype factory kwarg support to all models and modules (anything inherting from nn.Module) in
timm
- حقول الترخيص المضافة إلى ملفات الإعداد المسبق في الكود
- الإصدار 1.0.21
21 سبتمبر 2025
- إعادة تعيين وسم أوزان DINOv3 ViT من
lvd_1689m->lvd1689mليتطابق (وكذلكsat_493m->sat493m) - الإصدار 1.0.20
17 سبتمبر 2025
- DINOv3 (https://arxiv.org/abs/2508.10104) تمت إضافة نماذج ConvNeXt وViT. تم تعيين نماذج ConvNeXt إلى نموذج
timmالخاص بـRotaryEmbeddingDinoV3لمطابقة تنفيذ RoPE الخاص بـ DINOv3 - مشفرات الرؤية في MobileCLIP-2 (https://arxiv.org/abs/2508.20691). أُضيفت نسخ FastViT الجديدة MCI3/MCI4 وتم تعيين الأوزان إلى نماذج FastViT و B, L/14 ViTs الموجودة مسبقًا.
- تمت إضافة أوزان مُشفِّر ViT الخاص بـ MetaCLIP-2 Worldwide (https://arxiv.org/abs/2507.22062).
- أوزان مُشفِّر SigLIP-2 (https://arxiv.org/abs/2502.14786) NaFlex ViT المضافة عبر نموذج timm NaFlexViT.
- إصلاحات ومساهمات متنوعة
23 يوليو 2025
- أضِف طريقة
set_input_size()إلى نماذج EVA، وتُستخدم في OpenCLIP 3.0.0 للسماح بتغيير حجم نماذج المُشفِّرات المبنية على timm. - الإصدار 1.0.18، وهو مطلوب لنماذج PE-Core S & T في OpenCLIP 3.0.0
- إصلاح مشكلة صغيرة في الكتابة (typing) كانت تُسبب كسر توافق Python 3.9. إصدار تصحيحي 1.0.19.
21 يوليو 2025
- تمت إضافة دعم ROPE إلى NaFlexViT. يمكن الآن تحميل جميع النماذج المشمولة بـ EVA base (
eva.py) بما في ذلك EVA وEVA02 وMeta PE ViT وtimmSBB ViT مع ROPE وNaver ROPE-ViT في NaFlexViT عند تمريرuse_naflex=Trueعند إنشاء النموذج - تمت إضافة المزيد من مشفّرات Meta PE ViT، بما في ذلك النسخ الصغيرة/الضئيلة، والنسخ اللغوية مع التقطيع، بالإضافة إلى المزيد من النسخ المكانية.
- تم إصلاح PatchDropout مع NaFlexViT وكذلك مع نماذج EVA (انحدار بعد إضافة Naver ROPE-ViT)
- إصلاح ترتيب XY باستخدام grid_indexing='xy'، مما يؤثر على استخدام الصور غير المربعة في وضع 'xy' (تتأثر فقط ROPE-ViT وPE).
7 يوليو 2025
- تعديلات على العمود الفقري MobileNet-v5 لتحسين سلوك Google Gemma 3n (للاستخدام مع الأوزان الرسمية المحدّثة)
- إضافة انحياز جذر (يُصفَّر في الأوزان المحدّثة، مع كسر توافق مع الأوزان القديمة)
- GELU -> GELU (تقريب tanh). تغيير طفيف ليكون أقرب إلى JAX
- أضِف حَجَين إلى دعم تدرّج الطبقات، حدّ أدنى للتقييد المقياسي وعتبة مقياس «عدم التحسين»
- إضافة متغيرات ‘Fp32’ من طبقات LayerNorm وRMSNorm وSimpleNorm يمكن تفعيلها لإجبار حساب المعيار في float32
- بعض الكتابة وتنظيف الحجة لطبقات norm و norm+act تم إنجازه بالأسلوب أعلاه
- دعم Naver ROPE-ViT (https://github.com/naver-ai/rope-vit) في
eva.py، وإضافة وحدة RotaryEmbeddingMixed للوضع المختلط، والأوزان على HuggingFace Hub
| نموذج | img_size | top1 | top5 | param_count |
|---|---|---|---|---|
| vit_large_patch16_rope_mixed_ape_224.naver_in1k | 224 | 84.84 | 97.122 | 304.4 |
| vit_large_patch16_rope_mixed_224.naver_in1k | 224 | 84.828 | 97.116 | 304.2 |
| vit_large_patch16_rope_ape_224.naver_in1k | 224 | 84.65 | 97.154 | 304.37 |
| vit_large_patch16_rope_224.naver_in1k | 224 | 84.648 | 97.122 | 304.17 |
| vit_base_patch16_rope_mixed_ape_224.naver_in1k | 224 | 83.894 | 96.754 | 86.59 |
| vit_base_patch16_rope_mixed_224.naver_in1k | 224 | 83.804 | 96.712 | 86.44 |
| vit_base_patch16_rope_ape_224.naver_in1k | 224 | 83.782 | 96.61 | 86.59 |
| vit_base_patch16_rope_224.naver_in1k | 224 | 83.718 | 96.672 | 86.43 |
| vit_small_patch16_rope_224.naver_in1k | 224 | 81.23 | 95.022 | 21.98 |
| vit_small_patch16_rope_mixed_224.naver_in1k | 224 | 81.216 | 95.022 | 21.99 |
| vit_small_patch16_rope_ape_224.naver_in1k | 224 | 81.004 | 95.016 | 22.06 |
| vit_small_patch16_rope_mixed_ape_224.naver_in1k | 224 | 80.986 | 94.976 | 22.06 |
- بعض أعمال التنظيف الخاصة بوحدات ROPE والدوال المساعدة وتسجيل أوراق تتبع FX
- التحضير لإصدار النسخة 1.0.17
26 يونيو 2025
- هيكل MobileNetV5 (مع نسخة المشفّر فقط) لمشفّر الصور في Gemma 3n
- تم إصدار الإصدار 1.0.16
23 يونيو 2025
إضافة إعادة تحجيم لتضمين الموضع ثنائي الأبعاد والمُحلَّل العاملات المعتمد على F.grid_sample إلى NaFlexViT. أسرع عند وجود العديد من الأحجام المختلفة (مستند إلى مثال من https://github.com/stas-sl).
تسريع إعادة أخذ عينات تضمين البقع بشكل أكبر عن طريق استبدال vmap بـ matmul (بناءً على مقتطف من https://github.com/stas-sl).
أضف 3 نقاط تحقق أصلية مبدئية لنموذج NaFlexViT تم إنشاؤها أثناء الاختبار، مع إعدادات ImageNet-1k و3 تكوينات مختلفة لتضمين المواقع (pos embed) باستخدام نفس المعلمات الفائقة (hparams).
النموذج دقة أعلى 1 دقة أعلى 5 المعاملات (مليون) طول تسلسل التقييم naflexvit_base_patch16_par_gap.e300_s576_in1k 83.67 96.45 86.63 576 naflexvit_base_patch16_parfac_gap.e300_s576_in1k 83.63 96.41 86.46 576 naflexvit_base_patch16_gap.e300_s576_in1k 83.50 96.46 86.63 576 دعم فحص التدرّجات (gradient checkpointing) لـ
forward_intermediatesوإصلاح بعض أخطاء الفحص. شكرًا https://github.com/brianhou0208إضافة «تخميد الوزن المُصحَّح» (https://arxiv.org/abs/2506.02285) كخيار في محسّنات AdamW (legacy)، وAdopt، وKron، وAdafactor (BV)، وLamb، وLaProp، وLion، وNadamW، وRmsPropTF، وSGDW
التبديل إلى استخدام أوزان timm الأصلية بدلاً من إعادة تعيينها على الفور في نماذج PE (مُشفِّر الإدراك) ViT
إصلاح خطأ تدفق cuda في محمّل الاستباق
5 يونيو 2025
- كود نموذج NaFlexVit الأولي. NaFlexVit هو Vision Transformer يتضمن:
- تضمين التضمين وترميز المواقع في وحدة واحدة
- دعم تضمين الباتش (patch embedding) باستخدام nn.Linear على المدخلات المُسبقة التقطيع (dictionary)
- دعم NaFlex للأبعاد المتغيرة والدقة المتغيرة (SigLip-2: https://arxiv.org/abs/2502.14786)
- دعم حجم الباتش المتغير في FlexiViT (https://arxiv.org/abs/2212.08013)
- دعم تضمين المواقع الكسري/المُحلَّل في NaViT (https://arxiv.org/abs/2307.06304)
- يمكن تحميل نماذج vit الموجودة في
vision_transformer.pyفي نموذج NaFlexVit عن طريق إضافةuse_naflex=Trueإلىcreate_model- بعض الأوزان الأصلية قادمة قريباً
- يتوفر خط أنابيب بيانات NaFlex كامل يتيح التدريب / الضبط الدقيق / التقييم باستخدام صور بأبعاد / أحجام متغيرة
- لتفعيل ذلك في
train.pyوvalidate.py، أضف الحجة--naflex-loader، ويجب استخدامه مع NaFlexVit
- لتفعيل ذلك في
- لتقييم نموذج ViT (كلاسيكي) موجود محمّل في نموذج NaFlexVit مع خط بيانات NaFlex:
python validate.py /imagenet --amp -j 8 --model vit_base_patch16_224 --model-kwargs use_naflex=True --naflex-loader --naflex-max-seq-len 256
- يحتوي التدريب على بعض الميزات الإضافية المتعلقة بالحجج (args) تستحق الانتباه
- يحدد الحجة
--naflex-train-seq-lens'أطوال التسلسلات التي سيتم اختيارها عشوائياً من كل دفعة أثناء التدريب - تحدد حجة
--naflex-max-seq-lenطول التسلسل المستهدف للتحقق - إضافة
--model-kwargs enable_patch_interpolator=True --naflex-patch-sizes 12 16 24ستفعّل اختيار حجم الباتش (patch) بشكل عشوائي لكل دفعة (batch) مع الاستيفاء - يُغيّر الحجة
--naflex-loss-scaleوضع توسيع الخسارة لكل دفعة بالنسبة لحجم الدفعة، بينما يُغيّر تحميل NaFlex فيtimmحجم الدفعة لكل طول تسلسل
- يحدد الحجة
28 مايو 2025
- أضف عددًا من النماذج الصغيرة/السريعة بفضل https://github.com/brianhou0208
- SwiftFormer - (ICCV2023) SwiftFormer: انتباه إضافي فعّال لتطبيقات الرؤية الفورية على الهواتف المحمولة المعتمدة على Transformers
- FasterNet - (CVPR2023) اركض ولا تمشِ: السعي وراء FLOPS أعلى لشبكات عصبية أسرع
- SHViT - (CVPR2024) SHViT: Single-Head Vision Transformer with Memory Efficient
- StarNet - (CVPR2024) إعادة كتابة النجوم
- GhostNet-V3 GhostNetV3: استكشاف استراتيجيات التدريب للنماذج المدمجة
- تحديث EVA ViT (الأقرب تطابقًا) لدعم نماذج Perception Encoder (https://arxiv.org/abs/2504.13181) من Meta، مع تحميل أوزان Hub، لكنني ما زلت بحاجة إلى دفع أوزان مخصصة لـ
timmأوزان- أضِف بعض المرونة إلى تطبيق ROPE
- زيادة كبيرة في عدد النماذج الداعمة لـ
forward_intermediates()وبعض الإصلاحات الإضافية بفضل https://github.com/brianhou0208- DaViT، EdgeNeXt، EfficientFormerV2، EfficientViT(MIT)، EfficientViT(MSRA)، FocalNet، GCViT، HGNet /V2، InceptionNeXt، Inception-V4، MambaOut، MetaFormer، NesT، Next-ViT، PiT، PVT V2، RepGhostNet، RepViT، ResNetV2، ReXNet، TinyViT، TResNet، VoV
- تم تحديث نموذج TNT بأوزان جديدة لـ
forward_intermediates()بفضل https://github.com/brianhou0208 - أضف مخطط
local-dir:للموديلات المُسبقة التدريب، حيث يمكن استخدامlocal-dir:/path/to/model/folderكاسم للموديل لجلب موديلات Hugging Face Hub (ملف config.json + ملف الأوزان) من مجلد محلي. - إصلاحات وتحسينات للتصدير إلى onnx
21 فبراير 2025
- تمت إضافة مشفّرات الصور SigLIP 2 ViT (https://huggingface.co/collections/timm/siglip-2-67b8e72ba08b09dd97aecaf9)
- نسخ NaFlex ذات الدقة/النسبة المتغيرة قيد التطوير
- إضافة أوزان ViT لنموذج ‘SO150M2’ تم تدريبها باستخدام وصفات SBB، نتائج رائعة، أفضل على ImageNet من المحاولة السابقة مع تدريب أقل.
vit_so150m2_patch16_reg1_gap_448.sbb_e200_in12k_ft_in1k- 88.1% أعلى دقة من الدرجة الأولىvit_so150m2_patch16_reg1_gap_384.sbb_e200_in12k_ft_in1k- 87.9% أعلى دقة من الدرجة الأولىvit_so150m2_patch16_reg1_gap_256.sbb_e200_in12k_ft_in1k- 87.3% أعلى دقة من الدرجة الأولىvit_so150m2_patch16_reg4_gap_256.sbb_e200_in12k
- تم تحديث أوزان InternViT-300M ‘2.5’
- الإصدار 1.0.15
1 فبراير 2025
- للمعلومية، تم اختبار PyTorch 2.6 وPython 3.13 وتعمل بشكل صحيح مع النسخة الرئيسية الحالية والنسخة المُصدَّرة من
timm
27 يناير 2025
- إضافة مُحسِّن Kron (PSGD مع مُسبِّق مُقسَّم بعامل Kronecker)
- الكود من https://github.com/evanatyourservice/kron_torch
- انظر أيضًا إلى https://sites.google.com/site/lixilinx/home/psgd
19 يناير 2025
- إصلاح تحميل أوزان LeViT بصيغة safetensor، وإزالة كود التحويل الذي كان ينبغي تعطيله
- إضافة أوزان ViT لنموذج ‘SO150M’ تم تدريبها باستخدام وصفات SBB، النتائج جيدة، لكن الشكل ليس الأمثل للتدريب المسبق على ImageNet-12k/1k أو الضبط الدقيق
vit_so150m_patch16_reg4_gap_256.sbb_e250_in12k_ft_in1k- 86.7% أعلى دقة من الدرجة الأولىvit_so150m_patch16_reg4_gap_384.sbb_e250_in12k_ft_in1k- 87.4% أعلى دقة من الدرجة الأولىvit_so150m_patch16_reg4_gap_256.sbb_e250_in12k
- تنظيف عام للأخطاء الإملائية وأخطاء الكتابة
- إصدار 1.0.14 لإخراج إصلاح LeViT
9 يناير 2025
- إضافة دعم لتدريب والتحقق بشكل خالص باستخدام
bfloat16أوfloat16 - أُضيفت حجة اسم مشروع
wandbبواسطة https://github.com/caojiaolong، استخدم arg.experiment كاسم - إصلاح مشكلة قديمة تتعلق بعدم عمل حفظ نقاط التفتيش على أنظمة الملفات التي لا تدعم الروابط الصلبة (مثل تركيبات أنظمة الملفات FUSE)
- إصدار 1.0.13
6 يناير 2025
- أضف غلاف
torch.utils.checkpoint.checkpoint()فيtimm.modelsيجعل القيمة الافتراضية لـuse_reentrant=False، ما لم يتم تعيينTIMM_REENTRANT_CKPT=1في متغيرات البيئة.
31 ديسمبر 2024
convnext_nano384x384 تدريب مسبق على ImageNet-12k وضبط دقيق. https://huggingface.co/models?search=convnext_nano%20r384- أضِف مُشفِّرات AIM-v2 من https://github.com/apple/ml-aim، راجعها على Hub: https://huggingface.co/models?search=timm%20aimv2
- أضِف مُشفِّرات PaliGemma2 من https://github.com/google-research/big_vision إلى PaliGemma الموجودة مسبقاً، راجع على Hub: https://huggingface.co/models?search=timm%20pali2
- إضافة نموذج CLIP ViT المفقود L/14 DFN2B 39B،
vit_large_patch14_clip_224.dfn2b_s39b - إصلاح طبقة
RmsNormوالدالة الحالية لتتوافق مع الصياغة القياسية، واستخدام تنفيذ PT 2.5 عند الإمكان. تم نقل التنفيذ القديم إلى طبقةSimpleNorm، وهي LN دون توسيط أو انحياز. كانت هناك نموذجان فقط منtimmيستخدمانها، وقد تم تحديثهما. - السماح بتجاوز معامل
cache_dirلإنشاء النموذج - مرّر
trust_remote_codeإلى غلاف مجموعات بيانات HF - نموذج
inception_next_attoالذي أضافه المنشئ - تحذير حول مُحسِّن Adan، وخيارات تخفيف الوزن المنفصل في Lamb
- بعض بيانات الوصف الخاصة بـ feature_info تم إصلاحها بواسطة https://github.com/brianhou0208
- تم منح جميع أوزان نماذج OpenCLIP و JAX (CLIP، SigLIP، Pali، إلخ) التي استخدمت إعادة تعيين وقت التحميل (load time remapping) نسخًا خاصة بها على HF Hub بحيث تعمل مع التحميل المبني على
hf-hub:، وبالتالي ستعمل معTimmWrapperModelالجديد في Transformers
28 نوفمبر 2024
- مزيد من المُحسِّنات
- إضافة مُحسِّن MARS (https://arxiv.org/abs/2411.10438، https://github.com/AGI-Arena/MARS)
- إضافة مُحسِّن LaProp (https://arxiv.org/abs/2002.04839، https://github.com/Z-T-WANG/LaProp-Optimizer)
- إضافة الإخفاء (Masking) من «Cautious Optimizers» (https://arxiv.org/abs/2411.16085، https://github.com/kyleliang919/C-Optim) إلى Adafactor وAdafactor Big Vision وAdamW (legacy) وAdopt وLamb وLaProp وLion وNadamW وRMSPropTF وSGDW
- تنظيف بعض سلاسل التوثيق وتعليقات الأنواع المتعلقة بمحسّنات المصنع
- إضافة نماذج MobileNet-V4 Conv Medium المُدرَّبة مسبقًا على in12k والمُحسَّنة على in1k بدقة 384x384
- أضف cs3darknet الصغير، وهو جيد جدًا من حيث السرعة
12 نوفمبر 2024
- إعادة هيكلة مصنع المُحسِّنات
- يعمل المصنع الجديد من خلال تسجيل المُحسِّنات باستخدام فئة البيانات OptimInfo التي تتضمن بعض الخصائص الرئيسية
- أضف
list_optimizersوget_optimizer_classوget_optimizer_infoإلى دالةcreate_optimizer_v2المُعاد تصميمها لاستكشاف المُحسِّنات والحصول على معلوماتها أو فئاتها - إلغاء استخدام
optim.optim_factory، ونقل الدوال إلىoptim/_optim_factory.pyوoptim/_param_groups.py، والتشجيع على الاستيراد عبرtimm.optim
- أضف مُحسِّن Adopt (https://github.com/iShohei220/adopt)
- إضافة متغيّر «Big Vision» من مُحسِّن Adafactor (https://github.com/google-research/big_vision/blob/main/big_vision/optax.py)
- إصلاح Adafactor الأصلي لاختيار أبعاد تفكيك أفضل للتحويلات
- ضبط مُحسِّن LAMB مع بعض التحسينات في وظيفة torch.where مقارنةً بالنسخة الأصلية، وإعادة هيكلة القصّ قليلاً
- دعم أحجام الصور الديناميكية في vit وdeit وeva، مع تحسين لدعم تغيير الحجم من شبكات الباتش غير المربعة، شكرًا لـ https://github.com/wojtke
31 أكتوبر 2024
أضف مجموعة جديدة من أوزان ResNet & ResNet-V2 18/34 (كتلة أساسية) مدرّبة بشكل جيد جداً. راجع https://huggingface.co/blog/rwightman/resnet-trick-or-treat
19 أكتوبر 2024
- تنظيف استخدام torch amp لتجنب استدعاءات cuda الخاصة، ودمج دعم أجهزة Ascend (NPU) من MengqingCao والذي يجب أن يعمل الآن في PyTorch 2.5 مع ميزة التحميل التلقائي الجديد لتوسعة الأجهزة. تم اختبار Intel Arc (XPU) في Pytorch 2.5 أيضاً وعمل (في الغالب).
16 أكتوبر 2024
- إصلاح خطأ عند الاستيراد من المسار غير المدعوم
timm.models.registry، وزيادة أولوية تحذيرات الإيقاف الحالية لتكون مرئية - أوزان نموذج InternViT-300M (https://huggingface.co/OpenGVLab/InternViT-300M-448px) إلى
timmباسمvit_intern300m_patch14_448
14 أكتوبر 2024
- تمت إضافة تعريفات نماذج ResNet 18/18d/34/34d بنسخة ما قبل التنشيط (ResNetV2) بناءً على طلب (الأوزان قيد الانتظار)
- الإصدار 1.0.10
11 أكتوبر 2024
- تمت إضافة نموذج https://github.com/yuweihao/MambaOut وأوزانه. نهج ساخر لنماذج الرؤية القائمة على أنظمة الحالة المتسلسلة (SSM) دون استخدام SSM (وهو في جوهره ConvNeXt مع البوابة). مزيج من الأوزان الأصلية بالإضافة إلى تباينات مخصصة وأوزانها.
- يُعدّل SigLIP SO400M ViT على ImageNet-1k بدقة 378x378، مع إضافة خيار 378x378 لنماذج SigLIP 384x384 الموجودة مسبقًا
- vit_so400m_patch14_siglip_378.webli_ft_in1k - 89.42 أعلى دقة من الدرجة الأولى
- vit_so400m_patch14_siglip_gap_378.webli_ft_in1k - 89.03
- مشفر SigLIP SO400M ViT من النسخة متعددة اللغات (i18n) الحديثة، بحجم رقعة 16 @ 256x256 (https://huggingface.co/timm/ViT-SO400M-16-SigLIP-i18n-256). تحديث OpenCLIP قيد الانتظار.
- إضافة نموذجين وأوزان لنموذج ConvNeXt 'Zepto' (أحدهما مع جذر متراكب والآخر مع جذر بقع). يستخدم RMSNorm، وهو أصغر من 'Atto' السابق، ويحتوي على 2.2 مليون معامل.
- convnext_zepto_rms_ols.ra4_e3600_r224_in1k - 73.20 أعلى من الدرجة الأولى @ 224
- convnext_zepto_rms.ra4_e3600_r224_in1k - 72.81 @ 224
سبتمبر 2024
- إضافة مجموعة من نماذج الاختبار الصغيرة لتحسين اختبارات الوحدة وتطبيقات الموارد المنخفضة المتخصصة (https://huggingface.co/blog/rwightman/timm-tiny-test)
- إضافة نموذج MobileNetV4-Conv-Small (0.5x) (https://huggingface.co/posts/rwightman/793053396198664)
- mobilenetv4_conv_small_050.e3000_r224_in1k - 65.81 top-1 @ 256، 64.76 @ 224
- إضافة متغيرات MobileNetV3-Large التي تم تدريبها باستخدام وصفة MNV4 Small
- mobilenetv3_large_150d.ra4_e3600_r256_in1k - 81.81 @ 320، 80.94 @ 256
- mobilenetv3_large_100.ra4_e3600_r224_in1k - 77.16 @ 256، 76.31 @ 224
21 أغسطس 2024
- نماذج SBB ViT المحدّثة، التي تم تدريبها على ImageNet-12k وضبطها الدقيق على ImageNet-1k، تتحدى عددًا كبيرًا من النماذج الأكبر حجمًا والأبطأ بكثير
| نموذج | top1 | top5 | param_count | img_size |
|---|---|---|---|---|
| vit_mediumd_patch16_reg4_gap_384.sbb2_e200_in12k_ft_in1k | 87.438 | 98.256 | 64.11 | 384 |
| vit_mediumd_patch16_reg4_gap_256.sbb2_e200_in12k_ft_in1k | 86.608 | 97.934 | 64.11 | 256 |
| vit_betwixt_patch16_reg4_gap_384.sbb2_e200_in12k_ft_in1k | 86.594 | 98.02 | 60.4 | 384 |
| vit_betwixt_patch16_reg4_gap_256.sbb2_e200_in12k_ft_in1k | 85.734 | 97.61 | 60.4 | 256 |
- أوزان MobileNet-V1 1.25 و EfficientNet-B1 و ResNet50-D مع وصفة تحدّي خط الأساس MNV4
| نموذج | top1 | top5 | param_count | img_size |
|---|---|---|---|---|
| resnet50d.ra4_e3600_r224_in1k | 81.838 | 95.922 | 25.58 | 288 |
| efficientnet_b1.ra4_e3600_r240_in1k | 81.440 | 95.700 | 7.79 | 288 |
| resnet50d.ra4_e3600_r224_in1k | 80.952 | 95.384 | 25.58 | 224 |
| efficientnet_b1.ra4_e3600_r240_in1k | 80.406 | 95.152 | 7.79 | 240 |
| mobilenetv1_125.ra4_e3600_r224_in1k | 77.600 | 93.804 | 6.27 | 256 |
| mobilenetv1_125.ra4_e3600_r224_in1k | 76.924 | 93.234 | 6.27 | 224 |
- إضافة دعم لبنية العمود الفقري SAM2 (HieraDet) وتحميل الأوزان
- إضافة أوزان Hiera Small التي تم تدريبها باستخدام تضمين موضع abswin على in12k وضبطها بدقة على 1k
| نموذج | top1 | top5 | param_count |
|---|---|---|---|
| hiera_small_abswin_256.sbb2_e200_in12k_ft_in1k | 84.912 | 97.260 | 35.01 |
| hiera_small_abswin_256.sbb2_pd_e200_in12k_ft_in1k | 84.560 | 97.106 | 35.01 |
8 أغسطس 2024
- إضافة RDNet (‘DenseNets Reloaded’، https://arxiv.org/abs/2403.19588)، شكرًا Donghyun Kim
28 يوليو 2024
- أضف أوزان
mobilenet_edgetpu_v2_mمع وصفة مبنية علىra4mnv4-small. دقة top-1 تبلغ 80.1% عند 224 و80.7% عند 256. - الإصدار 1.0.8
26 يوليو 2024
- أوزان إضافية لنموذج MobileNet-v4، وتدريب مسبق على ImageNet-12k مع ضبط دقيق، ونماذج ConvLarge مع معالجة مضادة للتشويش
| نموذج | top1 | top1_err | top5 | top5_err | param_count | img_size |
|---|---|---|---|---|---|---|
| mobilenetv4_conv_aa_large.e230_r448_in12k_ft_in1k | 84.99 | 15.01 | 97.294 | 2.706 | 32.59 | 544 |
| mobilenetv4_conv_aa_large.e230_r384_in12k_ft_in1k | 84.772 | 15.228 | 97.344 | 2.656 | 32.59 | 480 |
| mobilenetv4_conv_aa_large.e230_r448_in12k_ft_in1k | 84.64 | 15.36 | 97.114 | 2.886 | 32.59 | 448 |
| mobilenetv4_conv_aa_large.e230_r384_in12k_ft_in1k | 84.314 | 15.686 | 97.102 | 2.898 | 32.59 | 384 |
| mobilenetv4_conv_aa_large.e600_r384_in1k | 83.824 | 16.176 | 96.734 | 3.266 | 32.59 | 480 |
| mobilenetv4_conv_aa_large.e600_r384_in1k | 83.244 | 16.756 | 96.392 | 3.608 | 32.59 | 384 |
| mobilenetv4_hybrid_medium.e200_r256_in12k_ft_in1k | 82.99 | 17.01 | 96.67 | 3.33 | 11.07 | 320 |
| mobilenetv4_hybrid_medium.e200_r256_in12k_ft_in1k | 82.364 | 17.636 | 96.256 | 3.744 | 11.07 | 256 |
- تحديات خط الأساس المبهرة لنموذجي MobileNet-V1 و EfficientNet-B0 (https://huggingface.co/blog/rwightman/mobilenet-baselines)
| نموذج | top1 | top1_err | top5 | top5_err | param_count | img_size |
|---|---|---|---|---|---|---|
| efficientnet_b0.ra4_e3600_r224_in1k | 79.364 | 20.636 | 94.754 | 5.246 | 5.29 | 256 |
| efficientnet_b0.ra4_e3600_r224_in1k | 78.584 | 21.416 | 94.338 | 5.662 | 5.29 | 224 |
| mobilenetv1_100h.ra4_e3600_r224_in1k | 76.596 | 23.404 | 93.272 | 6.728 | 5.28 | 256 |
| mobilenetv1_100.ra4_e3600_r224_in1k | 76.094 | 23.906 | 93.004 | 6.996 | 4.23 | 256 |
| mobilenetv1_100h.ra4_e3600_r224_in1k | 75.662 | 24.338 | 92.504 | 7.496 | 5.28 | 224 |
| mobilenetv1_100.ra4_e3600_r224_in1k | 75.382 | 24.618 | 92.312 | 7.688 | 4.23 | 224 |
- أُضيف نموذج أولي لدالة
set_input_size()إلى نماذج vit وswin v1/v2 للسماح بتغيير حجم الصورة وحجم الباتش وحجم النافذة بعد إنشاء النموذج. - تحسّن دعم معالجة أحجام مختلفة في swin، بالإضافة إلى
set_input_size، فقد أُضيفت الحججalways_partitionوstrict_img_sizeإلى__init__للسماح بقيود أكثر مرونة على حجم الإدخال - إصلاح معلومات الفهارس غير المرتبة لغلّف الميزة الوسيط ‘Getter’، والتحقق من فهارس النطاق أو النطاقات نفسها.
- أضِف عدة نماذج
tiny< .5M بارامتر للاختبار، مُدرَّبة فعليًا على ImageNet-1k
| نموذج | top1 | top1_err | top5 | top5_err | param_count | img_size | crop_pct |
|---|---|---|---|---|---|---|---|
| test_efficientnet.r160_in1k | 47.156 | 52.844 | 71.726 | 28.274 | 0.36 | 192 | 1.0 |
| test_byobnet.r160_in1k | 46.698 | 53.302 | 71.674 | 28.326 | 0.46 | 192 | 1.0 |
| test_efficientnet.r160_in1k | 46.426 | 53.574 | 70.928 | 29.072 | 0.36 | 160 | 0.875 |
| test_byobnet.r160_in1k | 45.378 | 54.622 | 70.572 | 29.428 | 0.46 | 160 | 0.875 |
| test_vit.r160_in1k | 42.0 | 58.0 | 68.664 | 31.336 | 0.37 | 192 | 1.0 |
| test_vit.r160_in1k | 40.822 | 59.178 | 67.212 | 32.788 | 0.37 | 160 | 0.875 |
- إصلاح تهيئة رمز vit reg، شكرًا Promisery
- إصلاحات أخرى متنوعة
24 يونيو 2024
- 3 أوزان إضافية لنماذج MobileNetV4 الهجينة مع مخططات تهيئة مختلفة لأوزان MQA
| نموذج | top1 | top1_err | top5 | top5_err | param_count | img_size |
|---|---|---|---|---|---|---|
| mobilenetv4_hybrid_large.ix_e600_r384_in1k | 84.356 | 15.644 | 96.892 | 3.108 | 37.76 | 448 |
| mobilenetv4_hybrid_large.ix_e600_r384_in1k | 83.990 | 16.010 | 96.702 | 3.298 | 37.76 | 384 |
| mobilenetv4_hybrid_medium.ix_e550_r384_in1k | 83.394 | 16.606 | 96.760 | 3.240 | 11.07 | 448 |
| mobilenetv4_hybrid_medium.ix_e550_r384_in1k | 82.968 | 17.032 | 96.474 | 3.526 | 11.07 | 384 |
| mobilenetv4_hybrid_medium.ix_e550_r256_in1k | 82.492 | 17.508 | 96.278 | 3.722 | 11.07 | 320 |
| mobilenetv4_hybrid_medium.ix_e550_r256_in1k | 81.446 | 18.554 | 95.704 | 4.296 | 11.07 | 256 |
- تحميل أوزان florence2 في نموذج DaViT
12 يونيو 2024
- تمت إضافة نماذج MobileNetV4 والمجموعة الأولية من الأوزان المدرَّبة عبر
timm:
- دعم نموذج برج الصور Apple MobileCLIP (https://arxiv.org/pdf/2311.17049، FastViT و ViT-B) وإضافة أوزانه (جزء من دعم OpenCLIP).
- تمت إضافة نموذج برج الصور CLIP وأوزان ViTamin (https://arxiv.org/abs/2404.02132) (جزء من دعم OpenCLIP).
- نمذجة برج الصور ResNet المُعدَّل من OpenAI CLIP ودعم الأوزان (عبر ByobNet). إعادة هيكلة AttentionPool2d.
14 مايو 2024
- دعم تحميل أوزان PaliGemma jax في نماذج SigLIP ViT باستخدام متوسط التجميع (average pooling).
- أضِف نماذج Hiera من Meta (https://github.com/facebookresearch/hiera).
- أضِف علم
normalize=للتحويلات، وأعد كائن torch.Tensor غير مُعايَر بنوع البيانات الأصلي (لـchug) - إصدار النسخة 1.0.3
11 مايو 2024
Searching for Better ViT Baselines (For the GPU Poor)الأوزان ومتغيرات vit التي تم إصدارها. استكشاف أشكال النماذج بين Tiny و Base.
| نموذج | top1 | top5 | param_count | img_size |
|---|---|---|---|---|
| vit_mediumd_patch16_reg4_gap_256.sbb_in12k_ft_in1k | 86.202 | 97.874 | 64.11 | 256 |
| vit_betwixt_patch16_reg4_gap_256.sbb_in12k_ft_in1k | 85.418 | 97.48 | 60.4 | 256 |
| vit_mediumd_patch16_rope_reg1_gap_256.sbb_in1k | 84.322 | 96.812 | 63.95 | 256 |
| vit_betwixt_patch16_rope_reg4_gap_256.sbb_in1k | 83.906 | 96.684 | 60.23 | 256 |
| vit_base_patch16_rope_reg1_gap_256.sbb_in1k | 83.866 | 96.67 | 86.43 | 256 |
| vit_medium_patch16_rope_reg1_gap_256.sbb_in1k | 83.81 | 96.824 | 38.74 | 256 |
| vit_betwixt_patch16_reg4_gap_256.sbb_in1k | 83.706 | 96.616 | 60.4 | 256 |
| vit_betwixt_patch16_reg1_gap_256.sbb_in1k | 83.628 | 96.544 | 60.4 | 256 |
| vit_medium_patch16_reg4_gap_256.sbb_in1k | 83.47 | 96.622 | 38.88 | 256 |
| vit_medium_patch16_reg1_gap_256.sbb_in1k | 83.462 | 96.548 | 38.88 | 256 |
| vit_little_patch16_reg4_gap_256.sbb_in1k | 82.514 | 96.262 | 22.52 | 256 |
| vit_wee_patch16_reg1_gap_256.sbb_in1k | 80.256 | 95.360 | 13.42 | 256 |
| vit_pwee_patch16_reg1_gap_256.sbb_in1k | 80.072 | 95.136 | 15.25 | 256 |
| vit_mediumd_patch16_reg4_gap_256.sbb_in12k | N/A | N/A | 64.11 | 256 |
| vit_betwixt_patch16_reg4_gap_256.sbb_in12k | N/A | N/A | 60.4 | 256 |
- AttentionExtract helper added to extract attention maps from
timmmodels. See example in https://github.com/huggingface/pytorch-image-models/discussions/1232#discussioncomment-9320949 - تم تحسين واجهة
forward_intermediates()وإضافتها إلى المزيد من النماذج، بما في ذلك بعض شبكات التلافيف (ConvNets) التي لديها طرق استخراج أخرى. - 1017 من 1047 معمارية نماذج تدعم استخراج الميزات عبر
features_only=True. يمكن دعم المعماريات الـ 34 المتبقية، لكن بناءً على أولوية الطلبات. - إزالة الدوال المُعلَّمة بـ torch.jit.script بما في ذلك تنشيطات JIT القديمة. تعارض مع dynamo، كما أن dynamo يؤدي أداءً أفضل بكثير عند استخدامه.
11 أبريل 2024
- مع الاستعداد لإصدار 1.0 الذي طال انتظاره، كانت الأمور مستقرة منذ فترة.
- ميزة مهمة كانت مفقودة لفترة من الوقت، وهي دعم
features_only=Trueلنماذج ViT التي تتميز بحالات مخفية مسطحة أو بتخطيطات وحدات غير قياسية (حتى الآن تغطي'vit_*', 'twins_*', 'deit*', 'beit*', 'mvitv2*', 'eva*', 'samvit_*', 'flexivit*') - تم تحقيق دعم الميزة أعلاه من خلال واجهة برمجة تطبيقات جديدة
forward_intermediates()يمكن استخدامها مع وحدة تغليف الميزة أو بشكل مباشر.
model = timm.create_model('vit_base_patch16_224')
final_feat, intermediates = model.forward_intermediates(input)
output = model.forward_head(final_feat) # pooling + classifier head
print(final_feat.shape)
torch.Size([2, 197, 768])
for f in intermediates:
print(f.shape)
torch.Size([2, 768, 14, 14])
torch.Size([2, 768, 14, 14])
torch.Size([2, 768, 14, 14])
torch.Size([2, 768, 14, 14])
torch.Size([2, 768, 14, 14])
torch.Size([2, 768, 14, 14])
torch.Size([2, 768, 14, 14])
torch.Size([2, 768, 14, 14])
torch.Size([2, 768, 14, 14])
torch.Size([2, 768, 14, 14])
torch.Size([2, 768, 14, 14])
torch.Size([2, 768, 14, 14])
print(output.shape)
torch.Size([2, 1000])model = timm.create_model('eva02_base_patch16_clip_224', pretrained=True, img_size=512, features_only=True, out_indices=(-3, -2,))
output = model(torch.randn(2, 3, 512, 512))
for o in output:
print(o.shape)
torch.Size([2, 768, 32, 32])
torch.Size([2, 768, 32, 32])- تمت إضافة أوزان برج الرؤية الخاص بـ TinyCLIP، شكرًا Thien Tran
19 فبراير 2024
- تمت إضافة نماذج Next-ViT. مُعدّلة من https://github.com/bytedance/Next-ViT
- تمت إضافة نماذج HGNet وPP-HGNetV2. مُعدّلة من https://github.com/PaddlePaddle/PaddleClas بواسطة SeeFun
- تمت إزالة setup.py والانتقال إلى بناء يعتمد على pyproject.toml مدعوم بواسطة PDM
- إضافة تنفيذ محدّث لنموذج EMA باستخدام _for_each لتقليل الحمل
- دعم معاملات الأجهزة في سكربت التدريب للأجهزة غير GPU
- إصلاحات أخرى متنوعة وإضافات صغيرة
- تم رفع الحد الأدنى لإصدار Python المدعوم إلى 3.8
- الإصدار 0.9.16
8 يناير 2024
إعادة هيكلة مجموعات البيانات والتحويلات
- دعم مجموعات البيانات القابلة للتكرار (التدفق) في HuggingFace (
--dataset hfids:org/dataset) - تعديلات على غلاف Webdataset لتحسين جلب معلومات التقسيمات، مع إمكانية الجلب التلقائي للتقسيمات من Webdataset المدعومة على HF hub
- تم اختبار تدفّق
datasetsوغلّف webdataset من مستودع HF باستخدام أحدث عمليات رفعtimmلـ ImageNet إلى https://huggingface.co/timm - اجعل مفاتيح أعمدة/حقول الإدخال والاستهداف متسقة عبر مجموعات البيانات وقدمها عبر args
- دعم كامل للصور أحادية اللون عند استخدام
--input-size 1 224 224أو--in-chans 1، حيث يُضبط تحويل الصور في مجموعة البيانات بشكل مناسب - حسّن عدة تحويلات بديلة للمحاصيل وإعادة الحجم (ResizeKeepRatio، RandomCropOrPad، إلخ) للاستخدام في مشروع PixParse للذكاء الاصطناعي المستند إلى المستندات
- أضِف خيار احتمال تذبذب الألوان بنمط SimCLR إلى جانب خيارات تحويل الصورة إلى رمادية وضبابية غاوسية في عمليات المعالجة والمتغيرات
- السماح بالتدريب دون مجموعة تحقق (
--val-split '') في سكربت التدريب - أضف
--bce-sum(المجموع عبر بُعد الفئة) و--bce-pos-weight(وزن الإيجابي) كحجج للتدريب، فهي تعديلات شائعة على دالة فقد BCE كنت أكتبها يدويًا بشكل متكرر
23 نوفمبر 2023
- تمت إضافة نماذج EfficientViT-Large، شكرًا SeeFun
- إصلاح توافق Python 3.7، سيتم التوقف عن دعمه قريبًا
- إصلاحات أخرى متنوعة
- الإصدار 0.9.12
20 نوفمبر 2023
- تمت إضافة مرونة كبيرة لنماذج timm المستندة إلى Hugging Face Hub عبر
model_argsإدخال الإعدادات.model_argsسيتم تمريرها كـ kwargs إلى النماذج عند الإنشاء. راجع المثال في https://huggingface.co/gaunernst/vit_base_patch16_1024_128.audiomae_as2m_ft_as20k/blob/main/config.json الاستخدام: https://github.com/huggingface/pytorch-image-models/discussions/2035 - تم تحديث ملفات csv الخاصة بمجموعة تقييم واختبار imagenet بأحدث النماذج
- تنظيف الأنواع والتوثيق في
vision_transformer.pyبواسطة Laureηt - إصدار 0.9.11
3 نوفمبر 2023
- تمت إضافة أوزان DFN (Data Filtering Networks) وMetaCLIP ViT
- تمت إضافة أوزان نموذج ViT الخاص بـ DINOv2 مع 'register' (https://huggingface.co/papers/2309.16588، https://huggingface.co/papers/2304.07193)
- أضِف متغيرات
quickgeluمن ViT لأوزان OpenAI وDFN وMetaCLIP التي تستخدمها (أقل كفاءة) - تمت إضافة تحسينات لنوع البيانات إلى ResNet و MobileNet-v3 بفضل Aryan
- مدرب بشكل دقيق على ImageNet-12k (من LAION-2B CLIP)
convnext_xxlarge - إصدار 0.9.9
20 أكتوبر 2023
- SigLIP أوزان برج الصور المدعومة في
vision_transformer.py.- إمكانية كبيرة للضبط الدقيق والاستخدام في الميزات اللاحقة.
- دعم تجريبي لـ register في نماذج vit وفقاً لـ Vision Transformers Need Registers
- تم تحديث RepViT مع إصدار أوزان جديد. شكرًا wangao
- إضافة دعم لتغيير حجم الباتش (عند تحميل الأوزان المُسبقة التدريب) إلى نماذج Swin
- إصدار 0.9.8 قيد الانتظار
1 سبتمبر 2023
- تمت إضافة TinyViT بواسطة SeeFun
- إصلاح EfficientViT (MIT) لاستخدام torch.autocast حتى يعمل حتى إصدار PT 1.10
- إصدار 0.9.7
28 أغسطس 2023
- إضافة دعم لحجم الصورة الديناميكي إلى النماذج في
vision_transformer.py,vision_transformer_hybrid.py,deit.py, وeva.pyدون كسر التوافق الرجعي. أضف dynamic_img_size=True إلى المعاملات عند إنشاء النموذج للسماح بتغيير حجم الشبكة (استيفاء تضمين الموضع المطلق و/أو ROPE في كل تمريرة أمامية). أضف dynamic_img_pad=True للسماح بأحجام صور غير قابلة للقسمة على حجم الباتش (تعبئة الزاوية السفلية اليمنى حتى حجم الباتش في كل تمريرة أمامية). تمكين أي من الوضعين الديناميكيين سيكسر تتبع FX ما لم يُضف وحدة PatchEmbed كعقدة ورقية. الطريقة الحالية لتغيير حجم تضمين الموضع عن طريق تمرير img_size مختلفة (استيفاء أوزان التضمين المُدرَّب مسبقًا مرة واحدة) عند الإنشاء لا تزال تعمل. الطريقة الحالية لتغيير patch_size (تغيير حجم أوزان patch_embed المُدرَّبة مسبقًا مرة واحدة) عند الإنشاء لا تزال تعمل. مثال على أمر التحقق python validate.py --data-dir /imagenet --model vit_base_patch16_224 --amp --amp-dtype bfloat16 --img-size 255 --crop-pct 1.0 --model-kwargs dynamic_img_size=True dyamic_img_pad=True- أضف
dynamic_img_size=Trueإلى arguments عند إنشاء النموذج للسماح بتغيير حجم الشبكة (استيفاء abs و/أو ROPE pos embed في كل تمريرة أمامية). - أضف
dynamic_img_pad=Trueللسماح بأحجام صور غير قابلة للقسمة على حجم الباتش (يتم ملء الزاوية السفلية اليمنى حتى حجم الباتش في كل تمريرة أمامية). - تفعيل أي من وضعي الديناميكية سيكسر تتبع FX ما لم يُضف وحدة PatchEmbed كعقدة نهائية.
- لا يزال الأسلوب الحالي لتغيير حجم تضمين الموقع عبر تمرير قيم مختلفة لـ
img_size(باستيفاء أوزان التضمين المُدرَّبة مسبقًا مرة واحدة) عند الإنشاء يعمل بشكل صحيح. - تعمل الطريقة القائمة لتغيير
patch_size(إعادة تعيين أوزان patch_embed المُدرَّبة مسبقًا مرة واحدة) عند الإنشاء. - مثال لأمر التحقق
python validate.py --data-dir /imagenet --model vit_base_patch16_224 --amp --amp-dtype bfloat16 --img-size 255 --crop-pct 1.0 --model-kwargs dynamic_img_size=True dyamic_img_pad=True
- أضف
25 أغسطس 2023
- العديد من النماذج الجديدة منذ الإصدار الأخير
- FastViT - https://arxiv.org/abs/2303.14189
- MobileOne - https://arxiv.org/abs/2206.04040
- InceptionNeXt - https://arxiv.org/abs/2303.16900
- RepGhostNet - https://arxiv.org/abs/2211.06088 (شكرًا لـ https://github.com/ChengpengChen)
- GhostNetV2 - https://arxiv.org/abs/2211.12905 (شكرًا لـ https://github.com/yehuitang)
- EfficientViT (MSRA) - https://arxiv.org/abs/2305.07027 (شكرًا لـ https://github.com/seefun)
- EfficientViT (MIT) - https://arxiv.org/abs/2205.14756 (شكرًا لـ https://github.com/seefun)
- أضف
--reparamالحجة إلىbenchmark.py,onnx_export.py, وvalidate.pyلتفعيل إعادة التمثيل/دمج الطبقات للنماذج التي تحتوي على أي منreparameterize(),switch_to_deploy()أو، بما في ذلك FastViT وMobileOne وRepGhostNet وEfficientViT (MSRA) وRepViT وRepVGG وLeViTfuse()- تشمل FastViT وMobileOne وRepGhostNet وEfficientViT (MSRA) وRepViT وRepVGG وLeViT
- التحضير لإصدار 0.9.6 «العودة إلى المدرسة»
11 أغسطس 2023
- تدعم نماذج Swin وMaxViT وCoAtNet وBEiT تغيير حجم الصورة/النافذة عند الإنشاء مع تكيّف الأوزان المُسبقة التدريب
- مثال على أمر التحقق لاختباره مع تغيير الحجم غير المربع
python validate.py --data-dir /imagenet --model swin_base_patch4_window7_224.ms_in22k_ft_in1k --amp --amp-dtype bfloat16 --input-size 3 256 320 --model-kwargs window_size=8,10 img_size=256,320
3 أغسطس 2023
- إضافة أوزان GluonCV لـ HRNet w18_small و w18_small_v2. تم التحويل بواسطة SeeFun
- إصلاح تراجع تسمية نموذج
selecsls* - يعمل تضمين الباتش والموضع لـ ViT/EVA مع أوزان bfloat16/float16 عند التحميل (أو التفعيلات عند تغيير الحجم الفوري)
- التحضير لإصدار v0.9.5
27 يوليو 2023
- تمت إضافة أوزان
seresnextaa201d_32x8d.sw_in12k_ft_in1k_384المدرّبة بواسطة timm (والتدريب المسبق.sw_in12k) بدقة top-1 تبلغ 87.3% على ImageNet-1k، وهو أفضل نموذج من عائلة ResNet على ImageNet على حد علمي. - نموذج RepViT وأوزانه (https://arxiv.org/abs/2307.09283) أُضيف بواسطة wangao
- أوزان ميزات I-JEPA ViT (بدون مصنّف) أُضيفت بواسطة SeeFun
- أوزان ميزة SAM-ViT (تجزئة أي شيء) (بدون مصنف) أُضيفت بواسطة SeeFun
- إضافة دعم لطرق استخراج الميزات البديلة والفهارس السالبة إلى EfficientNet
- إضافة مُحسِّن NAdamW
- إصلاحات متنوعة
11 مايو 2023
timmالإصدار 0.9، الانتقال من إصدارات 0.8.xdev
10 مايو 2023
- أصبح تنزيل Hugging Face Hub هو الافتراضي، 1132 نموذجًا على https://huggingface.co/timm، 1163 وزنًا في
timm - تمت إضافة أوزان العمود الفقري للميزات vit الخاصة بـ DINOv2 بفضل Leng Yue
- تمت إضافة أوزان العمود الفقري للميزات لـ FB MAE vit
- تمت إضافة أوزان العمود الفقري OpenCLIP DataComp-XL L/14 feat
- MetaFormer (poolformer-v2, caformer, convformer، poolformer المحدّث (v1)) مع أوزان أُضيفت بواسطة Fredo Guan
- دالة تجريبية
get_intermediate_layersعلى نماذج vit/deit لاستخراج الحالات المخفية (مستوحاة من تطبيق DINO). هذا العمل قيد التنفيذ وقد يتغير بشكل كبير… نرحب بالملاحظات. - تُطلق عملية إنشاء النموذج خطأً إذا كان
pretrained=Trueولم تكن هناك أوزان موجودة (بدلاً من المتابعة باستخدام التهيئة العشوائية) - إصلاح مشكلة تراجع الأداء في الأوزان المستمدة من TF لنماذج inception / nasnet التي تحتوي على 1001 فئة في المصنّفات الأصلية
- تمت إضافة مُحسّنات bitsandbytes (https://github.com/TimDettmers/bitsandbytes) إلى المصنع، استخدم البادئة
bnb، مثلbnbadam8bit - تنظيف وإصلاحات متنوعة
- الاختبارات النهائية قبل الانتقال إلى الإصدار 0.9 وإخراج
timmمن حالة ما قبل الإصدار
27 أبريل 2023
- 97% من نماذج
timmالمرفوعة إلى HF Hub، وكثير منها محدّث لدعم تكوينات ما قبل التدريب متعددة الأوزان - تنظيف وإعادة هيكلة بسيطة لدفعة أخرى من النماذج بعد إضافة الأوزان المتعددة. دعم إضافي لـ fused_attn (F.sdpa) و features_only، وإصلاحات لـ torchscript.
21 أبريل 2023
- تمت إضافة دعم تراكم التدرجات إلى سكربت التدريب واختباره (
--grad-accum-steps)، شكرًا Taeksang Kim - أوزان إضافية على HF Hub (cspnet, cait, volo, xcit, tresnet, hardcorenas, densenet, dpn, vovnet, xception_aligned)
- تمت إضافة
--head-init-scaleو--head-init-biasإلى train.py لتغيير مقياس رأس التصنيف وتعيين انحياز ثابت للضبط الدقيق - إزالة جميع استخدامات
inplace_abn، واستبدال الاستخدام في tresnet بـ BatchNorm القياسية (مع تعديل الأوزان وفقاً لذلك).
12 أبريل 2023
- إضافة سكربت تصدير ONNX، وسكربت التحقق، ومساعدات كنت أحتفظ بها منذ فترة طويلة. ضبط تعبئة 'same' للحصول على تصدير أفضل مع ONNX وpytorch الحديثة.
- إعادة هيكلة معاملات dropout لنماذج vit والنماذج المشابهة لها، وفصل drop_rate إلى
drop_rate(dropout للمصنّف)،proj_drop_rate(تحويلات mlp / out في الكتلة)،pos_drop_rate(dropout لتضمين الموقع)،attn_drop_rate(dropout للانتباه). بالإضافة إلى ذلك، أضف patch dropout (FLIP) إلى نماذج vit وeva. - دعم F.scaled_dot_product_attention المدمج لعدد أكبر من نماذج vit، وإضافة متغير بيئة (TIMM_FUSED_ATTN) للتحكم، وواجهة إعدادات لتفعيل/تعطيل
- أضف هياكل EVA-CLIP مع أوزان برج الصور، وصولاً إلى نموذج «الضخم» الذي يحتوي على 4 مليارات من المعاملات، بالإضافة إلى وضع OpenAI ViT بحجم 336x336 الذي كان مفقوداً.
5 أبريل 2023
- جميع نماذج ResNet المُرسَلة إلى Hugging Face Hub مع دعم الأوزان المتعددة
- جميع الأوزان المدربة سابقًا لـ
timmأُضيفت مع وسوم مبنية على الوصفات للتمييز - جميع نماذج ResNet تردّ بالمثل A1/A2/A3 (البذرة 0) وأوزان مثال R50 B/C1/C2/D متاحة
- إضافة أوزان وصفة torchvision v2 إلى الأصول الأصلية لـ torchvision
- انظر إلى جدول المقارنة في https://huggingface.co/timm/seresnextaa101d_32x8d.sw_in12k_ft_in1k_288#model-comparison
- جميع الأوزان المدربة سابقًا لـ
- تتوفر الآن عمليات ضبط دقيقة جديدة على ImageNet-12k + ImageNet-1k لعدد قليل من نماذج ResNet المضادة للتشويش
resnetaa50d.sw_in12k_ft_in1k- 81.7 @ 224, 82.6 @ 288resnetaa101d.sw_in12k_ft_in1k- 83.5 @ 224, 84.1 @ 288seresnextaa101d_32x8d.sw_in12k_ft_in1k- 86.0 @ 224, 86.5 @ 288seresnextaa101d_32x8d.sw_in12k_ft_in1k_288- 86.5 @ 288, 86.7 @ 320
31 مارس 2023
- إضافة أول نموذج ConvNext-XXLarge CLIP مُعاد تدريبه على IN-1k، بالإضافة إلى إعادة التدريب الوسيطة على IN-12k لنماذج convnext-base/large CLIP.
| نموذج | top1 | top5 | img_size | param_count | gmacs | macts |
|---|---|---|---|---|---|---|
| convnext_xxlarge.clip_laion2b_soup_ft_in1k | 88.612 | 98.704 | 256 | 846.47 | 198.09 | 124.45 |
| convnext_large_mlp.clip_laion2b_soup_ft_in12k_in1k_384 | 88.312 | 98.578 | 384 | 200.13 | 101.11 | 126.74 |
| convnext_large_mlp.clip_laion2b_soup_ft_in12k_in1k_320 | 87.968 | 98.47 | 320 | 200.13 | 70.21 | 88.02 |
| convnext_base.clip_laion2b_augreg_ft_in12k_in1k_384 | 87.138 | 98.212 | 384 | 88.59 | 45.21 | 84.49 |
| convnext_base.clip_laion2b_augreg_ft_in12k_in1k | 86.344 | 97.97 | 256 | 88.59 | 20.09 | 37.55 |
- إضافة أوزان EVA-02 MIM المُسبقة التدريب والمُحسّنة، ورفعها إلى HF hub وتحديث بطاقات النماذج لجميع نماذج EVA. أول نموذج يتجاوز 90% في top-1 (99% في top-5)! اطّلع على الكود والأوزان الأصلية في https://github.com/baaivision/EVA لمزيد من التفاصيل حول عملهم الذي يمزج بين MIM وCLIP مع العديد من التعديلات على النماذج، ومجموعات البيانات، وصفات التدريب.
| نموذج | top1 | top5 | param_count | img_size |
|---|---|---|---|---|
| eva02_large_patch14_448.mim_m38m_ft_in22k_in1k | 90.054 | 99.042 | 305.08 | 448 |
| eva02_large_patch14_448.mim_in22k_ft_in22k_in1k | 89.946 | 99.01 | 305.08 | 448 |
| eva_giant_patch14_560.m30m_ft_in22k_in1k | 89.792 | 98.992 | 1014.45 | 560 |
| eva02_large_patch14_448.mim_in22k_ft_in1k | 89.626 | 98.954 | 305.08 | 448 |
| eva02_large_patch14_448.mim_m38m_ft_in1k | 89.57 | 98.918 | 305.08 | 448 |
| eva_giant_patch14_336.m30m_ft_in22k_in1k | 89.56 | 98.956 | 1013.01 | 336 |
| eva_giant_patch14_336.clip_ft_in1k | 89.466 | 98.82 | 1013.01 | 336 |
| eva_large_patch14_336.in22k_ft_in22k_in1k | 89.214 | 98.854 | 304.53 | 336 |
| eva_giant_patch14_224.clip_ft_in1k | 88.882 | 98.678 | 1012.56 | 224 |
| eva02_base_patch14_448.mim_in22k_ft_in22k_in1k | 88.692 | 98.722 | 87.12 | 448 |
| eva_large_patch14_336.in22k_ft_in1k | 88.652 | 98.722 | 304.53 | 336 |
| eva_large_patch14_196.in22k_ft_in22k_in1k | 88.592 | 98.656 | 304.14 | 196 |
| eva02_base_patch14_448.mim_in22k_ft_in1k | 88.23 | 98.564 | 87.12 | 448 |
| eva_large_patch14_196.in22k_ft_in1k | 87.934 | 98.504 | 304.14 | 196 |
| eva02_small_patch14_336.mim_in22k_ft_in1k | 85.74 | 97.614 | 22.13 | 336 |
| eva02_tiny_patch14_336.mim_in22k_ft_in1k | 80.658 | 95.524 | 5.76 | 336 |
- أوزان متعددة ومركز HF للنماذج القائمة على DeiT وMLP-Mixer
22 مارس 2023
- تم دفع المزيد من الأوزان إلى HF hub مع دعم الأوزان المتعددة، بما في ذلك:
regnet.py،rexnet.py،byobnet.py،resnetv2.py،swin_transformer.py،swin_transformer_v2.py،swin_transformer_v2_cr.py - تدعم نماذج Swin Transformer استخراج الميزات (خرائط ميزات بصيغة NCHW لـ
swinv2_cr_*، وبصيغة NHWC لجميع النماذج الأخرى) ومخرجات التضمين المكاني. - أُضيفت نماذج وأوزان FocalNet (من https://github.com/microsoft/FocalNet) مع إعادة هيكلة كبيرة، واستخراج الميزات، وعدم وجود قيود على الدقة أو الحجم الثابت
- زادت أوزان RegNet مع أوزان HF hub push وSWAG وSEER وأوزان torchvision v2. يُعد SEER ضعيفًا نسبيًا من حيث الأداء مقارنةً بحجم النموذج، لكنه قد يكون مفيدًا.
- نماذج ImageNet-12k مُسبقة التدريب و ImageNet-1k المُحسّنة
timmأوزان:rexnetr_200.sw_in12k_ft_in1k- 82.6 @ 224, 83.2 @ 288rexnetr_300.sw_in12k_ft_in1k- 84.0 @ 224, 84.5 @ 288regnety_120.sw_in12k_ft_in1k- 85.0 @ 224, 85.4 @ 288regnety_160.lion_in12k_ft_in1k- 85.6 @ 224, 86.0 @ 288regnety_160.sw_in12k_ft_in1k- 85.6 @ 224، 86.0 @ 288 (مقارنةً بـ SWAG PT + 1k FT، هذا هو نفسه لكن بدقة أقل بكثير، ويتفوق بشكل كبير على SEER FT)
- تمت إضافة ميزة إيقاف استخدام أسماء النماذج وإعادة تعيينها (وهي خطوة محورية لإخراج الإصدار 0.8.x من مرحلة ما قبل الإطلاق). جارٍ إضافة خرائط التحويل…
- إصلاحات وتحسينات طفيفة للأخطاء.
26 فبراير 2023
- إضافة أوزان برج الصور المُسبقة التدريب لنموذج ConvNeXt-XXLarge CLIP من أجل الضبط الدقيق واستخراج الميزات (الضبط الدقيق قيد الإعداد) — راجع بطاقة النموذج
- تحديث قيمة
convnext_xxlargeالافتراضية لـ LayerNorm eps إلى 1e-5 (لأوزان CLIP، لتحسين الاستقرار) - 0.8.15dev0
20 فبراير 2023
- أضف أوزان برج الصور
convnext_large_mlp.clip_laion2b_ft_320وconvnext_large_mlp.clip_laion2b_ft_soup_320بحجم 320x320 لاستخراج الميزات وضبط الدقة - 0.8.13dev0 إصدار pypi لأحدث التغييرات مع الانتقال إلى منظمة huggingface
16 فبراير 2023
- تمت إضافة دعم نقاط التفتيش
safetensor - أضِف أفكارًا من «Scaling Vision Transformers to 22 B. Params» (https://arxiv.org/abs/2302.05442) — qk norm، RmsNorm، كتلة متوازية
- إضافة دعم لـ F.scaleddot_product_attention (PyTorch 2.0 فقط) إلى `vit
,vit_relpos,coatnet/maxxvit` (للبداية) - تمت إضافة مُحسِّن Lion (مع خيار متعدد المتجهات) (https://arxiv.org/abs/2302.06675)
- يعمل التحقق من التدرجات مع
features_only=True
7 فبراير 2023
- تمت إضافة أرقام جديدة لمعايير الاستدلال في مجلد results.
- إضافة أوزان تدريب convnext LAION CLIP والمجموعة الأولية من عمليات الضبط الدقيق على in1k
convnext_base.clip_laion2b_augreg_ft_in1k- 86.2% @ 256x256convnext_base.clip_laiona_augreg_ft_in1k_384- 86.5% @ 384x384convnext_large_mlp.clip_laion2b_augreg_ft_in1k- 87.3% @ 256x256convnext_large_mlp.clip_laion2b_augreg_ft_in1k_384- 87.9% @ 384x384
- إضافة نماذج DaViT. يدعم
features_only=True. مُعدّلة من https://github.com/dingmyu/davit بواسطة Fredo. - استخدم NormMlpClassifierHead مشتركًا عبر MaxViT وConvNeXt وDaViT
- إضافة نموذج EfficientFormer-V2، وتحديث EfficientFormer، وإعادة هيكلة LeViT (المعماريات ذات الصلة الوثيقة). الأوزان متاحة على HF hub.
- بنية EfficientFormer-V2 الجديدة، إعادة هيكلة كبيرة من الأصل في (https://github.com/snap-research/EfficientFormer). تدعم
features_only=True. - تحديثات طفيفة على EfficientFormer.
- إعادة هيكلة نماذج LeViT إلى مراحل، وإضافة دعم
features_only=Trueإلى متغيراتconvالجديدة، مع ضرورة إعادة تعيين الأوزان.
- بنية EfficientFormer-V2 الجديدة، إعادة هيكلة كبيرة من الأصل في (https://github.com/snap-research/EfficientFormer). تدعم
- نقل بيانات ImageNet الوصفية (مجموعات الكلمات، الفهارس) من
/resultsإلىtimm/data/_info. - إضافة فئات ImageNetInfo / DatasetInfo لتوفير تسميات لتخطيطات مختلفة لتصنيفات ImageNet في
timm- قم بتحديث
inference.pyلاستخدامه، جرّب:python inference.py --data-dir /folder/to/images --model convnext_small.in12k --label-type detail --topk 5
- قم بتحديث
- جاهز لإصدار 0.8.10 التجريبي على pypi (الاختبار النهائي).
20 يناير 2023
أضف تدريبين دقيقين لنموذجي convnext 12k -> 1k بدقة 384x384
convnext_tiny.in12k_ft_in1k_384- 85.1 @ 384convnext_small.in12k_ft_in1k_384- 86.2 @ 384
دفع جميع أوزان MaxxViT إلى HF hub، وإضافة عمليات ضبط دقيقة جديدة من ImageNet-12k إلى 1k لنماذج
rwالأساسية MaxViT وCoAtNet 1/2
| نموذج | top1 | top5 | عينة / ثانية | المعاملات (مليون) | GMAC | Act (M) |
|---|---|---|---|---|---|---|
| maxvit_xlarge_tf_512.in21k_ft_in1k | 88.53 | 98.64 | 21.76 | 475.77 | 534.14 | 1413.22 |
| maxvit_xlarge_tf_384.in21k_ft_in1k | 88.32 | 98.54 | 42.53 | 475.32 | 292.78 | 668.76 |
| maxvit_base_tf_512.in21k_ft_in1k | 88.20 | 98.53 | 50.87 | 119.88 | 138.02 | 703.99 |
| maxvit_large_tf_512.in21k_ft_in1k | 88.04 | 98.40 | 36.42 | 212.33 | 244.75 | 942.15 |
| maxvit_large_tf_384.in21k_ft_in1k | 87.98 | 98.56 | 71.75 | 212.03 | 132.55 | 445.84 |
| maxvit_base_tf_384.in21k_ft_in1k | 87.92 | 98.54 | 104.71 | 119.65 | 73.80 | 332.90 |
| maxvit_rmlp_base_rw_384.sw_in12k_ft_in1k | 87.81 | 98.37 | 106.55 | 116.14 | 70.97 | 318.95 |
| maxxvitv2_rmlp_base_rw_384.sw_in12k_ft_in1k | 87.47 | 98.37 | 149.49 | 116.09 | 72.98 | 213.74 |
| coatnet_rmlp_2_rw_384.sw_in12k_ft_in1k | 87.39 | 98.31 | 160.80 | 73.88 | 47.69 | 209.43 |
| maxvit_rmlp_base_rw_224.sw_in12k_ft_in1k | 86.89 | 98.02 | 375.86 | 116.14 | 23.15 | 92.64 |
| maxxvitv2_rmlp_base_rw_224.sw_in12k_ft_in1k | 86.64 | 98.02 | 501.03 | 116.09 | 24.20 | 62.77 |
| maxvit_base_tf_512.in1k | 86.60 | 97.92 | 50.75 | 119.88 | 138.02 | 703.99 |
| coatnet_2_rw_224.sw_in12k_ft_in1k | 86.57 | 97.89 | 631.88 | 73.87 | 15.09 | 49.22 |
| maxvit_large_tf_512.in1k | 86.52 | 97.88 | 36.04 | 212.33 | 244.75 | 942.15 |
| coatnet_rmlp_2_rw_224.sw_in12k_ft_in1k | 86.49 | 97.90 | 620.58 | 73.88 | 15.18 | 54.78 |
| maxvit_base_tf_384.in1k | 86.29 | 97.80 | 101.09 | 119.65 | 73.80 | 332.90 |
| maxvit_large_tf_384.in1k | 86.23 | 97.69 | 70.56 | 212.03 | 132.55 | 445.84 |
| maxvit_small_tf_512.in1k | 86.10 | 97.76 | 88.63 | 69.13 | 67.26 | 383.77 |
| maxvit_tiny_tf_512.in1k | 85.67 | 97.58 | 144.25 | 31.05 | 33.49 | 257.59 |
| maxvit_small_tf_384.in1k | 85.54 | 97.46 | 188.35 | 69.02 | 35.87 | 183.65 |
| maxvit_tiny_tf_384.in1k | 85.11 | 97.38 | 293.46 | 30.98 | 17.53 | 123.42 |
| maxvit_large_tf_224.in1k | 84.93 | 96.97 | 247.71 | 211.79 | 43.68 | 127.35 |
| coatnet_rmlp_1_rw2_224.sw_in12k_ft_in1k | 84.90 | 96.96 | 1025.45 | 41.72 | 8.11 | 40.13 |
| maxvit_base_tf_224.in1k | 84.85 | 96.99 | 358.25 | 119.47 | 24.04 | 95.01 |
| maxxvit_rmlp_small_rw_256.sw_in1k | 84.63 | 97.06 | 575.53 | 66.01 | 14.67 | 58.38 |
| coatnet_rmlp_2_rw_224.sw_in1k | 84.61 | 96.74 | 625.81 | 73.88 | 15.18 | 54.78 |
| maxvit_rmlp_small_rw_224.sw_in1k | 84.49 | 96.76 | 693.82 | 64.90 | 10.75 | 49.30 |
| maxvit_small_tf_224.in1k | 84.43 | 96.83 | 647.96 | 68.93 | 11.66 | 53.17 |
| maxvit_rmlp_tiny_rw_256.sw_in1k | 84.23 | 96.78 | 807.21 | 29.15 | 6.77 | 46.92 |
| coatnet_1_rw_224.sw_in1k | 83.62 | 96.38 | 989.59 | 41.72 | 8.04 | 34.60 |
| maxvit_tiny_rw_224.sw_in1k | 83.50 | 96.50 | 1100.53 | 29.06 | 5.11 | 33.11 |
| maxvit_tiny_tf_224.in1k | 83.41 | 96.59 | 1004.94 | 30.92 | 5.60 | 35.78 |
| coatnet_rmlp_1_rw_224.sw_in1k | 83.36 | 96.45 | 1093.03 | 41.69 | 7.85 | 35.47 |
| maxxvitv2_nano_rw_256.sw_in1k | 83.11 | 96.33 | 1276.88 | 23.70 | 6.26 | 23.05 |
| maxxvit_rmlp_nano_rw_256.sw_in1k | 83.03 | 96.34 | 1341.24 | 16.78 | 4.37 | 26.05 |
| maxvit_rmlp_nano_rw_256.sw_in1k | 82.96 | 96.26 | 1283.24 | 15.50 | 4.47 | 31.92 |
| maxvit_nano_rw_256.sw_in1k | 82.93 | 96.23 | 1218.17 | 15.45 | 4.46 | 30.28 |
| coatnet_bn_0_rw_224.sw_in1k | 82.39 | 96.19 | 1600.14 | 27.44 | 4.67 | 22.04 |
| coatnet_0_rw_224.sw_in1k | 82.39 | 95.84 | 1831.21 | 27.44 | 4.43 | 18.73 |
| coatnet_rmlp_nano_rw_224.sw_in1k | 82.05 | 95.87 | 2109.09 | 15.15 | 2.62 | 20.34 |
| coatnext_nano_rw_224.sw_in1k | 81.95 | 95.92 | 2525.52 | 14.70 | 2.47 | 12.80 |
| coatnet_nano_rw_224.sw_in1k | 81.70 | 95.64 | 2344.52 | 15.14 | 2.41 | 15.41 |
| maxvit_rmlp_pico_rw_256.sw_in1k | 80.53 | 95.21 | 1594.71 | 7.52 | 1.85 | 24.86 |
11 يناير 2023
- تحديث سلسلة ConvNeXt ImageNet-12k pretrain بإضافة وزنَين مُعدَّين بدقة جديدَين (ووسوم pre FT
.in12k)convnext_nano.in12k_ft_in1k- 82.3 @ 224، 82.9 @ 288 (تم إصداره سابقًا)convnext_tiny.in12k_ft_in1k- 84.2 @ 224, 84.5 @ 288convnext_small.in12k_ft_in1k- 85.2 @ 224, 85.3 @ 288
6 يناير 2023
- أخيرًا، تمكنت من إضافة
--model-kwargsو--opt-kwargsإلى السكربتات لتمرير الحُجج النادرة مباشرةً إلى فئات النموذج من سطر الأوامرtrain.py --data-dir /imagenet --model resnet50 --amp --model-kwargs output_stride=16 act_layer=silutrain.py --data-dir /imagenet --model vit_base_patch16_clip_224 --img-size 240 --amp --model-kwargs img_size=240 patch_size=12
- تنظيف بعض النماذج الشائعة لدعم تمرير المعاملات بشكل أفضل / دمجها مع إعدادات النموذج، مع المزيد قادم.
5 يناير 2023
- تمت إضافة نماذج ConvNeXt-V2 وأوزانها إلى
convnext.py- الورقة: ConvNeXt V2: تصميم مشترك وتوسيع شبكات الالتفاف مع المشفرات الذاتية المقنّعة
- التطبيق المرجعي: https://github.com/facebookresearch/ConvNeXt-V2 (ملاحظة: الأوزان حاليًا مرخصة بموجب CC-BY-NC) @dataclass
23 ديسمبر 2022 🎄☃
- إضافة نماذج FlexiViT وأوزانها من https://github.com/google-research/big_vision (اطّلع على الورقة البحثية في https://arxiv.org/abs/2212.08013)
- ملاحظة: حاليًا، تغيير الحجم ثابت عند إنشاء النموذج، بينما أخذ عينات ديناميكي لحظي لحجم الباتش أثناء التدريب قيد التطوير.
- تم تحديث المزيد من النماذج إلى أوزان متعددة وأصبحت قابلة للتنزيل عبر HF hub الآن (convnext, efficientnet, mobilenet, vision_transformer*, beit)
- أكثر من وسم نموذج مُسبق التدريب وتعديلات، تم تغيير بعض أسماء النماذج (نعمل على ترجمات الإلغاء، فكّر في فرع DEV الرئيسي الآن، استخدم 0.6.x للاستخدام المستقر)
- نماذج تدريب مسبق إضافية من ImageNet-12k (مجموعة فرعية من 22k) تظهر:
efficientnet_b5.in12k_ft_in1k- 85.9 @ 448x448vit_medium_patch16_gap_384.in12k_ft_in1k- 85.5 @ 384x384vit_medium_patch16_gap_256.in12k_ft_in1k- 84.5 @ 256x256convnext_nano.in12k_ft_in1k- 82.9 @ 288x288
8 ديسمبر 2022
- أضِف ‘EVA l’ إلى
vision_transformer.py, تدريب مسبق بأسلوب MAE لـ ViT-L/14 باستخدام أهداف EVA-CLIP، مع تدريب دقيق على ImageNet-1k (مع استخدام ImageNet-22k كمرحلة وسيطة لبعض النماذج)
| نموذج | top1 | param_count | gmac | macts | hub |
|---|---|---|---|---|---|
| eva_large_patch14_336.in22k_ft_in22k_in1k | 89.2 | 304.5 | 191.1 | 270.2 | رابط |
| eva_large_patch14_336.in22k_ft_in1k | 88.7 | 304.5 | 191.1 | 270.2 | رابط |
| eva_large_patch14_196.in22k_ft_in22k_in1k | 88.6 | 304.1 | 61.6 | 63.5 | رابط |
| eva_large_patch14_196.in22k_ft_in1k | 87.9 | 304.1 | 61.6 | 63.5 | رابط |
6 ديسمبر 2022
- إضافة أوزان نموذج ViT-g/14 بأسلوب BEiT، وهو 'EVA g'، مع كلٍّ من التدريب المسبق MIM والتدريب المسبق CLIP إلى
beit.py.
| نموذج | top1 | param_count | gmac | macts | hub |
|---|---|---|---|---|---|
| eva_giant_patch14_560.m30m_ft_in22k_in1k | 89.8 | 1014.4 | 1906.8 | 2577.2 | رابط |
| eva_giant_patch14_336.m30m_ft_in22k_in1k | 89.6 | 1013 | 620.6 | 550.7 | رابط |
| eva_giant_patch14_336.clip_ft_in1k | 89.4 | 1013 | 620.6 | 550.7 | رابط |
| eva_giant_patch14_224.clip_ft_in1k | 89.1 | 1012.6 | 267.2 | 192.6 | رابط |
5 ديسمبر 2022
- إصدار ما قبل الإطلاق (
0.8.0dev0) لدعم الأوزان المتعددة (model_arch.pretrained_tag). قم بالتثبيت باستخدامpip install --pre timm- vision_transformer وmaxvit وconvnext هي أول ثلاث نماذج تدعم
- تتغير أسماء النماذج مع هذا (سيتم دمج الدالة السابقة _21k وما شابه)، ما زلنا نعمل على معالجة إجراءات الإيقاف
- من المحتمل وجود أخطاء، لكنني بحاجة إلى ملاحظات، لذا يرجى تجربتها
- إذا كان الاستقرار مطلوبًا، يُرجى استخدام إصدارات 0.6.x من pypi أو استنساخ الكود من فرع 0.6.x
- تمت إضافة دعم لـ PyTorch 2.0 compile في train/validate/inference/benchmark، استخدم الحجة
--torchcompile - يسمح سكربت الاستدلال بمزيد من التحكم في المخرجات، حيث يمكنك اختيار k لمؤشر الفئة الأعلى واحتمالها، مع إمكانية إخراج البيانات بصيغ json أو csv أو parquet
- أضف مجموعة كاملة من أوزان برج الصور المُحسَّنة لنموذج CLIP من كلا نموذجي LAION-2B وOpenAI CLIP الأصلي
| نموذج | top1 | param_count | gmac | macts | hub |
|---|---|---|---|---|---|
| vit_huge_patch14_clip_336.laion2b_ft_in12k_in1k | 88.6 | 632.5 | 391 | 407.5 | رابط |
| vit_large_patch14_clip_336.openai_ft_in12k_in1k | 88.3 | 304.5 | 191.1 | 270.2 | رابط |
| vit_huge_patch14_clip_224.laion2b_ft_in12k_in1k | 88.2 | 632 | 167.4 | 139.4 | رابط |
| vit_large_patch14_clip_336.laion2b_ft_in12k_in1k | 88.2 | 304.5 | 191.1 | 270.2 | رابط |
| vit_large_patch14_clip_224.openai_ft_in12k_in1k | 88.2 | 304.2 | 81.1 | 88.8 | رابط |
| vit_large_patch14_clip_224.laion2b_ft_in12k_in1k | 87.9 | 304.2 | 81.1 | 88.8 | رابط |
| vit_large_patch14_clip_224.openai_ft_in1k | 87.9 | 304.2 | 81.1 | 88.8 | رابط |
| vit_large_patch14_clip_336.laion2b_ft_in1k | 87.9 | 304.5 | 191.1 | 270.2 | رابط |
| vit_huge_patch14_clip_224.laion2b_ft_in1k | 87.6 | 632 | 167.4 | 139.4 | رابط |
| vit_large_patch14_clip_224.laion2b_ft_in1k | 87.3 | 304.2 | 81.1 | 88.8 | رابط |
| vit_base_patch16_clip_384.laion2b_ft_in12k_in1k | 87.2 | 86.9 | 55.5 | 101.6 | رابط |
| vit_base_patch16_clip_384.openai_ft_in12k_in1k | 87 | 86.9 | 55.5 | 101.6 | رابط |
| vit_base_patch16_clip_384.laion2b_ft_in1k | 86.6 | 86.9 | 55.5 | 101.6 | رابط |
| vit_base_patch16_clip_384.openai_ft_in1k | 86.2 | 86.9 | 55.5 | 101.6 | رابط |
| vit_base_patch16_clip_224.laion2b_ft_in12k_in1k | 86.2 | 86.6 | 17.6 | 23.9 | رابط |
| vit_base_patch16_clip_224.openai_ft_in12k_in1k | 85.9 | 86.6 | 17.6 | 23.9 | رابط |
| vit_base_patch32_clip_448.laion2b_ft_in12k_in1k | 85.8 | 88.3 | 17.9 | 23.9 | رابط |
| vit_base_patch16_clip_224.laion2b_ft_in1k | 85.5 | 86.6 | 17.6 | 23.9 | رابط |
| vit_base_patch32_clip_384.laion2b_ft_in12k_in1k | 85.4 | 88.3 | 13.1 | 16.5 | رابط |
| vit_base_patch16_clip_224.openai_ft_in1k | 85.3 | 86.6 | 17.6 | 23.9 | رابط |
| vit_base_patch32_clip_384.openai_ft_in12k_in1k | 85.2 | 88.3 | 13.1 | 16.5 | رابط |
| vit_base_patch32_clip_224.laion2b_ft_in12k_in1k | 83.3 | 88.2 | 4.4 | 5 | رابط |
| vit_base_patch32_clip_224.laion2b_ft_in1k | 82.6 | 88.2 | 4.4 | 5 | رابط |
| vit_base_patch32_clip_224.openai_ft_in1k | 81.9 | 88.2 | 4.4 | 5 | رابط |
- نقل أوزان MaxViT من TensorFlow من التنفيذ الرسمي في https://github.com/google-research/maxvit
- شهدت أوزان الضبط الدقيق in21k المُحسّنة إلى 384/512 انخفاضات أكبر مما كان متوقعًا، مع احتمال فقدان بعض التفاصيل، لكن يبدو أن الضبط الدقيق 21k كان حساسًا للتعديلات الطفيفة في المعالجة المسبقة
| نموذج | top1 | param_count | gmac | macts | hub |
|---|---|---|---|---|---|
| maxvit_xlarge_tf_512.in21k_ft_in1k | 88.5 | 475.8 | 534.1 | 1413.2 | رابط |
| maxvit_xlarge_tf_384.in21k_ft_in1k | 88.3 | 475.3 | 292.8 | 668.8 | رابط |
| maxvit_base_tf_512.in21k_ft_in1k | 88.2 | 119.9 | 138 | 704 | رابط |
| maxvit_large_tf_512.in21k_ft_in1k | 88 | 212.3 | 244.8 | 942.2 | رابط |
| maxvit_large_tf_384.in21k_ft_in1k | 88 | 212 | 132.6 | 445.8 | رابط |
| maxvit_base_tf_384.in21k_ft_in1k | 87.9 | 119.6 | 73.8 | 332.9 | رابط |
| maxvit_base_tf_512.in1k | 86.6 | 119.9 | 138 | 704 | رابط |
| maxvit_large_tf_512.in1k | 86.5 | 212.3 | 244.8 | 942.2 | رابط |
| maxvit_base_tf_384.in1k | 86.3 | 119.6 | 73.8 | 332.9 | رابط |
| maxvit_large_tf_384.in1k | 86.2 | 212 | 132.6 | 445.8 | رابط |
| maxvit_small_tf_512.in1k | 86.1 | 69.1 | 67.3 | 383.8 | رابط |
| maxvit_tiny_tf_512.in1k | 85.7 | 31 | 33.5 | 257.6 | رابط |
| maxvit_small_tf_384.in1k | 85.5 | 69 | 35.9 | 183.6 | رابط |
| maxvit_tiny_tf_384.in1k | 85.1 | 31 | 17.5 | 123.4 | رابط |
| maxvit_large_tf_224.in1k | 84.9 | 211.8 | 43.7 | 127.4 | رابط |
| maxvit_base_tf_224.in1k | 84.9 | 119.5 | 24 | 95 | رابط |
| maxvit_small_tf_224.in1k | 84.4 | 68.9 | 11.7 | 53.2 | رابط |
| maxvit_tiny_tf_224.in1k | 83.4 | 30.9 | 5.6 | 35.8 | رابط |
15 أكتوبر 2022
- تحسينات على سكربت التدريب والتحقق
- دعم الأجهزة غير GPU (أي CPU)
- توافق SLURM مع سكربت التدريب
- دعم مجموعات بيانات HF (عبر ReaderHfds)
- تحسينات تحميل البيانات في TFDS/WDS (تم إصلاح ملء/تكرار العينة للاستخدام الموزّع فيما يتعلق بتقدير عدد العينات)
- دعم in_chans !=3 في السكربتات / المُحمِّل
- مُحسِّن Adan
- يمكن تفعيل جدولة معدل التعلم لكل خطوة عبر args
- تمت إعادة تسمية مجموعة بيانات ‘parsers’ إلى ‘readers’، وهي أكثر وصفًا لغرضها
- تغيّرت حُجج AMP، وAPEX عبر
--amp-impl apex، ودعم bfloat16 عبر--amp-dtype bfloat16 - تم تحويل الفرع الرئيسي إلى الإصدار 0.7.x، وتم إنشاء فرع منفصل للإصدار 0.6x من أجل إصدار مستقر لإضافات الأوزان فقط
- إعادة تسمية الفرع master إلى main
10 أكتوبر 2022
- أوزان إضافية في
maxxvitسلسلة، بما في ذلك أول كتلة ConvNeXt المستندة إلىcoatnextوmaxxvitتجارب:coatnext_nano_rw_224- 82.0 @ 224 (G) — (يستخدم كتلة التمرير ConvNeXt، بدون BatchNorm)maxxvit_rmlp_nano_rw_256- 83.0 @ 256، 83.7 @ 320 (G) (يستخدم كتلة التمرير ConvNeXt، بدون BN)maxvit_rmlp_small_rw_224- 84.5 @ 224, 85.1 @ 320 (G)maxxvit_rmlp_small_rw_256- 84.6 @ 256، 84.9 @ 288 (G) — يمكن تدريبه بشكل أفضل، حيث تحتاج المعلمات إلى ضبط (يستخدم كتلة ConvNeXt، بدون BN)coatnet_rmlp_2_rw_224- 84.6 @ 224, 85 @ 320 (T)- ملاحظة: تم إصدار أوزان MaxVit الرسمية (in1k) على https://github.com/google-research/maxvit — يتطلب الأمر بعض العمل الإضافي للنقل والتكييف، حيث إن تنفذي تم إنشاؤه بشكل مستقل عن تنفيذهما ويحتوي على بعض الاختلافات الصغيرة + كل ما يتعلق بمتعة الحشو المتماثل في TF.
23 سبتمبر 2022
- أبراج الصور في LAION-2B CLIP مدعومة كعظلات مسبقة التدريب للضبط الدقيق أو استخراج الميزات (بدون مصنّف)
- vit_base_patch32_224_clip_laion2b
- vit_large_patch14_224_clip_laion2b
- vit_huge_patch14_224_clip_laion2b
- vit_giant_patch14_224_clip_laion2b
7 سبتمبر 2022
- توجد الآن الصفحة الرئيسية لتوثيقات
timmالخاصة بـ Hugging Face، فابحث هنا مستقبلاً عن المزيد - أضف أوزان BEiT-v2 لنموذجي base و large بحجم 224x224 من https://github.com/microsoft/unilm/tree/master/beit2
- إضافة المزيد من الأوزان في
maxxvitسلسلة، بما في ذلكpico(7.5نموذج بحجم 7.5tinyنموذجان بحجم صغير:maxvit_rmlp_pico_rw_256- 80.5 @ 256, 81.3 @ 320 (T)maxvit_tiny_rw_224- 83.5 @ 224 (G)maxvit_rmlp_tiny_rw_256- 84.2 @ 256, 84.8 @ 320 (T)
29 أغسطس 2022
- بحيث يتناسب حجم نافذة MaxVit مع img_size افتراضيًا. أضف وزن RelPosMlp MaxViT جديدًا يستفيد من ذلك:
maxvit_rmlp_nano_rw_256- 83.0 @ 256, 83.6 @ 320 (T)
26 أغسطس 2022
- CoAtNet (https://arxiv.org/abs/2106.04803) و MaxVit (https://arxiv.org/abs/2204.01697)
timmالنماذج الأصلية لـ timm- كلاهما موجود في تعريف النموذج في
maxxvit.py، ويحتوي على تجارب عديدة خارج نطاق الأوراق البحثية الأصلية - يمكن العثور على نسخة غير مكتملة من Tensorflow من مؤلفي MaxVit في https://github.com/google-research/maxvit
- كلاهما موجود في تعريف النموذج في
- أوزان التمهيد الأولية لنموذجي CoAtNet وMaxVit من مكتبة timm (نعمل على إضافة المزيد):
coatnet_nano_rw_224- 81.7 @ 224 (T)coatnet_rmlp_nano_rw_224- 82.0 @ 224, 82.8 @ 320 (T)coatnet_0_rw_224- 82.4 (T) — ملاحظة: نماذج coatnet التي تحمل الرقم «0» في مكتبة timm تحتوي على بلوكين إضافيين في المرحلة الثالثةcoatnet_bn_0_rw_224- 82.4 (T)maxvit_nano_rw_256- 82.9 @ 256 (T)coatnet_rmlp_1_rw_224- 83.4 @ 224, 84 @ 320 (T)coatnet_1_rw_224- 83.6 @ 224 (G)- (T) = TPU تم تدريبه باستخدام كود التدريب في فرع
bits_and_tpu، (G) = GPU تم تدريبه
- GCVit (الأوزان مُعدَّلة من https://github.com/NVlabs/GCVit، والكود إعادة كتابة بنسبة 100% باستخدام
timmلأغراض الترخيص) - MViT-V2 (شبكة تحويل متعددة المقاييس، مُعدّلة من https://github.com/facebookresearch/mvit)
- إيفيشنت فورمر (مُعدَّل من https://github.com/snap-research/EfficientFormer)
- PyramidVisionTransformer-V2 (مُعدَّل من https://github.com/whai362/PVT)
- دعم ‘Fast Norm’ لـ LayerNorm و GroupNorm يتجنّب التحويل إلى float32 مع AMP (يستخدم APEX LN إذا كان متاحاً لتحقيق تحسين إضافي)
15 أغسطس 2022
- تمت إضافة أوزان ConvNeXt atto
convnext_atto- 75.7 @ 224, 77.0 @ 288convnext_atto_ols- 75.9 @ 224, 77.2 @ 288
5 أغسطس 2022
- تعريفات إضافية لنماذج ConvNeXt أصغر مخصصة مع الأوزان
convnext_femto- 77.5 @ 224, 78.7 @ 288convnext_femto_ols- 77.9 @ 224, 78.9 @ 288convnext_pico- 79.5 @ 224, 80.4 @ 288convnext_pico_ols- 79.5 @ 224, 80.5 @ 288convnext_nano_ols- 80.9 @ 224, 81.6 @ 288
- تم تحديث EdgeNeXt لتحسين تصدير ONNX، وإضافة متغير أساسي جديد وأوزان من الأصل (https://github.com/mmaaz60/EdgeNeXt)
28 يوليو 2022
- إضافة أوزان نموذج DeiT-III Medium (width=512, depth=12, num_heads=8) الجديد. شكرًا Hugo Touvron!
27 يوليو 2022
- جميع ملفات csv الخاصة بنتائج اختبارات الأداء والتحقق وقت التشغيل محدّثة الآن!
- تمت إضافة بعض الأوزام وتعريفات النماذج الإضافية:
darknetaa53- 79.8 @ 256, 80.5 @ 288convnext_nano- 80.8 @ 224, 81.5 @ 288cs3sedarknet_l- 81.2 @ 256, 81.8 @ 288cs3darknet_x- 81.8 @ 256, 82.2 @ 288cs3sedarknet_x- 82.2 @ 256, 82.7 @ 288cs3edgenet_x- 82.2 @ 256, 82.7 @ 288cs3se_edgenet_x- 82.8 @ 256, 83.5 @ 320
- أوزان
cs3*جميعها تم تدريبها على TPU باستخدام فرعbits_and_tpu. شكرًا لبرنامج TRC! - إضافة دعم لـ output_stride=8 و 16 إلى ConvNeXt (التوسيع)
- تم إصلاح مشكلة عدم قدرة نماذج deit3 على تغيير حجم pos_emb
- الإصدار 0.6.7 على PyPi (مع إصلاحات الأخطاء المذكورة أعلاه وأوزان جديدة منذ الإصدار 0.6.5)
8 يوليو 2022
نماذج أكثر، وإصلاحات أكثر
- نماذج البحث الرسمية (مع الأوزان) المضافة:
- EdgeNeXt من (https://github.com/mmaaz60/EdgeNeXt)
- MobileViT-V2 من (https://github.com/apple/ml-cvnets)
- DeiT III (انتقام ViT) من (https://github.com/facebookresearch/deit)
- نماذجي الخاصة:
- تمت إضافة تعريفات
ResNetصغيرة بناءً على طلب، مع تكرار كتلة واحدة لكل من البنية الأساسية والبنية الضاغطة (resnet10 وresnet14) CspNetأُعيدت هندستها مع إعدادات dataclass، وخيار CrossStage3 (cs3) مبسّط. هذه التعريفات أقرب إلى تعريفات الهيكل الأساسي في YOLO-v5+.- مزيد من التعديلات على البنية ذاتية الانتباه (ViT) المتعلقة بالموضع النسبي. تم تدريب نموذجين من نوع
srelpos(الموضع النسبي المشترك)، ونموذج متوسط الحجم مع رمز فئة (class token). - أضف وضعًا بديلًا للتخفيض في EdgeNeXt ودرّب نموذجًا
small. أفضل من النموذج small الأصلي، لكنه ليس بالأوزان المدربة الجديدة الخاصة بهم USI.
- تمت إضافة تعريفات
- نتائج أوزان نماذجي الخاصة (جميعها تدريب على ImageNet-1k)
resnet10t- 66.5 @ 176, 68.3 @ 224resnet14t- 71.3 @ 176, 72.3 @ 224resnetaa50- 80.6 @ 224 , 81.6 @ 288darknet53- 80.0 @ 256, 80.5 @ 288cs3darknet_m- 77.0 @ 256, 77.6 @ 288cs3darknet_focus_m- 76.7 @ 256, 77.3 @ 288cs3darknet_l- 80.4 @ 256, 80.9 @ 288cs3darknet_focus_l- 80.3 @ 256, 80.9 @ 288vit_srelpos_small_patch16_224- 81.1 @ 224, 82.1 @ 320vit_srelpos_medium_patch16_224- 82.3 @ 224, 83.1 @ 320vit_relpos_small_patch16_cls_224- 82.6 @ 224, 83.6 @ 320edgnext_small_rw- 79.6 @ 224, 80.4 @ 320
- تم تدريب الأوزان أعلاه لـ
cs3وdarknetوvit_*relposعلى TPU بفضل برنامج TRC! أما الباقي فقد تم تدريبه على وحدات معالجة رسومية (GPU) كانت تزداد حرارتها بشكل مفرط. - تم التحقق من إصلاحات دعم Hugging Face Hub، ودليل الملاحظات التجريبي قيد الإعداد
- يمكن تحميل الأوزان/التكوينات المُسبقة التدريب من مصادر خارجية (مثل القرص المحلي) مع دعم تكيّف الرأس.
- إضافة دعم لتغيير امتدادات الصور التي يفحصها مجموعات/قارئات
timm. راجع (https://github.com/rwightman/pytorch-image-models/pull/1274#issuecomment-1178303103) - تنفيذ LayerNorm الافتراضي لطبقة ConvNeXt المستخدم
F.layer_norm(x.permute(0, 2, 3, 1), ...).permute(0, 3, 1, 2)عبرLayerNorm2dفي جميع الحالات. أبطأ قليلاً من التنفيذ المخصص السابق على بعض الأجهزة (مثل Ampere مع CL)، لكن بشكل عام هناك عدد أقل من التراجعات عبر نطاقات أوسع من الأجهزة وإصدارات PyTorch. لا يزال التنفيذ السابق موجودًا باسم LayerNormExp2d في models/layers/norm.py- أبطأ قليلاً من التنفيذ المخصص السابق على بعض الأجهزة (مثل Ampere مع CL)، لكن بشكل عام، هناك عدد أقل من التراجعات عبر نطاقات أوسع من الأجهزة وإصدارات PyTorch.
- توجد النسخة السابقة من التنفيذ باسم
LayerNormExp2dفيmodels/layers/norm.py
- إصلاحات أخطاء متعددة
- جارٍ الاختبار حاليًا للإصدار 0.6.x القادم على PyPi
- لا يزال التدريب المسبق لنماذج LeViT الأكبر حجمًا قيد التطوير، إذ لا تتدرب بشكل جيد أو سهل دون التقطير. هل حان الوقت أخيرًا لإضافة دعم التقطير؟
- تدريب الأوزان على ImageNet-22k وضبطها الدقيق جارٍ، والعمل على دعم الأوزان المتعددة (ببطء) يتقدم بشكل بطيء (هناك عدد كبير جداً من الأوزان، آه) …
13 مايو 2022
- تمت إضافة نماذج Swin-V2 الرسمية وأوزانها من (https://github.com/microsoft/Swin-Transformer). تم تنظيفها لدعم torchscript.
- بعض إعادة الهيكلة لتنفيذ
timmالخاص بـ Swin-V2-CR، ومن المرجح أن أقوم بمزيد من التعديلات لجعل بعض الأجزاء أقرب إلى النسخة الرسمية، ثم أقرر ما إذا كان يجب دمج بعض الجوانب. - تجارب إضافية حول الموضع النسبي / التطبيع بعد الباقي في Vision Transformer (تم تدريبها جميعًا على TPU بفضل برنامج TRC)
vit_relpos_small_patch16_224- 81.5 @ 224، 82.5 @ 320 — موضع نسبي، مقياس طبقة، بدون رمز فئة، متوسط تجميعvit_relpos_medium_patch16_rpn_224- 82.3 @ 224، 83.1 @ 320 — موضع نسبي + تطبيع بعد التبقية، بدون رمز فئة، متوسط مجمّعvit_relpos_medium_patch16_224- 82.5 @ 224، 83.3 @ 320 — موضع نسبي، مقياس طبقة، بدون رمز فئة، متوسط تجميعvit_relpos_base_patch16_gapcls_224- 82.8 @ 224، 83.9 @ 320 — موضع نسبي، مقياس طبقة، رمز فئة، متوسط تجميع (عن طريق الخطأ)
- إحياء متغيّر نموذج ViT «المتوسط» ذي الأبعاد 512 ورؤوس 8 من جديد (بعد استخدامه في نموذج «صغير» ما قبل DeiT في أول تطبيق لـ ViT عام 2020)
- إضافة دعم لموقع ViT النسبي للتبديل بين التنفيذ الحالي وبعض الإضافات في التنفيذ الرسمي لـ Swin-V2 لتجارب مستقبلية
- تنفيذ Sequencer2D (https://arxiv.org/abs/2205.01972)، أُضيف عبر طلب دمج من المؤلف (https://github.com/okojoalg)
2 مايو 2022
- تجارب Vision Transformer بإضافة Relative Position (Swin-V2 log-coord) (
vision_transformer_relpos.py) و فروع Residual Post-Norm (من Swin-V2) (vision_transformer*.py)vit_relpos_base_patch32_plus_rpn_256- 79.5 @ 256، 80.6 @ 320 — موضع نسبي + عرض موسّع + تطبيع بعد التبقّي، بدون رمز فئة، متوسط مجمّعvit_relpos_base_patch16_224- 82.5 @ 224، 83.6 @ 320 — موضع نسبي، مقياس طبقة، بدون رمز فئة، متوسط تجميعvit_base_patch16_rpn_224- 82.3 @ 224 — موضع نسبي + تطبيع بعد التبقّي، بدون رمز فئة، متوسط تجميع
- إعادة هيكلة Vision Transformer لإزالة طبقة التمثيل التي كانت تُستخدم فقط في vit الأولية ونادراً ما تُستخدم منذ ذلك الحين مع عمليات التدريب المسبق الأحدث (مثل
How to Train Your ViT) - تدعم نماذج
vit_*إزالة رمز الفئة، واستخدام متوسط التجميع العام، واستخدام fc_norm (على غرار beit وmae).
22 أبريل 2022
- نماذج
timmمدعومة رسميًا الآن في fast.ai! في الوقت المناسب تمامًا لدورة التعلم العملي العميق الجديدة. تم تحديث رابط توثيقtimmdocsإلى timm.fast.ai. - تمت إضافة وزنين آخرين للنموذج في سلسلة التدريب على TPU . لا يزال بعض التدريب المسبق In22k قيد التنفيذ.
seresnext101d_32x8d- 83.69 @ 224, 84.35 @ 288seresnextaa101d_32x8d(مضاد للتشويش باستخدام AvgPool2d) - 83.85 عند 224، 84.57 عند 288
23 مارس 2022
- أضِف خيار
ParallelBlockوLayerScaleإلى نماذج vit الأساسية لدعم تكوينات النموذج في ثلاث أشياء يجب على الجميع معرفتها حول ViT - أوزان
convnext_tiny_hnf(مع تطبيع الرأس أولاً) تم تدريبها باستخدام وصفة A2 (أو ما يقاربها)، محققة دقة 82.2% في التصنيف الأول (top-1)، ويمكن تحسين الأداء بزيادة عدد الفترات (epochs).
21 مارس 2022
- دمج
norm_norm_norm. مهم من المرجح أن يؤدي هذا التحديث الخاص بالإصدار 0.6.x القادم إلى زعزعة استقرار الفرع الرئيسي لفترة من الوقت. يمكن استخدام الفرع0.5.xأو إصدار سابق من 0.5.x إذا كان الاستقرار مطلوبًا. - تحديث كبير للأوزان (تم تدريبها جميعًا على TPU) كما هو موضح في هذا الإصدار
regnety_040- 82.3 @ 224, 82.96 @ 288regnety_064- 83.0 @ 224, 83.65 @ 288regnety_080- 83.17 @ 224, 83.86 @ 288regnetv_040- 82.44 @ 224، 83.18 @ 288 (timm pre-act)regnetv_064- 83.1 @ 224، 83.71 @ 288 (timm pre-act)regnetz_040- 83.67 @ 256, 84.25 @ 320regnetz_040h- 83.77 @ 256، 84.5 @ 320 (مع طبقة fc إضافية في الرأس)resnetv2_50d_gn- 80.8 @ 224، 81.96 @ 288 (pre-act GroupNorm)resnetv2_50d_evos80.77 @ 224، 82.04 @ 288 (pre-act EvoNormS)regnetz_c16_evos- 81.9 @ 256، 82.64 @ 320 (EvoNormS)regnetz_d8_evos- 83.42 @ 256، 84.04 @ 320 (EvoNormS)xception41p- 82 @ 299 (timm pre-act)xception65- 83.17 @ 299xception65p- 83.14 @ 299 (timm pre-act)resnext101_64x4d- 82.46 @ 224, 83.16 @ 288seresnext101_32x8d- 83.57 @ 224, 84.270 @ 288resnetrs200- 83.85 @ 256, 84.44 @ 320
- تم إصلاح دعم HuggingFace hub مع وضع الأساس الأولي للسماح بمصادر بديلة لـ ‘config’ لتعريفات نماذج ما قبل التدريب وأوزانها (دعم الملفات المحلية العامة / عناوين URL البعيدة قريباً)
- تمت إضافة تنفيذ SwinTransformer-V2. قدّمه Christoph Reich. تجارب التدريب والتغييرات على النموذج من قِبَلي ما زالت جارية، لذا توقعوا كسور في التوافق.
- تمت إضافة نماذج / أوزان Swin-S3 (AutoFormerV2) من https://github.com/microsoft/Cream/tree/main/AutoFormerV2
- نماذج MobileViT مع أوزان مُعدَّلة من https://github.com/apple/ml-cvnets
- نماذج PoolFormer مع أوزان مُعدَّلة من https://github.com/sail-sg/poolformer
- نماذج VOLO مع أوزان مُعدَّلة من https://github.com/sail-sg/volo
- عمل كبير في تجريب طبقات تطبيع غير BatchNorm مثل EvoNorm وFilterResponseNorm وGroupNorm وغيرها
- تحسين دعم طبقات المعايير والدوال التنشيطية البديلة (‘NormAct’) التي أُضيفت إلى عدد من النماذج، لا سيما EfficientNet/MobileNetV3 وRegNet وXception المتماثل
- تمت إضافة دعم الالتفاف المجمّع إلى عائلة EfficientNet
- إضافة واجهة برمجة تطبيقات ‘مطابقة المجموعات’ إلى جميع النماذج للسماح بتجميع معاملات النموذج لتطبيق اضمحلال معدل التعلم ‘على مستوى الطبقات’، مع إضافة مقياس معدل التعلم إلى مجدول معدل التعلم
- تمت إضافة دعم نقطة التدرّج إلى العديد من النماذج
forward_head(x, pre_logits=False)دالة أُضيفت إلى جميع النماذج للسماح باستدعاءforward_featuresوforward_headبشكل منفصل- تحديث جميع نماذج vision transformer وvision MLP لتعيد ميزات غير مجمّعة / غير مختارة على مستوى الرموز من
forward_features، من أجل التوافق مع نماذج CNN، حيث تُطبَّق الآن عملية اختيار الرموز أو التجميع فيforward_head
2 فبراير 2022
- نشر Chris Hughes أمس على مدونته شرحًا شاملًا لمكتبة
timm. يستحق القراءة بلا شك. البدء مع نماذج الصور في PyTorch (timm): دليل للممارسين - أُعدّ حاليًا لدمج فرع
norm_norm_normإلى الفرع الرئيسي (الإصدار 0.6.x) خلال الأسبوع القادم تقريبًا. التغييرات أوسع من المعتاد وقد تُزعزع الاستقرار وتُسبب كسرًا في بعض استخدامات واجهة برمجة التطبيقات الخاصة بالنماذج (مع السعي لتحقيق توافق تام مع الإصدارات السابقة). لذا، احذر من الأمر pip install git+https://github.com/rwightman/pytorch-image-models installs! ستبقى إصدارات 0.5.x وفرع 0.5.x مستقرين مع اختيار بعض التعديلات (cherry pick) حتى تستقر الأمور. يُنصح بالالتزام بالتثبيت عبر pypi لفترة إذا كنت ترغب في الاستقرار.- التغييرات أوسع من المعتاد وقد تُسبب عدم استقرار أو كسر بعض استخدامات واجهات برمجة التطبيقات الخاصة بالنماذج (مع السعي لتحقيق توافق كامل مع الإصدارات السابقة). لذا، احذر من عمليات التثبيت عبر
pip install git+https://github.com/rwightman/pytorch-image-models! - ستبقى إصدارات
0.5.xوفرع0.5.xمستقرة مع اختيار بعض الإصلاحات (cherry pick) حتى تستقر الأمور. ننصح بالالتزام بتثبيت pypi لفترة إذا كنت ترغب في الاستقرار.
- التغييرات أوسع من المعتاد وقد تُسبب عدم استقرار أو كسر بعض استخدامات واجهات برمجة التطبيقات الخاصة بالنماذج (مع السعي لتحقيق توافق كامل مع الإصدارات السابقة). لذا، احذر من عمليات التثبيت عبر
14 يناير 2022
- الإصدار 0.5.4 مع الإصدار الذي سيتم رفعه إلى pypi. لقد مرّ وقت طويل منذ آخر تحديث على pypi، وسيتم دمج التغييرات الأكثر خطورة قريباً في الفرع الرئيسي main…
- إضافة نماذج ConvNeXT مع الأوزان من التنفيذ الرسمي (https://github.com/facebookresearch/ConvNeXt)، مع بعض التعديلات لتحسين الأداء، ومتوافقة مع ميزات timm
- جرّبت تدريب بعض النماذج الصغيرة (حوالي 1.8 إلى 3 ملايين معامل) / المُحسَّنة للهواتف المحمولة، بعضها جيد حتى الآن، والمزيد في الطريق…
mnasnet_small- 65.6 top-1mobilenetv2_050- 65.9lcnet_100/075/050- 72.1 / 68.8 / 63.1semnasnet_075- 73fbnetv3_b/d/g- 79.1 / 79.7 / 82.0
- نماذج TinyNet التي أضافها rsomani95
- تمت إضافة LCNet عبر بنية MobileNetV3
5 يناير 2023
- تمت إضافة نماذج ConvNeXt-V2 وأوزانها إلى
convnext.py- الورقة: ConvNeXt V2: تصميم مشترك وتوسيع شبكات الالتفاف مع المشفرات الذاتية المقنّعة
- التنفيذ المرجعي: https://github.com/facebookresearch/ConvNeXt-V2 (ملاحظة: الأوزان حاليًا مرخصة بموجب CC-BY-NC)
23 ديسمبر 2022 🎄☃
- إضافة نماذج FlexiViT وأوزانها من https://github.com/google-research/big_vision (اطّلع على الورقة البحثية في https://arxiv.org/abs/2212.08013)
- ملاحظة: حاليًا، تغيير الحجم ثابت عند إنشاء النموذج، بينما أخذ عينات ديناميكي لحظي لحجم الباتش أثناء التدريب قيد التطوير.
- تم تحديث المزيد من النماذج إلى أوزان متعددة وأصبحت قابلة للتنزيل عبر HF hub الآن (convnext, efficientnet, mobilenet, vision_transformer*, beit)
- أكثر من وسم نموذج مُسبق التدريب وتعديلات، تم تغيير بعض أسماء النماذج (نعمل على ترجمات الإلغاء، فكّر في فرع DEV الرئيسي الآن، استخدم 0.6.x للاستخدام المستقر)
- نماذج تدريب مسبق إضافية من ImageNet-12k (مجموعة فرعية من 22k) تظهر:
efficientnet_b5.in12k_ft_in1k- 85.9 @ 448x448vit_medium_patch16_gap_384.in12k_ft_in1k- 85.5 @ 384x384vit_medium_patch16_gap_256.in12k_ft_in1k- 84.5 @ 256x256convnext_nano.in12k_ft_in1k- 82.9 @ 288x288
8 ديسمبر 2022
- أضِف ‘EVA l’ إلى
vision_transformer.py, تدريب مسبق بأسلوب MAE لـ ViT-L/14 باستخدام أهداف EVA-CLIP، مع تدريب دقيق على ImageNet-1k (مع استخدام ImageNet-22k كمرحلة وسيطة لبعض النماذج)
| نموذج | top1 | param_count | gmac | macts | hub |
|---|---|---|---|---|---|
| eva_large_patch14_336.in22k_ft_in22k_in1k | 89.2 | 304.5 | 191.1 | 270.2 | رابط |
| eva_large_patch14_336.in22k_ft_in1k | 88.7 | 304.5 | 191.1 | 270.2 | رابط |
| eva_large_patch14_196.in22k_ft_in22k_in1k | 88.6 | 304.1 | 61.6 | 63.5 | رابط |
| eva_large_patch14_196.in22k_ft_in1k | 87.9 | 304.1 | 61.6 | 63.5 | رابط |
6 ديسمبر 2022
- إضافة أوزان نموذج ViT-g/14 بأسلوب BEiT، وهو 'EVA g'، مع كلٍّ من التدريب المسبق MIM والتدريب المسبق CLIP إلى
beit.py.
| نموذج | top1 | param_count | gmac | macts | hub |
|---|---|---|---|---|---|
| eva_giant_patch14_560.m30m_ft_in22k_in1k | 89.8 | 1014.4 | 1906.8 | 2577.2 | رابط |
| eva_giant_patch14_336.m30m_ft_in22k_in1k | 89.6 | 1013 | 620.6 | 550.7 | رابط |
| eva_giant_patch14_336.clip_ft_in1k | 89.4 | 1013 | 620.6 | 550.7 | رابط |
| eva_giant_patch14_224.clip_ft_in1k | 89.1 | 1012.6 | 267.2 | 192.6 | رابط |
5 ديسمبر 2022
- إصدار ما قبل الإطلاق (
0.8.0dev0) لدعم الأوزان المتعددة (model_arch.pretrained_tag). قم بالتثبيت باستخدامpip install --pre timm- vision_transformer وmaxvit وconvnext هي أول ثلاث نماذج تدعم
- تتغير أسماء النماذج مع هذا (سيتم دمج الدالة السابقة _21k وما شابه)، ما زلنا نعمل على معالجة إجراءات الإيقاف
- من المحتمل وجود أخطاء، لكنني بحاجة إلى ملاحظات، لذا يرجى تجربتها
- إذا كان الاستقرار مطلوبًا، يُرجى استخدام إصدارات 0.6.x من pypi أو استنساخ الكود من فرع 0.6.x
- تمت إضافة دعم لـ PyTorch 2.0 compile في train/validate/inference/benchmark، استخدم الحجة
--torchcompile - يسمح سكربت الاستدلال بمزيد من التحكم في المخرجات، حيث يمكنك اختيار k لمؤشر الفئة الأعلى واحتمالها، مع إمكانية إخراج البيانات بصيغ json أو csv أو parquet
- أضف مجموعة كاملة من أوزان برج الصور المُحسَّنة لنموذج CLIP من كلا نموذجي LAION-2B وOpenAI CLIP الأصلي
| نموذج | top1 | param_count | gmac | macts | hub |
|---|---|---|---|---|---|
| vit_huge_patch14_clip_336.laion2b_ft_in12k_in1k | 88.6 | 632.5 | 391 | 407.5 | رابط |
| vit_large_patch14_clip_336.openai_ft_in12k_in1k | 88.3 | 304.5 | 191.1 | 270.2 | رابط |
| vit_huge_patch14_clip_224.laion2b_ft_in12k_in1k | 88.2 | 632 | 167.4 | 139.4 | رابط |
| vit_large_patch14_clip_336.laion2b_ft_in12k_in1k | 88.2 | 304.5 | 191.1 | 270.2 | رابط |
| vit_large_patch14_clip_224.openai_ft_in12k_in1k | 88.2 | 304.2 | 81.1 | 88.8 | رابط |
| vit_large_patch14_clip_224.laion2b_ft_in12k_in1k | 87.9 | 304.2 | 81.1 | 88.8 | رابط |
| vit_large_patch14_clip_224.openai_ft_in1k | 87.9 | 304.2 | 81.1 | 88.8 | رابط |
| vit_large_patch14_clip_336.laion2b_ft_in1k | 87.9 | 304.5 | 191.1 | 270.2 | رابط |
| vit_huge_patch14_clip_224.laion2b_ft_in1k | 87.6 | 632 | 167.4 | 139.4 | رابط |
| vit_large_patch14_clip_224.laion2b_ft_in1k | 87.3 | 304.2 | 81.1 | 88.8 | رابط |
| vit_base_patch16_clip_384.laion2b_ft_in12k_in1k | 87.2 | 86.9 | 55.5 | 101.6 | رابط |
| vit_base_patch16_clip_384.openai_ft_in12k_in1k | 87 | 86.9 | 55.5 | 101.6 | رابط |
| vit_base_patch16_clip_384.laion2b_ft_in1k | 86.6 | 86.9 | 55.5 | 101.6 | رابط |
| vit_base_patch16_clip_384.openai_ft_in1k | 86.2 | 86.9 | 55.5 | 101.6 | رابط |
| vit_base_patch16_clip_224.laion2b_ft_in12k_in1k | 86.2 | 86.6 | 17.6 | 23.9 | رابط |
| vit_base_patch16_clip_224.openai_ft_in12k_in1k | 85.9 | 86.6 | 17.6 | 23.9 | رابط |
| vit_base_patch32_clip_448.laion2b_ft_in12k_in1k | 85.8 | 88.3 | 17.9 | 23.9 | رابط |
| vit_base_patch16_clip_224.laion2b_ft_in1k | 85.5 | 86.6 | 17.6 | 23.9 | رابط |
| vit_base_patch32_clip_384.laion2b_ft_in12k_in1k | 85.4 | 88.3 | 13.1 | 16.5 | رابط |
| vit_base_patch16_clip_224.openai_ft_in1k | 85.3 | 86.6 | 17.6 | 23.9 | رابط |
| vit_base_patch32_clip_384.openai_ft_in12k_in1k | 85.2 | 88.3 | 13.1 | 16.5 | رابط |
| vit_base_patch32_clip_224.laion2b_ft_in12k_in1k | 83.3 | 88.2 | 4.4 | 5 | رابط |
| vit_base_patch32_clip_224.laion2b_ft_in1k | 82.6 | 88.2 | 4.4 | 5 | رابط |
| vit_base_patch32_clip_224.openai_ft_in1k | 81.9 | 88.2 | 4.4 | 5 | رابط |
- نقل أوزان MaxViT من TensorFlow من التنفيذ الرسمي في https://github.com/google-research/maxvit
- شهدت أوزان الضبط الدقيق in21k المُحسّنة إلى 384/512 انخفاضات أكبر مما كان متوقعًا، مع احتمال فقدان بعض التفاصيل، لكن يبدو أن الضبط الدقيق 21k كان حساسًا للتعديلات الطفيفة في المعالجة المسبقة
| نموذج | top1 | param_count | gmac | macts | hub |
|---|---|---|---|---|---|
| maxvit_xlarge_tf_512.in21k_ft_in1k | 88.5 | 475.8 | 534.1 | 1413.2 | رابط |
| maxvit_xlarge_tf_384.in21k_ft_in1k | 88.3 | 475.3 | 292.8 | 668.8 | رابط |
| maxvit_base_tf_512.in21k_ft_in1k | 88.2 | 119.9 | 138 | 704 | رابط |
| maxvit_large_tf_512.in21k_ft_in1k | 88 | 212.3 | 244.8 | 942.2 | رابط |
| maxvit_large_tf_384.in21k_ft_in1k | 88 | 212 | 132.6 | 445.8 | رابط |
| maxvit_base_tf_384.in21k_ft_in1k | 87.9 | 119.6 | 73.8 | 332.9 | رابط |
| maxvit_base_tf_512.in1k | 86.6 | 119.9 | 138 | 704 | رابط |
| maxvit_large_tf_512.in1k | 86.5 | 212.3 | 244.8 | 942.2 | رابط |
| maxvit_base_tf_384.in1k | 86.3 | 119.6 | 73.8 | 332.9 | رابط |
| maxvit_large_tf_384.in1k | 86.2 | 212 | 132.6 | 445.8 | رابط |
| maxvit_small_tf_512.in1k | 86.1 | 69.1 | 67.3 | 383.8 | رابط |
| maxvit_tiny_tf_512.in1k | 85.7 | 31 | 33.5 | 257.6 | رابط |
| maxvit_small_tf_384.in1k | 85.5 | 69 | 35.9 | 183.6 | رابط |
| maxvit_tiny_tf_384.in1k | 85.1 | 31 | 17.5 | 123.4 | رابط |
| maxvit_large_tf_224.in1k | 84.9 | 211.8 | 43.7 | 127.4 | رابط |
| maxvit_base_tf_224.in1k | 84.9 | 119.5 | 24 | 95 | رابط |
| maxvit_small_tf_224.in1k | 84.4 | 68.9 | 11.7 | 53.2 | رابط |
| maxvit_tiny_tf_224.in1k | 83.4 | 30.9 | 5.6 | 35.8 | رابط |
15 أكتوبر 2022
- تحسينات على سكربت التدريب والتحقق
- دعم الأجهزة غير GPU (أي CPU)
- توافق SLURM مع سكربت التدريب
- دعم مجموعات بيانات HF (عبر ReaderHfds)
- تحسينات تحميل البيانات في TFDS/WDS (تم إصلاح ملء/تكرار العينة للاستخدام الموزّع فيما يتعلق بتقدير عدد العينات)
- دعم in_chans !=3 في السكربتات / المُحمِّل
- مُحسِّن Adan
- يمكن تفعيل جدولة معدل التعلم لكل خطوة عبر args
- تمت إعادة تسمية مجموعة بيانات ‘parsers’ إلى ‘readers’، وهي أكثر وصفًا لغرضها
- تغيّرت حُجج AMP، وAPEX عبر
--amp-impl apex، ودعم bfloat16 عبر--amp-dtype bfloat16 - تم تحويل الفرع الرئيسي إلى الإصدار 0.7.x، وتم إنشاء فرع منفصل للإصدار 0.6x من أجل إصدار مستقر لإضافات الأوزان فقط
- إعادة تسمية الفرع master إلى main
10 أكتوبر 2022
- أوزان إضافية في
maxxvitسلسلة، بما في ذلك أول كتلة ConvNeXt المستندة إلىcoatnextوmaxxvitتجارب:coatnext_nano_rw_224- 82.0 @ 224 (G) — (يستخدم كتلة التمرير ConvNeXt، بدون BatchNorm)maxxvit_rmlp_nano_rw_256- 83.0 @ 256، 83.7 @ 320 (G) (يستخدم كتلة التمرير ConvNeXt، بدون BN)maxvit_rmlp_small_rw_224- 84.5 @ 224, 85.1 @ 320 (G)maxxvit_rmlp_small_rw_256- 84.6 @ 256، 84.9 @ 288 (G) — يمكن تدريبه بشكل أفضل، حيث تحتاج المعلمات إلى ضبط (يستخدم كتلة ConvNeXt، بدون BN)coatnet_rmlp_2_rw_224- 84.6 @ 224, 85 @ 320 (T)- ملاحظة: تم إصدار أوزان MaxVit الرسمية (in1k) على https://github.com/google-research/maxvit — يتطلب الأمر بعض العمل الإضافي للنقل والتكييف، حيث إن تنفذي تم إنشاؤه بشكل مستقل عن تنفيذهما ويحتوي على بعض الاختلافات الصغيرة + كل ما يتعلق بمتعة الحشو المتماثل في TF.
23 سبتمبر 2022
- أبراج الصور في LAION-2B CLIP مدعومة كعظلات مسبقة التدريب للضبط الدقيق أو استخراج الميزات (بدون مصنّف)
- vit_base_patch32_224_clip_laion2b
- vit_large_patch14_224_clip_laion2b
- vit_huge_patch14_224_clip_laion2b
- vit_giant_patch14_224_clip_laion2b
7 سبتمبر 2022
- توجد الآن الصفحة الرئيسية لتوثيقات
timmالخاصة بـ Hugging Face، فابحث هنا مستقبلاً عن المزيد - أضف أوزان BEiT-v2 لنموذجي base و large بحجم 224x224 من https://github.com/microsoft/unilm/tree/master/beit2
- إضافة المزيد من الأوزان في
maxxvitسلسلة، بما في ذلكpico(7.5نموذج بحجم 7.5tinyنموذجان بحجم صغير:maxvit_rmlp_pico_rw_256- 80.5 @ 256, 81.3 @ 320 (T)maxvit_tiny_rw_224- 83.5 @ 224 (G)maxvit_rmlp_tiny_rw_256- 84.2 @ 256, 84.8 @ 320 (T)
29 أغسطس 2022
- بحيث يتناسب حجم نافذة MaxVit مع img_size افتراضيًا. أضف وزن RelPosMlp MaxViT جديدًا يستفيد من ذلك:
maxvit_rmlp_nano_rw_256- 83.0 @ 256, 83.6 @ 320 (T)
26 أغسطس 2022
- CoAtNet (https://arxiv.org/abs/2106.04803) و MaxVit (https://arxiv.org/abs/2204.01697)
timmالنماذج الأصلية لـ timm- كلاهما موجود في تعريف النموذج في
maxxvit.py، ويحتوي على تجارب عديدة خارج نطاق الأوراق البحثية الأصلية - يمكن العثور على نسخة غير مكتملة من Tensorflow من مؤلفي MaxVit في https://github.com/google-research/maxvit
- كلاهما موجود في تعريف النموذج في
- أوزان التمهيد الأولية لنموذجي CoAtNet وMaxVit من مكتبة timm (نعمل على إضافة المزيد):
coatnet_nano_rw_224- 81.7 @ 224 (T)coatnet_rmlp_nano_rw_224- 82.0 @ 224, 82.8 @ 320 (T)coatnet_0_rw_224- 82.4 (T) — ملاحظة: نماذج coatnet التي تحمل الرقم «0» في مكتبة timm تحتوي على بلوكين إضافيين في المرحلة الثالثةcoatnet_bn_0_rw_224- 82.4 (T)maxvit_nano_rw_256- 82.9 @ 256 (T)coatnet_rmlp_1_rw_224- 83.4 @ 224, 84 @ 320 (T)coatnet_1_rw_224- 83.6 @ 224 (G)- (T) = TPU تم تدريبه باستخدام كود التدريب في فرع
bits_and_tpu، (G) = GPU تم تدريبه
- GCVit (الأوزان مُعدَّلة من https://github.com/NVlabs/GCVit، والكود إعادة كتابة بنسبة 100% باستخدام
timmلأغراض الترخيص) - MViT-V2 (شبكة تحويل متعددة المقاييس، مُعدّلة من https://github.com/facebookresearch/mvit)
- إيفيشنت فورمر (مُعدَّل من https://github.com/snap-research/EfficientFormer)
- PyramidVisionTransformer-V2 (مُعدَّل من https://github.com/whai362/PVT)
- دعم ‘Fast Norm’ لـ LayerNorm و GroupNorm يتجنّب التحويل إلى float32 مع AMP (يستخدم APEX LN إذا كان متاحاً لتحقيق تحسين إضافي)
15 أغسطس 2022
- تمت إضافة أوزان ConvNeXt atto
convnext_atto- 75.7 @ 224, 77.0 @ 288convnext_atto_ols- 75.9 @ 224, 77.2 @ 288
5 أغسطس 2022
- تعريفات إضافية لنماذج ConvNeXt أصغر مخصصة مع الأوزان
convnext_femto- 77.5 @ 224, 78.7 @ 288convnext_femto_ols- 77.9 @ 224, 78.9 @ 288convnext_pico- 79.5 @ 224, 80.4 @ 288convnext_pico_ols- 79.5 @ 224, 80.5 @ 288convnext_nano_ols- 80.9 @ 224, 81.6 @ 288
- تم تحديث EdgeNeXt لتحسين تصدير ONNX، وإضافة متغير أساسي جديد وأوزان من الأصل (https://github.com/mmaaz60/EdgeNeXt)
28 يوليو 2022
- إضافة أوزان نموذج DeiT-III Medium (width=512, depth=12, num_heads=8) الجديد. شكرًا Hugo Touvron!
27 يوليو 2022
- جميع ملفات csv الخاصة بنتائج اختبارات الأداء والتحقق وقت التشغيل محدّثة!
- تمت إضافة بعض الأوزام وتعريفات النماذج الإضافية:
darknetaa53- 79.8 @ 256, 80.5 @ 288convnext_nano- 80.8 @ 224, 81.5 @ 288cs3sedarknet_l- 81.2 @ 256, 81.8 @ 288cs3darknet_x- 81.8 @ 256, 82.2 @ 288cs3sedarknet_x- 82.2 @ 256, 82.7 @ 288cs3edgenet_x- 82.2 @ 256, 82.7 @ 288cs3se_edgenet_x- 82.8 @ 256, 83.5 @ 320
- أوزان
cs3*جميعها تم تدريبها على TPU باستخدام فرعbits_and_tpu. شكرًا لبرنامج TRC! - إضافة دعم لـ output_stride=8 و 16 إلى ConvNeXt (التوسيع)
- تم إصلاح مشكلة عدم قدرة نماذج deit3 على تغيير حجم pos_emb
- الإصدار 0.6.7 على PyPi (مع إصلاحات الأخطاء المذكورة أعلاه وأوزان جديدة منذ الإصدار 0.6.5)
8 يوليو 2022
نماذج أكثر، وإصلاحات أكثر
- نماذج البحث الرسمية (مع الأوزان) المضافة:
- EdgeNeXt من (https://github.com/mmaaz60/EdgeNeXt)
- MobileViT-V2 من (https://github.com/apple/ml-cvnets)
- DeiT III (انتقام ViT) من (https://github.com/facebookresearch/deit)
- نماذجي الخاصة:
- تمت إضافة تعريفات
ResNetصغيرة بناءً على طلب، مع تكرار كتلة واحدة لكل من البنية الأساسية والبنية الضاغطة (resnet10 وresnet14) CspNetأُعيدت هندستها مع إعدادات dataclass، وخيار CrossStage3 (cs3) مبسّط. هذه التعريفات أقرب إلى تعريفات الهيكل الأساسي في YOLO-v5+.- مزيد من التعديلات على البنية ذاتية الانتباه (ViT) المتعلقة بالموضع النسبي. تم تدريب نموذجين من نوع
srelpos(الموضع النسبي المشترك)، ونموذج متوسط الحجم مع رمز فئة (class token). - أضف وضعًا بديلًا للتخفيض في EdgeNeXt ودرّب نموذجًا
small. أفضل من النموذج small الأصلي، لكنه ليس بالأوزان المدربة الجديدة الخاصة بهم USI.
- تمت إضافة تعريفات
- نتائج أوزان نماذجي الخاصة (جميعها تدريب على ImageNet-1k)
resnet10t- 66.5 @ 176, 68.3 @ 224resnet14t- 71.3 @ 176, 72.3 @ 224resnetaa50- 80.6 @ 224 , 81.6 @ 288darknet53- 80.0 @ 256, 80.5 @ 288cs3darknet_m- 77.0 @ 256, 77.6 @ 288cs3darknet_focus_m- 76.7 @ 256, 77.3 @ 288cs3darknet_l- 80.4 @ 256, 80.9 @ 288cs3darknet_focus_l- 80.3 @ 256, 80.9 @ 288vit_srelpos_small_patch16_224- 81.1 @ 224, 82.1 @ 320vit_srelpos_medium_patch16_224- 82.3 @ 224, 83.1 @ 320vit_relpos_small_patch16_cls_224- 82.6 @ 224, 83.6 @ 320edgnext_small_rw- 79.6 @ 224, 80.4 @ 320
- تم تدريب الأوزان أعلاه لـ
cs3وdarknetوvit_*relposعلى TPU بفضل برنامج TRC! أما الباقي فقد تم تدريبه على وحدات معالجة رسومية (GPU) كانت تزداد حرارتها بشكل مفرط. - تم التحقق من إصلاحات دعم Hugging Face Hub، ودليل الملاحظات التجريبي قيد الإعداد
- يمكن تحميل الأوزان/التكوينات المُسبقة التدريب من مصادر خارجية (مثل القرص المحلي) مع دعم تكيّف الرأس.
- إضافة دعم لتغيير امتدادات الصور التي يفحصها مجموعات البيانات/المحللات في
timm. راجع (https://github.com/rwightman/pytorch-image-models/pull/1274#issuecomment-1178303103) - تنفيذ LayerNorm الافتراضي لطبقة ConvNeXt المستخدم
F.layer_norm(x.permute(0, 2, 3, 1), ...).permute(0, 3, 1, 2)عبرLayerNorm2dفي جميع الحالات. أبطأ قليلاً من التنفيذ المخصص السابق على بعض الأجهزة (مثل Ampere مع CL)، لكن بشكل عام هناك عدد أقل من التراجعات عبر نطاقات أوسع من الأجهزة وإصدارات PyTorch. لا يزال التنفيذ السابق موجودًا باسم LayerNormExp2d في models/layers/norm.py- أبطأ قليلاً من التنفيذ المخصص السابق على بعض الأجهزة (مثل Ampere مع CL)، لكن بشكل عام، هناك عدد أقل من التراجعات عبر نطاقات أوسع من الأجهزة وإصدارات PyTorch.
- توجد النسخة السابقة من التنفيذ باسم
LayerNormExp2dفيmodels/layers/norm.py
- إصلاحات أخطاء متعددة
- جارٍ الاختبار حاليًا للإصدار 0.6.x القادم على PyPi
- لا يزال التدريب المسبق لنماذج LeViT الأكبر حجمًا قيد التطوير، إذ لا تتدرب بشكل جيد أو سهل دون التقطير. هل حان الوقت أخيرًا لإضافة دعم التقطير؟
- تدريب الأوزان على ImageNet-22k وضبطها الدقيق جارٍ، والعمل على دعم الأوزان المتعددة (ببطء) يتقدم بشكل بطيء (هناك عدد كبير جداً من الأوزان، آه) …
13 مايو 2022
- تمت إضافة نماذج Swin-V2 الرسمية وأوزانها من (https://github.com/microsoft/Swin-Transformer). تم تنظيفها لدعم torchscript.
- بعض إعادة الهيكلة لتنفيذ
timmالخاص بـ Swin-V2-CR، ومن المرجح أن أقوم بمزيد من التعديلات لجعل بعض الأجزاء أقرب إلى النسخة الرسمية، ثم أقرر ما إذا كان يجب دمج بعض الجوانب. - تجارب إضافية حول الموضع النسبي / التطبيع بعد الباقي في Vision Transformer (تم تدريبها جميعًا على TPU بفضل برنامج TRC)
vit_relpos_small_patch16_224- 81.5 @ 224، 82.5 @ 320 — موضع نسبي، مقياس طبقة، بدون رمز فئة، متوسط تجميعvit_relpos_medium_patch16_rpn_224- 82.3 @ 224، 83.1 @ 320 — موضع نسبي + تطبيع بعد التبقية، بدون رمز فئة، متوسط مجمّعvit_relpos_medium_patch16_224- 82.5 @ 224، 83.3 @ 320 — موضع نسبي، مقياس طبقة، بدون رمز فئة، متوسط تجميعvit_relpos_base_patch16_gapcls_224- 82.8 @ 224، 83.9 @ 320 — موضع نسبي، مقياس طبقة، رمز فئة، متوسط تجميع (عن طريق الخطأ)
- إحياء متغيّر نموذج ViT «المتوسط» ذي الأبعاد 512 ورؤوس 8 من جديد (بعد استخدامه في نموذج «صغير» ما قبل DeiT في أول تطبيق لـ ViT عام 2020)
- إضافة دعم لموقع ViT النسبي للتبديل بين التنفيذ الحالي وبعض الإضافات في التنفيذ الرسمي لـ Swin-V2 لتجارب مستقبلية
- تنفيذ Sequencer2D (https://arxiv.org/abs/2205.01972)، أُضيف عبر طلب دمج من المؤلف (https://github.com/okojoalg)
2 مايو 2022
- تجارب Vision Transformer بإضافة Relative Position (Swin-V2 log-coord) (
vision_transformer_relpos.py) و فروع Residual Post-Norm (من Swin-V2) (vision_transformer*.py)vit_relpos_base_patch32_plus_rpn_256- 79.5 @ 256، 80.6 @ 320 — موضع نسبي + عرض موسّع + تطبيع بعد التبقّي، بدون رمز فئة، متوسط مجمّعvit_relpos_base_patch16_224- 82.5 @ 224، 83.6 @ 320 — موضع نسبي، مقياس طبقة، بدون رمز فئة، متوسط تجميعvit_base_patch16_rpn_224- 82.3 @ 224 — موضع نسبي + تطبيع بعد التبقّي، بدون رمز فئة، متوسط تجميع
- إعادة هيكلة Vision Transformer لإزالة طبقة التمثيل التي كانت تُستخدم فقط في vit الأولية ونادراً ما تُستخدم منذ ذلك الحين مع عمليات التدريب المسبق الأحدث (مثل
How to Train Your ViT) - تدعم نماذج
vit_*إزالة رمز الفئة، واستخدام متوسط التجميع العام، واستخدام fc_norm (على غرار beit وmae).
22 أبريل 2022
- نماذج
timmمدعومة رسميًا الآن في fast.ai! في الوقت المناسب تمامًا لدورة التعلم العملي العميق الجديدة. تم تحديث رابط توثيقtimmdocsإلى timm.fast.ai. - تمت إضافة وزنين آخرين للنموذج في سلسلة التدريب على TPU . لا يزال بعض التدريب المسبق In22k قيد التنفيذ.
seresnext101d_32x8d- 83.69 @ 224, 84.35 @ 288seresnextaa101d_32x8d(مضاد للتشويش باستخدام AvgPool2d) - 83.85 عند 224، 84.57 عند 288
23 مارس 2022
- أضِف خيار
ParallelBlockوLayerScaleإلى نماذج vit الأساسية لدعم تكوينات النموذج في ثلاث أشياء يجب على الجميع معرفتها حول ViT - أوزان
convnext_tiny_hnf(مع تطبيع الرأس أولاً) تم تدريبها باستخدام وصفة A2 (أو ما يقاربها)، محققة دقة 82.2% في التصنيف الأول (top-1)، ويمكن تحسين الأداء بزيادة عدد الفترات (epochs).
21 مارس 2022
- دمج
norm_norm_norm. مهم من المرجح أن يؤدي هذا التحديث الخاص بالإصدار 0.6.x القادم إلى زعزعة استقرار الفرع الرئيسي لفترة من الوقت. يمكن استخدام الفرع0.5.xأو إصدار سابق من 0.5.x إذا كان الاستقرار مطلوبًا. - تحديث كبير للأوزان (تم تدريبها جميعًا على TPU) كما هو موضح في هذا الإصدار
regnety_040- 82.3 @ 224, 82.96 @ 288regnety_064- 83.0 @ 224, 83.65 @ 288regnety_080- 83.17 @ 224, 83.86 @ 288regnetv_040- 82.44 @ 224، 83.18 @ 288 (timm pre-act)regnetv_064- 83.1 @ 224، 83.71 @ 288 (timm pre-act)regnetz_040- 83.67 @ 256, 84.25 @ 320regnetz_040h- 83.77 @ 256، 84.5 @ 320 (مع طبقة fc إضافية في الرأس)resnetv2_50d_gn- 80.8 @ 224، 81.96 @ 288 (pre-act GroupNorm)resnetv2_50d_evos80.77 @ 224، 82.04 @ 288 (pre-act EvoNormS)regnetz_c16_evos- 81.9 @ 256، 82.64 @ 320 (EvoNormS)regnetz_d8_evos- 83.42 @ 256، 84.04 @ 320 (EvoNormS)xception41p- 82 @ 299 (timm pre-act)xception65- 83.17 @ 299xception65p- 83.14 @ 299 (timm pre-act)resnext101_64x4d- 82.46 @ 224, 83.16 @ 288seresnext101_32x8d- 83.57 @ 224, 84.270 @ 288resnetrs200- 83.85 @ 256, 84.44 @ 320
- تم إصلاح دعم HuggingFace hub مع وضع الأساس الأولي للسماح بمصادر بديلة لـ ‘config’ لتعريفات نماذج ما قبل التدريب وأوزانها (دعم الملفات المحلية العامة / عناوين URL البعيدة قريباً)
- تمت إضافة تنفيذ SwinTransformer-V2. قدّمه Christoph Reich. تجارب التدريب والتغييرات على النموذج من قِبَلي ما زالت جارية، لذا توقعوا كسور في التوافق.
- تمت إضافة نماذج / أوزان Swin-S3 (AutoFormerV2) من https://github.com/microsoft/Cream/tree/main/AutoFormerV2
- نماذج MobileViT مع أوزان مُعدَّلة من https://github.com/apple/ml-cvnets
- نماذج PoolFormer مع أوزان مُعدَّلة من https://github.com/sail-sg/poolformer
- نماذج VOLO مع أوزان مُعدَّلة من https://github.com/sail-sg/volo
- عمل كبير في تجريب طبقات تطبيع غير BatchNorm مثل EvoNorm وFilterResponseNorm وGroupNorm وغيرها
- تحسين دعم طبقات المعايير والدوال التنشيطية البديلة (‘NormAct’) التي أُضيفت إلى عدد من النماذج، لا سيما EfficientNet/MobileNetV3 وRegNet وXception المتماثل
- تمت إضافة دعم الالتفاف المجمّع إلى عائلة EfficientNet
- إضافة واجهة برمجة تطبيقات ‘مطابقة المجموعات’ إلى جميع النماذج للسماح بتجميع معاملات النموذج لتطبيق اضمحلال معدل التعلم ‘على مستوى الطبقات’، مع إضافة مقياس معدل التعلم إلى مجدول معدل التعلم
- تمت إضافة دعم نقطة التدرّج إلى العديد من النماذج
forward_head(x, pre_logits=False)دالة أُضيفت إلى جميع النماذج للسماح باستدعاءforward_featuresوforward_headبشكل منفصل- تحديث جميع نماذج vision transformer وvision MLP لتعيد ميزات غير مجمّعة / غير مختارة على مستوى الرموز من
forward_features، من أجل التوافق مع نماذج CNN، حيث تُطبَّق الآن عملية اختيار الرموز أو التجميع فيforward_head
2 فبراير 2022
- نشر Chris Hughes أمس على مدونته شرحًا شاملًا لمكتبة
timm. يستحق القراءة بلا شك. البدء مع نماذج الصور في PyTorch (timm): دليل للممارسين - أُعدّ حاليًا لدمج فرع
norm_norm_normإلى الفرع الرئيسي (الإصدار 0.6.x) خلال الأسبوع القادم تقريبًا. التغييرات أوسع من المعتاد وقد تُزعزع الاستقرار وتُسبب كسرًا في بعض استخدامات واجهة برمجة التطبيقات الخاصة بالنماذج (مع السعي لتحقيق توافق تام مع الإصدارات السابقة). لذا، احذر من الأمر pip install git+https://github.com/rwightman/pytorch-image-models installs! ستبقى إصدارات 0.5.x وفرع 0.5.x مستقرين مع اختيار بعض التعديلات (cherry pick) حتى تستقر الأمور. يُنصح بالالتزام بالتثبيت عبر pypi لفترة إذا كنت ترغب في الاستقرار.- التغييرات أوسع من المعتاد وقد تُسبب عدم استقرار أو كسر بعض استخدامات واجهات برمجة التطبيقات الخاصة بالنماذج (مع السعي لتحقيق توافق كامل مع الإصدارات السابقة). لذا، احذر من عمليات التثبيت عبر
pip install git+https://github.com/rwightman/pytorch-image-models! - ستبقى إصدارات
0.5.xوفرع0.5.xمستقرة مع اختيار بعض الإصلاحات (cherry pick) حتى تستقر الأمور. ننصح بالالتزام بتثبيت pypi لفترة إذا كنت ترغب في الاستقرار.
- التغييرات أوسع من المعتاد وقد تُسبب عدم استقرار أو كسر بعض استخدامات واجهات برمجة التطبيقات الخاصة بالنماذج (مع السعي لتحقيق توافق كامل مع الإصدارات السابقة). لذا، احذر من عمليات التثبيت عبر
14 يناير 2022
- الإصدار 0.5.4 مع الإصدار الذي سيتم رفعه إلى pypi. لقد مرّ وقت طويل منذ آخر تحديث على pypi، وسيتم دمج التغييرات الأكثر خطورة قريباً في الفرع الرئيسي main…
- إضافة نماذج ConvNeXT مع الأوزان من التنفيذ الرسمي (https://github.com/facebookresearch/ConvNeXt)، مع بعض التعديلات لتحسين الأداء، ومتوافقة مع ميزات timm
- جرّبت تدريب بعض النماذج الصغيرة (حوالي 1.8 إلى 3 ملايين معامل) / المُحسَّنة للهواتف المحمولة، بعضها جيد حتى الآن، والمزيد في الطريق…
mnasnet_small- 65.6 top-1mobilenetv2_050- 65.9lcnet_100/075/050- 72.1 / 68.8 / 63.1semnasnet_075- 73fbnetv3_b/d/g- 79.1 / 79.7 / 82.0
- نماذج TinyNet التي أضافها rsomani95
- تمت إضافة LCNet عبر بنية MobileNetV3