سجل الفئة:
 """سجل يوفر الاسم -> تعيين الكائنات، للدعم
 وحدات مخصصة.

 لإنشاء سجل (على سبيل المثال السجل الأساسي):

 .. كتلة الكود:: python

 BACKBONE\_REGISTRY = السجل('BACKBONE')

 لتسجيل كائن:

 .. كتلة الكود:: python

 @BACKBONE\_REGISTRY.register()
 فئة MyBackbone (nn.Module):
 ...

 أو:

 .. كتلة الكود:: python

 BACKBONE\_REGISTRY.register(MyBackbone)
 """

 تعريف \_\_init\_\_(النفس، الاسم):
 الذات.\_الاسم = الاسم
 self.\_obj\_map = dict()

 def \_do\_register(self, name, obj, force=False):
 إذا كان الاسم في حد ذاته.\_obj\_map وليس فرضًا:
 رفع خطأ المفتاح(
 'الكائن المسمى "{}" كان موجودًا بالفعل'
 'مسجل في التسجيل "{}"'.format(name, self.\_name)
 )

 self.\_obj\_map[name] = obj

 سجل Def (self، obj=None، force=False):
 إذا كان obj بلا:
 #يستخدم كديكور
 غلاف التعريف (fn\_or\_class):
 الاسم = fn\_or\_class.\_\_name\_\_
 self.\_do\_register(name, fn\_or\_class, force=force)
 إرجاع fn\_or\_class

 غلاف العودة

 # يستخدم لاستدعاء دالة
 الاسم = الكائن.\_\_الاسم\_\_
 self.\_do\_register(name, obj, force=force)

 الحصول على (النفس، الاسم):
 إذا لم يكن الاسم في حد ذاته.\_obj\_map:
 رفع خطأ المفتاح(
 'اسم الكائن "{}" غير موجود'
 "في التسجيل "{}"".تنسيق (اسم، ذاتي.\_اسم)
 )

 إرجاع الذات.\_obj\_map[name]

 تم إلغاء التسجيل\_الأسماء(الذاتية):
 قائمة الإرجاع (self.\_obj\_map.keys())
شكرا لك
{"source": "ewof/sharegpt-instruct-unfiltered-deduped", "kind": "human", "evolved_from": null}