กระดาษ | โครงการ
นี่คือการใช้งานอย่างไม่เป็นทางการของ Palette: รูปแบบการแพร่กระจายของภาพกับภาพ โดย pytorch และส่วนใหญ่ได้รับการสืบทอดมาจากเวอร์ชันความละเอียดสูงของภาพความละเอียด-ความละเอียด-via-via-titerative-refinement เทมเพลตรหัสมาจากโครงการเมล็ดพันธุ์อื่นของฉัน: Distributed-Pytorch-Template
มีรายละเอียดการใช้งานบางอย่างพร้อมคำอธิบายกระดาษ:
Guided-Diffusion ซึ่งช่วยเพิ่มคุณภาพตัวอย่างDDPMPalette และฝังด้วยการเปลี่ยนแปลงเลียนแบบPalette ฉันพยายามทำตามงานให้เสร็จตามลำดับ:
การทดลองติดตามไม่แน่นอนเนื่องจากขาดเวลาและทรัพยากร GPU:
โมเดล DDPM ต้องการทรัพยากรการคำนวณที่สำคัญและเราได้สร้างตัวอย่างเพียงไม่กี่ตัวอย่างเพื่อตรวจสอบความคิดในบทความนี้
ผลลัพธ์ที่มี 200 ยุคและการทำซ้ำ 930K และตัวอย่าง 100 ตัวอย่างแรกในหน้ากากที่อยู่ตรงกลางและหน้ากากที่ผิดปกติ
![]() | ![]() |
|---|
ผลลัพธ์ที่มี 16 ยุคและการวนซ้ำ 660K และตัวอย่าง ที่เลือก หลายอย่างในหน้ากากศูนย์กลาง
![]() | ![]() | ![]() | ![]() |
|---|---|---|---|
![]() | ![]() | ![]() | ![]() |
ผลลัพธ์ที่มี 8 ยุคและการทำซ้ำ 330K และตัวอย่าง ที่เลือก หลายอย่างในการไม่ได้รับการคัดเลือก
![]() | ![]() |
|---|
| งาน | ชุดข้อมูล | EMA | fid (-) | คือ (+) |
|---|---|---|---|---|
| Inpainting ด้วยหน้ากากที่อยู่ตรงกลาง | celeba-hq | เท็จ | 5.7873 | 3.0705 |
| Inpainting ด้วยหน้ากากที่ผิดปกติ | celeba-hq | เท็จ | 5.4026 | 3.1221 |
pip install - r requirements . txt| ชุดข้อมูล | งาน | การทำซ้ำ | GPU ×วัน× BS | url |
|---|---|---|---|---|
| celeba-hq | การทาสี | 930K | 2 × 5 × 3 | Google Drive |
| สถานที่ 2 | การทาสี | 660K | 4 × 8 × 10 | Google Drive |
BS ระบุขนาดตัวอย่างต่อ GPU
เราได้รับส่วนใหญ่จาก Kaggle ซึ่งอาจแตกต่างจากเวอร์ชันอย่างเป็นทางการเล็กน้อยและคุณสามารถดาวน์โหลดได้จากเว็บไซต์ทางการ
เราใช้การแบ่งเริ่มต้นของชุดข้อมูลเหล่านี้สำหรับการฝึกอบรมและการประเมินผล รายการไฟล์ที่เราใช้สามารถพบได้ใน Celeba-HQ, Places2
หลังจากที่คุณเตรียมข้อมูลของตัวเองคุณต้องแก้ไขไฟล์กำหนดค่าที่เกี่ยวข้องเพื่อชี้ไปที่ข้อมูลของคุณ นำตัวอย่างต่อไปนี้:
" which_dataset " : { // import designated dataset using arguments
" name " : ["data.dataset", "InpaintDataset"], // import Dataset() class
" args " :{ // arguments to initialize dataset
" data_root " : " your data path " ,
" data_len " : -1,
" mask_mode " : " hybrid "
}
}, ตัวเลือกเพิ่มเติมเกี่ยวกับ Dataloader และ การแยกการตรวจสอบความถูกต้อง สามารถพบได้ในส่วนชุด datasets ของไฟล์กำหนดค่า
resume_state ของการกำหนดค่าไฟล์ไปยังไดเรกทอรีของจุดตรวจสอบก่อนหน้า นำตัวอย่างดังต่อไปนี้ไดเรกทอรีนี้มีสถานะการฝึกอบรมและแบบจำลองที่บันทึกไว้: " path " : { //set every part file path
" resume_state " : "experiments/inpainting_celebahq_220426_150122/checkpoint/100"
},load_everything ของ model.py ค่าเริ่มต้นคือ เครือข่าย ติดตามการตั้งค่าการสอนตัวเพิ่มประสิทธิภาพและโมเดลจะโหลดจาก 100 สถานะและ 100_Network.Pth ตามลำดับ netG_label = self . netG . __class__ . __name__
self . load_network ( network = self . netG , network_label = netG_label , strict = False ) python run . py - p train - c config / inpainting_celebahq . json เราทดสอบกระดูกสันหลัง U-NET ที่ใช้ใน SR3 และ Guided Diffusion และ Guided Diffusion One มีประสิทธิภาพที่แข็งแกร่งกว่าในการทดลองในปัจจุบันของเรา ตัวเลือกเพิ่มเติมเกี่ยวกับ กระดูกสันหลัง การสูญเสีย และ ตัวชี้วัด สามารถพบได้ในส่วนที่ส่วนหนึ่งของไฟล์กำหนด which_networks
python run . py - p test - c config / inpainting_celebahq . jsonสร้างสองโฟลเดอร์บันทึกภาพพื้นดินและภาพตัวอย่างและชื่อไฟล์ของพวกเขาจำเป็นต้องสอดคล้องกัน
เรียกใช้สคริปต์:
python eval . py - s [ ground image path ] - d [ sample image path ]งานของเราขึ้นอยู่กับผลงานทางทฤษฎีดังต่อไปนี้:
และเราได้รับประโยชน์มากมายจากโครงการต่อไปนี้: