تنفيذ PyTorch لـ Image GPT، استنادًا إلى التدريب المسبق الورقي من Pixels (Chen et al.) والتعليمات البرمجية المصاحبة له.
الإكمالات التي تم إنشاؤها بواسطة النموذج لنصف الصور من مجموعة الاختبار. العمود الأول هو الإدخال؛ العمود الأخير هو الصورة الأصلية
تم تدريب iGPT-S مسبقًا على CIFAR10. عمليات الإكمال سيئة إلى حد ما حيث تم تدريب النموذج فقط على CIFAR10، وليس على ImageNet بالكامل.
sklearn.cluster.MiniBatchKMeans
.) وفقًا لمنشور مدونتهم، تم تدريب النموذج الأكبر، iGPT-L (1.4 مليون معلمة)، لمدة 2500 V100 يوم. من خلال تقليل عدد رؤوس الانتباه وعدد الطبقات وحجم الإدخال بشكل كبير (مما يؤثر على حجم النموذج بشكل تربيعي)، يمكننا تدريب نموذجنا الخاص (26 كيلو معلمة) على Fashion-MNIST على NVIDIA 2070 واحد في أقل من ساعتين.
توجد بعض النماذج المدربة مسبقًا في دليل models
. قم بتشغيل ./download.sh
لتنزيل نموذج iGPT-S المُدرب مسبقًا cifar10
.
يتم تنزيل الصور، ويتم حساب النقط الوسطى باستخدام k -means مع مجموعات num_clusters
. تُستخدم هذه النقط الوسطى لتقدير حجم الصور قبل إدخالها في النموذج.
# options: mnist, fmnist, cifar10
python src/compute_centroids.py --dataset mnist --num_clusters=8
# creates data/_centroids.npy
ملاحظة: استخدم نفس num_clusters
مثل num_vocab
في النموذج الخاص بك .
يمكن تدريب النماذج باستخدام src/run.py
مع الأمر الفرعي train
.
يمكن تدريب النماذج مسبقًا عن طريق تحديد مجموعة البيانات وتكوين النموذج. يتوافق configs/s_gen.yml
مع iGPT-S من الورقة، ويعد configs/xxs_gen.yml
نموذجًا صغيرًا جدًا لتجربة مجموعات بيانات الألعاب ذات الحوسبة المحدودة.
python src/run.py --dataset mnist train configs/xxs_gen.yml
يمكن ضبط النماذج المدربة مسبقًا عن طريق تمرير المسار إلى نقطة التفتيش المدربة مسبقًا إلى --pretrained
، جنبًا إلى جنب مع ملف التكوين ومجموعة البيانات.
python src/run.py --dataset mnist train configs/xxs_clf.yml --pretrained=models/mnist_gen.ckpt `
يمكن إنشاء أشكال مثل تلك الموضحة أعلاه باستخدام صور عشوائية من مجموعة الاختبار:
# outputs to figure.png
python src/sample.py models/mnist_gen.ckpt
يمكن إنشاء صور متحركة مثل تلك التي تظهر في تغريداتي على النحو التالي:
# outputs to out.gif
python src/gif.py models/mnist_gen.ckpt