การใช้งาน PyTorch ของ Image GPT โดยอิงตามกระดาษ Generative Pretraining จาก Pixels (Chen et al.) และโค้ดที่แนบมา
ความสมบูรณ์ของภาพครึ่งภาพที่สร้างโดยแบบจำลองจากชุดทดสอบ คอลัมน์แรกเป็นอินพุต คอลัมน์สุดท้ายเป็นภาพต้นฉบับ
iGPT-S ฝึกอบรมล่วงหน้าใน CIFAR10 ความสมบูรณ์ค่อนข้างแย่เนื่องจากโมเดลได้รับการฝึกฝนบน CIFAR10 เท่านั้น ไม่ใช่ ImageNet ทั้งหมด
sklearn.cluster.MiniBatchKMeans
) ตามโพสต์บนบล็อกของพวกเขา iGPT-L รุ่นที่ใหญ่ที่สุด (พารามิเตอร์ 1.4 M) ได้รับการฝึกฝนเป็นเวลา 2,500 V100 ต่อวัน ด้วยการลดจำนวนความสนใจ จำนวนเลเยอร์ และขนาดอินพุตลงอย่างมาก (ซึ่งส่งผลต่อขนาดโมเดลเป็นกำลังสอง) เราจึงสามารถฝึกฝนโมเดลของเราเอง (พารามิเตอร์ 26 K) บน Fashion-MNIST บน NVIDIA 2070 ตัวเดียวได้ในเวลาน้อยกว่า 2 ชั่วโมง
โมเดลที่ได้รับการฝึกล่วงหน้าบางโมเดลจะอยู่ในไดเร็กทอรี 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
Gif แบบที่เห็นในทวีตของฉันสามารถทำได้ดังนี้:
# outputs to out.gif
python src/gif.py models/mnist_gen.ckpt