Web Analytics

flow-matching

⭐ 89 stars Persian by keishihara

🌐 زبان

تطابق جریان در پای‌تورچ

این مخزن شامل یک پیاده‌سازی ساده از مقاله تطابق جریان برای مدل‌سازی مولد با استفاده از پای‌تورچ است.

مثال تطابق جریان دو‌بعدی

تصویر متحرک زیر نگاشت یک توزیع گاوسی منفرد به یک توزیع شطرنجی را نشان می‌دهد که میدان بردار به صورت تصویری نمایش داده شده است.

و این یک مثال دیگر از دیتاست moons است.

شروع به کار

مخزن را کلون کنید و محیط پایتون را راه‌اندازی کنید.

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

اطمینان حاصل کنید که Python 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/ ذخیره می‌شود. نقاط بازیابی مدل (checkpoints) گنجانده نشده‌اند چرا که با تنظیمات پیش‌فرض به راحتی قابل بازتولید هستند.

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 ---