Buckets:
UNetMotionModel
تم تقديم نموذج UNet في الأصل بواسطة Ronneberger et al لتجزئة الصور الطبية الحيوية، لكنه يُستخدم أيضاً بشكل شائع في 🤗 Diffusers لأنه يُخرج صوراً بنفس حجم المدخلات. وهو أحد أهم مكونات نظام الانتشار لأنه ييسّر عملية الانتشار الفعلية. توجد عدة متغيرات لنموذج UNet في 🤗 Diffusers، اعتماداً على عدد أبعاده وعلى ما إذا كان نموذجاً شرطياً أم لا. هذا نموذج UNet ثنائي الأبعاد.
ملخص الورقة البحثية هو:
يوجد إجماع واسع على أن التدريب الناجح للشبكات العميقة يتطلب آلاف الأمثلة التدريبية الموسومة. في هذه الورقة، نقدم شبكة واستراتيجية تدريب تعتمدان على الاستخدام القوي لزيادة البيانات لاستخدام الأمثلة الموسومة المتاحة بكفاءة أكبر. تتكون البنية من مسار انكماشي لالتقاط السياق ومسار متوسع متماثل يمكّن من تحديد دقيق للمواقع. نُظهر أن مثل هذه الشبكة يمكن تدريبها من البداية إلى النهاية من عدد قليل جداً من الصور، وتتفوق على أفضل طريقة سابقة (شبكة تلافيفية بنافذة منزلقة) في تحدي ISBI لتجزئة الهياكل العصبية في المكدسات المجهرية الإلكترونية. وباستخدام نفس الشبكة المدرَّبة على صور المجهر الضوئي المنقول (تباين الطور وDIC)، فزنا بتحدي ISBI لتتبع الخلايا 2015 في هذه الفئات بفارق كبير. علاوة على ذلك، الشبكة سريعة. تستغرق تجزئة صورة 512x512 أقل من ثانية على وحدة معالجة رسومية حديثة. تتوفر التنفيذ الكامل (المبني على Caffe) والشبكات المدرَّبة على http://lmb.informatik.uni-freiburg.de/people/ronneber/u-net.
UNetMotionModel[[diffusers.UNetMotionModel]]
diffusers.UNetMotionModel[[diffusers.UNetMotionModel]]
diffusers.UNetMotionModel(sample_size: int | None = None, in_channels: int = 4, out_channels: int = 4, down_block_types: tuple[str, ...] = ('CrossAttnDownBlockMotion', 'CrossAttnDownBlockMotion', 'CrossAttnDownBlockMotion', 'DownBlockMotion'), up_block_types: tuple[str, ...] = ('UpBlockMotion', 'CrossAttnUpBlockMotion', 'CrossAttnUpBlockMotion', 'CrossAttnUpBlockMotion'), block_out_channels: tuple[int, ...] = (320, 640, 1280, 1280), layers_per_block: int | tuple[int] = 2, downsample_padding: int = 1, mid_block_scale_factor: float = 1, act_fn: str = 'silu', norm_num_groups: int = 32, norm_eps: float = 1e-05, cross_attention_dim: int = 1280, transformer_layers_per_block: int | tuple[int] | tuple[tuple] = 1, reverse_transformer_layers_per_block: int | tuple[int] | tuple[tuple] | None = None, temporal_transformer_layers_per_block: int | tuple[int] | tuple[tuple] = 1, reverse_temporal_transformer_layers_per_block: int | tuple[int] | tuple[tuple] | None = None, transformer_layers_per_mid_block: int | tuple[int] | None = None, temporal_transformer_layers_per_mid_block: int | tuple[int] | None = 1, use_linear_projection: bool = False, num_attention_heads: int | tuple[int, ...] = 8, motion_max_seq_length: int = 32, motion_num_attention_heads: int | tuple[int, ...] = 8, reverse_motion_num_attention_heads: int | tuple[int, ...] | tuple[tuple[int, ...], ...] | None = None, use_motion_mid_block: bool = True, mid_block_layers: int = 1, encoder_hid_dim: int | None = None, encoder_hid_dim_type: str | None = None, addition_embed_type: str | None = None, addition_time_embed_dim: int | None = None, projection_class_embeddings_input_dim: int | None = None, time_cond_proj_dim: int | None = None)
نموذج UNet ثنائي الأبعاد مشروط معدّل يستقبل عينة ضجيجية وحالة شرطية وخطوة زمنية ويعيد إخراجًا على شكل العينة.
يرث هذا النموذج من ModelMixin. راجع توثيق الفئة الأصلية لمعرفة طرقه العامة المُنفَّذة لجميع النماذج (مثل التنزيل أو الحفظ).
disable_freeu[[diffusers.UNetMotionModel.disable_freeu]]
disable_freeu()
يعطّل آلية FreeU.
enable_forward_chunking[[diffusers.UNetMotionModel.enable_forward_chunking]]
enable_forward_chunking(chunk_size: int | None = None, dim: int = 0)
المعاملات:
chunk_size (int, اختياري) : حجم الدفعة (chunk size) لطبقات التغذية الأمامية. إذا لم يُحدد، فسيتم تشغيل طبقة التغذية الأمامية بشكل فردي على كل متجه (tensor) ذي بُعد dim.
dim (int، اختياري، القيمة الافتراضية 0) : البُعد الذي يجب تقسيم عملية الحساب الأمامي (feed-forward) عليه. اختر بين dim=0 (الحزمة) أو dim=1 (طول التسلسل).
يحدد معالج الانتباه لاستخدام تقطيع الأمامي.
enable_freeu[[diffusers.UNetMotionModel.enable_freeu]]
enable_freeu(s1: float, s2: float, b1: float, b2: float)
المعاملات:
s1 (float) : عامل التدرّج للمرحلة 1 لتخفيف مساهمات ميزات التخطي. يتم ذلك للتخفيف من "تأثير الإفراط في التنعيم" في عملية إزالة الضوضاء المعزّزة.
s2 (float) : معامل التوسيع للمرحلة 2 لتخفيف مساهمات الميزات المتجاوزة. يتم ذلك للتخفيف من "تأثير الإفراط في التنعيم" في عملية إزالة الضوضاء المعززة.
b1 (float) : معامل التوسيع للمرحلة 1 لتضخيم مساهمات ميزات الهيكل الأساسي.
b2 (float) : معامل التوسيع للمرحلة 2 لتضخيم مساهمات ميزات الهيكل الأساسي.
يتيح آلية FreeU من https://huggingface.co/papers/2309.11497.
تمثل البادئات التي تلي معاملات التوسيع كتل المراحل التي تُطبَّق فيها.
يرجى الرجوع إلى المستودع الرسمي للاطلاع على مجموعات القيم التي يُعرف أنها تعمل بشكل جيد لأنابيب مختلفة مثل Stable Diffusion v1 وv2 وStable Diffusion XL.
forward[[diffusers.UNetMotionModel.forward]]
forward(sample: Tensor, timestep: typing.Union[torch.Tensor, float, int], encoder_hidden_states: Tensor, timestep_cond: typing.Optional[torch.Tensor] = None, attention_mask: typing.Optional[torch.Tensor] = None, cross_attention_kwargs: dict[str, typing.Any] | None = None, added_cond_kwargs: dict[str, torch.Tensor] | None = None, down_block_additional_residuals: tuple[torch.Tensor] | None = None, mid_block_additional_residual: typing.Optional[torch.Tensor] = None, return_dict: bool = True)
المعاملات:
sample (torch.Tensor) : المصفوفة المدخلة الضوضائية بالشكل التالي (batch, num_frames, channel, height, width.
timestep (torch.Tensor أو float أو int) : عدد خطوات الزمن لإزالة الضوضاء من مدخل.
encoder_hidden_states (torch.Tensor) : حالات المُشفِّر المخفية (encoder hidden states) ذات الشكل (batch, sequence_length, feature_dim).
timestep_cond : (torch.Tensor, اختياري، القيمة الافتراضية None): تضمينات شرطية لخطوة الزمن. إذا تم توفيرها، سيتم جمع التضمينات مع العينات المارة عبر طبقة self.time_embedding للحصول على تضمينات خطوة الزمن.
attention_mask (torch.Tensor، اختياري، القيمة الافتراضية None) : يُطبَّق قناع انتباه (attention mask) على شكل (batch, key_tokens) على encoder_hidden_states. إذا كانت القيمة 1 يُحافظ على القناع، وإلا إذا كانت 0 يُستبعد. يُحوَّل القناع إلى انحياز (bias) يضيف قيمًا سالبة كبيرة إلى درجات الانتباه المقابلة لرموز "الاستبعاد".
cross_attention_kwargs (dict، اختياري) : قاموس kwargs يُمرَّر إلى AttentionProcessor إذا تم تحديده، كما هو معرَّف تحت self.processor في diffusers.models.attention_processor.
added_cond_kwargs (dict، اختياري) : قاموس للتضمينات الإضافية (مثل تضمينات النص والزمن) المستخدمة لتكييف النموذج.
down_block_additional_residuals : (tuple من torch.Tensor، اختياري): مجموعة من الموترات التي إذا تم تحديدها تُضاف إلى بقايا كتل down unet.
mid_block_additional_residual : (torch.Tensor, اختياري): متجه يُضاف إلى الباقي (residual) في كتلة unet الوسطى إذا تم تحديده.
return_dict (bool، اختياري، القيمة الافتراضية True) : ما إذا كان يجب إرجاع UNetMotionOutput بدلاً من tuple عادي.
يعيد: UNetMotionOutput أو tuple
إذا كان return_dict صحيحًا، يُعاد UNetMotionOutput، وإلا يُعاد tuple يكون عنصره الأول هو متجه العينة.
طريقة UNetMotionModel الأمامية.
freeze_unet2d_params[[diffusers.UNetMotionModel.freeze_unet2d_params]]
freeze_unet2d_params()
Freeze أوزان UNet2DConditionModel فقط، واترك وحدات الحركة غير مجمّدة من أجل الضبط الدقيق.
fuse_qkv_projections[[diffusers.UNetMotionModel.fuse_qkv_projections]]
fuse_qkv_projections()
…
> هذه الواجهة البرمجية 🧪 تجريبية.
set_default_attn_processor[[diffusers.UNetMotionModel.set_default_attn_processor]]
set_default_attn_processor()
يعطّل معالجات الانتباه المخصصة ويضبط تطبيق الانتباه الافتراضي.
unfuse_qkv_projections[[diffusers.UNetMotionModel.unfuse_qkv_projections]]
unfuse_qkv_projections()
يعطّل إسقاط QKV المدمج إذا كان مفعّلًا.
> هذه الواجهة البرمجية 🧪 تجريبية.
UNet3DConditionOutput[[diffusers.models.unets.unet_3d_condition.UNet3DConditionOutput]]
diffusers.models.unets.unet_3d_condition.UNet3DConditionOutput[[diffusers.models.unets.unet_3d_condition.UNet3DConditionOutput]]
diffusers.models.unets.unet_3d_condition.UNet3DConditionOutput(sample: Tensor)
المعاملات:
sample (torch.Tensor من الشكل (batch_size, num_channels, num_frames, height, width)) : مخرجات الحالات المخفية المشروطة على مدخل encoder_hidden_states. مخرجات الطبقة الأخيرة من النموذج.
مخرجات UNet3DConditionModel.
Xet Storage Details
- Size:
- 13.2 kB
- Xet hash:
- 0aa79eee6f68ac987ef1ffe42b722a0bd371f55e42a90e0f4480cea20cd0f4a2
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.