مرجع ل ultralytics/utils/torch_utils.py
ملاحظه
هذا الملف متاح في https://github.com/ultralytics/ultralytics/ نقطة / الرئيسية /ultralytics/المرافق/torch_utils.py. إذا اكتشفت مشكلة ، فيرجى المساعدة في إصلاحها من خلال المساهمة في طلب 🛠️ سحب. شكرا لك 🙏!
ultralytics.utils.torch_utils.ModelEMA
تحديث المتوسط المتحرك الأسي (EMA) من https://github.com/rwightman/pytorch-نماذج الصور يحتفظ بمتوسط متحرك لكل شيء في state_dict النموذج (المعلمات والمخازن المؤقتة) للحصول على تفاصيل EMA انظر https://www.tensorflow.org/api_docs/python/tf/قطار/أسيمتحركمتوسط لتعطيل EMA ، قم بتعيين enabled
السمة إلى False
.
شفرة المصدر في ultralytics/utils/torch_utils.py
__init__(model, decay=0.9999, tau=2000, updates=0)
إنشاء EMA.
شفرة المصدر في ultralytics/utils/torch_utils.py
update(model)
تحديث معلمات EMA.
شفرة المصدر في ultralytics/utils/torch_utils.py
update_attr(model, include=(), exclude=('process_group', 'reducer'))
يقوم بتحديث السمات وحفظ النموذج المجرد مع إزالة المحسن.
ultralytics.utils.torch_utils.EarlyStopping
فئة التوقف المبكر التي تتوقف عن التدريب عند مرور عدد محدد من العصور دون تحسين.
شفرة المصدر في ultralytics/utils/torch_utils.py
__call__(epoch, fitness)
تحقق مما إذا كنت تريد التوقف عن التدريب.
البارامترات:
اسم | نوع | وصف | افتراضي |
---|---|---|---|
epoch |
int
|
العصر الحالي للتدريب |
مطلوب |
fitness |
float
|
قيمة اللياقة البدنية للعصر الحالي |
مطلوب |
ارجاع:
نوع | وصف |
---|---|
bool
|
صحيح إذا توقف التدريب ، خطأ خلاف ذلك |
شفرة المصدر في ultralytics/utils/torch_utils.py
__init__(patience=50)
تهيئة كائن التوقف المبكر.
البارامترات:
اسم | نوع | وصف | افتراضي |
---|---|---|---|
patience |
int
|
عدد الفترات التي يجب انتظارها بعد توقف اللياقة البدنية عن التحسن قبل التوقف. |
50
|
شفرة المصدر في ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.torch_distributed_zero_first(local_rank)
مصمم لجعل جميع العمليات في التدريب الموزع تنتظر كل local_master للقيام بشيء ما.
شفرة المصدر في ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.smart_inference_mode()
ينطبق torch.inference_mode() ديكور إذا torch>=1.9.0 آخر torch.no_grad() ديكور.
شفرة المصدر في ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.get_cpu_info()
إرجاع سلسلة تحتوي على معلومات وحدة المعالجة المركزية للنظام ، أي "Apple M2".
شفرة المصدر في ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.select_device(device='', batch=0, newline=False, verbose=True)
يختار المناسب PyTorch استنادا إلى الوسيطات المقدمة.
تأخذ الوظيفة سلسلة تحدد الجهاز أو ملف torchكائن .device وإرجاع ملف torchكائن الجهاز. تمثل الجهاز المحدد. تتحقق الوظيفة أيضا من صحة عدد الأجهزة المتاحة وترفع استثناء في حالة عدم توفر الجهاز (الأجهزة) المطلوبة.
البارامترات:
اسم | نوع | وصف | افتراضي |
---|---|---|---|
device |
str | device
|
سلسلة الجهاز أو torchكائن الجهاز. الخيارات هي "بلا" أو "وحدة المعالجة المركزية" أو "cuda" أو "0" أو "0،1،2،3". الإعدادات الافتراضية لسلسلة فارغة، والتي تحدد تلقائيا أول وحدة معالجة رسومات أو وحدة معالجة مركزية متوفرة في حالة عدم توفر وحدة معالجة الرسومات. |
''
|
batch |
int
|
حجم الدفعة المستخدمة في النموذج الخاص بك. الإعدادات الافتراضية هي 0. |
0
|
newline |
bool
|
إذا كان True يضيف سطرا جديدا في نهاية سلسلة السجل. الإعدادات الافتراضية إلى خطأ. |
False
|
verbose |
bool
|
إذا كان صحيحا، فسيقوم بتسجيل معلومات الجهاز. الإعدادات الافتراضية إلى صواب. |
True
|
ارجاع:
نوع | وصف |
---|---|
device
|
الجهاز المحدد. |
يثير:
نوع | وصف |
---|---|
ValueError
|
إذا كان الجهاز المحدد غير متوفر أو إذا لم يكن حجم الدفعة مضاعفا لعدد عند استخدام وحدات معالجة رسومات متعددة. |
امثله:
ملاحظه
لتعيين متغير البيئة "CUDA_VISIBLE_DEVICES" لتحديد وحدات معالجة الرسومات التي يجب استخدامها.
شفرة المصدر في ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.time_sync()
ultralytics.utils.torch_utils.fuse_conv_and_bn(conv, bn)
دمج طبقات Conv2d () و BatchNorm2d () https://tehnokv.com/posts/fusing-batchnorm-and-conv/.
شفرة المصدر في ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.fuse_deconv_and_bn(deconv, bn)
دمج طبقات ConvTranspose2d () و BatchNorm2d ().
شفرة المصدر في ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.model_info(model, detailed=False, verbose=True, imgsz=640)
معلومات النموذج.
قد يكون imgsz int أو قائمة ، أي imgsz = 640 أو imgsz = [640 ، 320].
شفرة المصدر في ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.get_num_params(model)
ultralytics.utils.torch_utils.get_num_gradients(model)
ultralytics.utils.torch_utils.model_info_for_loggers(trainer)
إرجاع معلومات النموذج مع معلومات النموذج المفيدة.
مثل
YOLOv8n معلومات لقطع الأشجار
شفرة المصدر في ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.get_flops(model, imgsz=640)
إرجاع أ YOLO نموذج التخبط.
شفرة المصدر في ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.get_flops_with_torch_profiler(model, imgsz=640)
حساب نماذج FLOPs النموذجية (بديل حزمة thop، ولكن أبطأ بـ 2-10 مرات للأسف).
شفرة المصدر في ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.initialize_weights(model)
تهيئة أوزان النموذج إلى قيم عشوائية.
شفرة المصدر في ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.scale_img(img, ratio=1.0, same_shape=False, gs=32)
تحجيم ومنصات صورة tensor من الشكل IMG (BS ، 3 ، Y ، X) بناء على نسبة معينة وحجم الشبكة GS ، اختياريا الاحتفاظ بالشكل الأصلي.
شفرة المصدر في ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.make_divisible(x, divisor)
ترجع أقرب x يقبل القسمة على المقسوم عليه.
ultralytics.utils.torch_utils.copy_attr(a, b, include=(), exclude=())
ينسخ السمات من الكائن "b" إلى الكائن "a" ، مع خيارات لتضمين / استبعاد سمات معينة.
شفرة المصدر في ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.get_latest_opset()
قم بإرجاع ثاني أحدث إصدار ONNX opset مدعوم من هذا الإصدار من PyTorch ، معدلاً حسب النضج.
شفرة المصدر في ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.intersect_dicts(da, db, exclude=())
إرجاع قاموس للمفاتيح المتقاطعة ذات الأشكال المطابقة، باستثناء المفاتيح "استبعاد"، باستخدام قيم da.
شفرة المصدر في ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.is_parallel(model)
ultralytics.utils.torch_utils.de_parallel(model)
ultralytics.utils.torch_utils.one_cycle(y1=0.0, y2=1.0, steps=100)
إرجاع دالة لامدا للمنحدر الجيبي من y1 إلى y2 https://arxiv.org/pdf/1812.01187.pdf.
ultralytics.utils.torch_utils.init_seeds(seed=0, deterministic=False)
تهيئة بذور مولد الأرقام العشوائية (RNG) https://pytorch.org/docs/stable/notes/randomness.html.
شفرة المصدر في ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.strip_optimizer(f='best.pt', s='')
قم بتجريد محسن من "f" لإنهاء التدريب ، اختياريا احفظ ك "s".
البارامترات:
اسم | نوع | وصف | افتراضي |
---|---|---|---|
f |
str
|
مسار الملف إلى النموذج لتجريد المحسن منه. الافتراضي هو "best.pt". |
'best.pt'
|
s |
str
|
مسار الملف لحفظ النموذج مع المحسن المجرد إلى. إذا لم يتم توفيره ، الكتابة فوق "f". |
''
|
ارجاع:
نوع | وصف |
---|---|
None
|
اي |
مثل
شفرة المصدر في ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.convert_optimizer_state_dict_to_fp16(state_dict)
يحول state_dict محسن معين إلى FP16 ، مع التركيز على مفتاح "الحالة" ل tensor التحويلات.
تهدف هذه الطريقة إلى تقليل حجم التخزين دون تغيير "param_groups" لأنها تحتوي على غيرtensor بيانات.
شفرة المصدر في ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.profile(input, ops, n=10, device=None)
Ultralytics ملف تعريف السرعة والذاكرة و FLOPs.