Web Analytics

flow-matching

⭐ 89 stars Arabic by keishihara

🌐 اللغة

مطابقة التدفق في بايتورتش

يحتوي هذا المستودع على تنفيذ بسيط في بايتورتش لورقة البحث مطابقة التدفق للنمذجة التوليدية.

مثال مطابقة تدفق ثنائي الأبعاد

توضح الصورة المتحركة أدناه تحويل توزيع غاوسي أحادي إلى توزيع لوحة الشطرنج، مع تصوير حقل المتجهات.

وهنا مثال آخر لمجموعة بيانات الأقمار (moons).

البدء

قم باستنساخ المستودع وإعداد بيئة بايثون.

git clone https://github.com/keishihara/flow-matching.git
cd flow-matching

تأكد من تثبيت بايثون 3.12+ لديك. ثبّت uv:

curl -LsSf https://astral.sh/uv/install.sh | sh

ثم قم بإعداد البيئة:

uv sync

المطابقة الشرطية للتدفق [Lipman+ 2023]

هذا هو التنفيذ الأصلي لورقة CFM [1]. تم تكييف بعض مكونات الشيفرة من [2] و [3].

مجموعات بيانات الألعاب ثنائية الأبعاد

يمكنك تدريب نماذج CFM على مجموعات بيانات تركيبية ثنائية الأبعاد مثل checkerboard و moons. حدد اسم مجموعة البيانات باستخدام خيار --dataset. معلمات التدريب محددة مسبقًا في البرنامج النصي، وتخزين تصورات نتائج التدريب في مجلد outputs/. نقاط التحقق للنموذج غير مضمنة حيث يمكن إعادة إنتاجها بسهولة باستخدام الإعدادات الافتراضية.

uv run scripts/train_flow_matching_2d.py --dataset checkerboard
يمكن الآن العثور على حقول المتجهات والعينات المُولَّدة، مثل تلك المعروضة كصور GIF في أعلى ملف README هذا، في دليل outputs/cfm/.

مجموعات بيانات الصور

يمكنك أيضًا تدريب نماذج CFM المشروطة بالفئة على مجموعات بيانات تصنيف الصور الشائعة. سيتم تخزين كل من العينات المُولَّدة ونقاط تحقق النموذج في دليل outputs/cfm. للحصول على قائمة مفصلة بمعلمات التدريب، شغّل الأمر uv run scripts/train_flow_matching_on_image.py --help.

لتدريب نموذج CFM مشروط بالفئة على مجموعة بيانات MNIST، شغّل الأمر:

uv run scripts/train_flow_matching_on_image.py --do_train --dataset mnist

بعد الانتهاء من التدريب، يمكنك الآن إنشاء عينات باستخدام:

uv run scripts/train_flow_matching_on_image.py --do_sample --dataset mnist
الآن، يجب أن تكون قادرًا على رؤية العينات المولدة في دليل outputs/cfm/mnist/.

التدفق المصحح [Liu+ 2023]

هذا هو تنفيذ نموذج Reflow (وبشكل محدد 2-Rectified Flow) من ورقة التدفق المصحح [2].

بيانات اصطناعية ثنائية الأبعاد

قمنا بتنفيذ Reflow على مجموعات بيانات اصطناعية ثنائية الأبعاد، تمامًا كما في CFM. لتدريب reflow، يجب عليك تحديد نقاط تحقق CFM المدربة مسبقًا لأن reflow هو نموذج تقطير.

على سبيل المثال، لتدريب مجموعة بيانات checkerboard باستخدام نقطة تحقق CFM مدربة مسبقًا:

uv run scripts/train_reflow_2d.py --dataset checkerboard

يتم حفظ نتائج التدريب، بما في ذلك تصورات الحقل الاتجاهي والعينات المُنشأة، ضمن مجلد outputs/reflow/.

مقارنة عملية أخذ العينات بين CFM و Reflow

لمقارنة CFM و Reflow على مجموعات البيانات ثنائية الأبعاد، قم بتشغيل:

uv run scripts/plot_comparison_2d.py --dataset checkerboard
يمكن العثور على ملفات GIF الناتجة ضمن مجلد outputs/comparisons/. فيما يلي مثال لمقارنة بين الطريقتين في مجموعة بيانات checkerboard:

المراجع

--- Tranlated By Open Ai Tx | Last indexed: 2026-01-19 ---