รูปภาพ: คนเหล่านี้ไม่มีอยู่จริง - พวกเขาสร้างขึ้นโดยเครื่องกำเนิดของเราที่ช่วยให้สามารถควบคุมด้านต่างๆ ของภาพได้
พื้นที่เก็บข้อมูลนี้มีการใช้งาน TensorFlow อย่างเป็นทางการของเอกสารต่อไปนี้:
สถาปัตยกรรมตัวสร้างตามสไตล์สำหรับเครือข่ายปฏิปักษ์ทั่วไป
เทโร การ์ราส (วิเดีย), ซามูลี เลน (วิเดีย), ติโม ไอลา (วิเดีย)
https://arxiv.org/abs/1812.04948บทคัดย่อ: เราเสนอสถาปัตยกรรมตัวสร้างทางเลือกสำหรับเครือข่ายปฏิปักษ์เชิงกำเนิด โดยยืมมาจากวรรณกรรมการถ่ายโอนรูปแบบ สถาปัตยกรรมใหม่นำไปสู่การแยกคุณลักษณะระดับสูงที่เรียนรู้โดยอัตโนมัติและไม่ได้รับการควบคุมดูแล (เช่น ท่าทางและตัวตนเมื่อฝึกบนใบหน้ามนุษย์) และการเปลี่ยนแปลงสุ่มในภาพที่สร้างขึ้น (เช่น กระ ผม) และช่วยให้ใช้งานง่าย ปรับขนาด การควบคุมการสังเคราะห์โดยเฉพาะ เครื่องกำเนิดไฟฟ้าใหม่ปรับปรุงความล้ำสมัยในแง่ของตัวชี้วัดคุณภาพการกระจายแบบดั้งเดิม นำไปสู่คุณสมบัติการแก้ไขที่ดีขึ้นอย่างเห็นได้ชัด และยังแยกปัจจัยที่แฝงอยู่ของการแปรผันได้ดีขึ้นอีกด้วย เพื่อหาปริมาณคุณภาพการประมาณค่าและการแยกส่วน เราขอเสนอวิธีการอัตโนมัติใหม่สองวิธีที่สามารถใช้ได้กับสถาปัตยกรรมเครื่องกำเนิดไฟฟ้าใดๆ สุดท้ายนี้ เราขอแนะนำชุดข้อมูลใบหน้ามนุษย์ใหม่ที่หลากหลายและมีคุณภาพสูง
สำหรับการสอบถามข้อมูลทางธุรกิจ โปรดเยี่ยมชมเว็บไซต์ของเราและส่งแบบฟอร์ม: NVIDIA Research Licensing
★★★ ใหม่: StyleGAN2-ADA-PyTorch พร้อมใช้งานแล้ว ดูรายการเวอร์ชันทั้งหมดได้ที่นี่ ★★★
คุณสามารถดูเนื้อหาที่เกี่ยวข้องกับเอกสารของเราได้ตามลิงก์ต่อไปนี้:
บทความ: https://arxiv.org/abs/1812.04948
วิดีโอ: https://youtu.be/kSLJriaOumA
รหัส: https://github.com/NVlabs/stylegan
FFHQ: https://github.com/NVlabs/ffhq-dataset
เนื้อหาเพิ่มเติมสามารถพบได้ใน Google Drive:
เส้นทาง | คำอธิบาย |
---|---|
สไตล์GAN | โฟลเดอร์หลัก |
├ stylegan-paper.pdf | PDF กระดาษเวอร์ชันคุณภาพสูง |
├ stylegan-video.mp4 | วิดีโอผลลัพธ์เวอร์ชันคุณภาพสูง |
├ ภาพ | ภาพตัวอย่างที่สร้างโดยใช้เครื่องกำเนิดของเรา |
│ ├ ตัวแทนรูปภาพ | รูปภาพคุณภาพสูงเพื่อใช้ในบทความ บล็อกโพสต์ ฯลฯ |
│ └ รูปภาพที่สร้าง 100,000 ภาพ | สร้างรูปภาพ 100,000 ภาพสำหรับการตัดทอนจำนวนต่างๆ |
│ ├ ffhq-1024x1024 | สร้างโดยใช้ชุดข้อมูล Flickr-Faces-HQ ที่ 1024×1024 |
│ ├ ห้องนอน-256x256 | สร้างโดยใช้ชุดข้อมูล LSUN Bedroom ที่ 256×256 |
│ ├ รถยนต์-512x384 | สร้างโดยใช้ชุดข้อมูล LSUN Car ที่ 512×384 |
│ └ แมว-256x256 | สร้างโดยใช้ชุดข้อมูล LSUN Cat ที่ 256×256 |
├ วิดีโอ | วิดีโอตัวอย่างที่ผลิตโดยใช้เครื่องกำเนิดของเรา |
│ └ คลิปวิดีโอคุณภาพสูง | แต่ละส่วนของวิดีโอผลลัพธ์เป็น MP4 คุณภาพสูง |
├ ffhq-ชุดข้อมูล | ข้อมูลดิบสำหรับชุดข้อมูล Flickr-Faces-HQ |
└ เครือข่าย | เครือข่ายที่ได้รับการฝึกอบรมล่วงหน้าเป็นอินสแตนซ์ดองของ dnnlib.tflib.Network |
├ stylegan-ffhq-1024x1024.pkl | StyleGAN ฝึกฝนด้วยชุดข้อมูล Flickr-Faces-HQ ที่ 1024×1024 |
├ stylegan-celebahq-1024x1024.pkl | StyleGAN ฝึกฝนกับชุดข้อมูล CelebA-HQ ที่ 1024×1024 |
├ สไตล์แกนห้องนอน-256x256.pkl | StyleGAN ฝึกฝนกับชุดข้อมูล LSUN Bedroom ที่ 256×256 |
├ stylegan-cars-512x384.pkl | StyleGAN ฝึกฝนกับชุดข้อมูล LSUN Car ที่ 512×384 |
├ stylegan-cats-256x256.pkl | StyleGAN ฝึกฝนกับชุดข้อมูล LSUN Cat ที่ 256×256 |
└ เมตริก | เครือข่ายเสริมสำหรับตัวชี้วัดคุณภาพและการแยกส่วน |
├ inception_v3_features.pkl | ตัวแยกประเภท Inception-v3 มาตรฐานที่ส่งออกเวกเตอร์ฟีเจอร์ดิบ |
├ vgg16_zhang_perceptual.pkl | ตัวชี้วัด LPIPS มาตรฐานเพื่อประเมินความคล้ายคลึงกันในการรับรู้ |
├ celebahq-ลักษณนาม-00-male.pkl | ตัวแยกประเภทไบนารีที่ได้รับการฝึกอบรมให้ตรวจจับคุณลักษณะเดียวของ CelebA-HQ |
โปรดดูรายการไฟล์สำหรับเครือข่ายที่เหลือ |
เนื้อหาทั้งหมด ยกเว้นชุดข้อมูล Flickr-Faces-HQ จัดทำขึ้นภายใต้ใบอนุญาต Creative Commons BY-NC 4.0 โดย NVIDIA Corporation คุณสามารถ ใช้ แจกจ่าย และปรับเปลี่ยน เนื้อหาเพื่อ วัตถุประสงค์ที่ไม่ใช่เชิงพาณิชย์ ตราบใดที่คุณให้เครดิตที่เหมาะสมโดย การอ้างอิงเอกสารของเรา และ ระบุการเปลี่ยนแปลงใดๆ ที่คุณได้ทำ
สำหรับข้อมูลใบอนุญาตเกี่ยวกับชุดข้อมูล FFHQ โปรดดูที่พื้นที่เก็บข้อมูล Flickr-Faces-HQ
inception_v3_features.pkl
และ inception_v3_softmax.pkl
มาจากเครือข่าย Inception-v3 ที่ได้รับการฝึกอบรมล่วงหน้าโดย Christian Szegedy, Vincent Vanhoucke, Sergey Ioffe, Jonathon Shlens และ Zbigniew Wojna เดิมเครือข่ายนี้แชร์ภายใต้ลิขสิทธิ์ Apache 2.0 บนพื้นที่เก็บข้อมูล TensorFlow Models
vgg16.pkl
และ vgg16_zhang_perceptual.pkl
มาจากเครือข่าย VGG-16 ที่ได้รับการฝึกอบรมล่วงหน้าโดย Karen Simonyan และ Andrew Zisserman เดิมเครือข่ายนี้แชร์ภายใต้ใบอนุญาต Creative Commons BY 4.0 บนหน้าโครงการ Very Deep Convolutional Networks for Large-Scale Visual Recognition
vgg16_zhang_perceptual.pkl
ได้มาจากตุ้มน้ำหนัก LPIPS ที่ได้รับการฝึกล่วงหน้าโดย Richard Zhang, Phillip Isola, Alexei A. Efros, Eli Shechtman และ Oliver Wang เดิมน้ำหนักถูกแชร์ภายใต้สิทธิ์การใช้งาน "แบบง่าย" ของ BSD 2-Clause บนพื้นที่เก็บข้อมูล PerceptualSimilarity
รองรับทั้ง Linux และ Windows แต่เราขอแนะนำ Linux อย่างยิ่งด้วยเหตุผลด้านประสิทธิภาพและความเข้ากันได้
การติดตั้ง Python 3.6 64 บิต เราขอแนะนำ Anaconda3 ที่มีหมายเลข 1.14.3 หรือใหม่กว่า
TensorFlow 1.10.0 หรือใหม่กว่าพร้อมรองรับ GPU
NVIDIA GPU ระดับไฮเอนด์หนึ่งตัวขึ้นไปที่มี DRAM อย่างน้อย 11GB เราขอแนะนำ NVIDIA DGX-1 พร้อม GPU Tesla V100 จำนวน 8 ตัว
ไดรเวอร์ NVIDIA 391.35 หรือใหม่กว่า, ชุดเครื่องมือ CUDA 9.0 หรือใหม่กว่า, cuDNN 7.3.1 หรือใหม่กว่า
ตัวอย่างขั้นต่ำของการใช้ตัวสร้าง StyleGAN ที่ผ่านการฝึกอบรมมาแล้วมีอยู่ใน pretrained_example.py เมื่อดำเนินการ สคริปต์จะดาวน์โหลดตัวสร้าง StyleGAN ที่ได้รับการฝึกอบรมล่วงหน้าจาก Google Drive และใช้เพื่อสร้างรูปภาพ:
> python pretrained_example.py Downloading https://drive.google.com/uc?id=1MEGjdvVpUsu1jB4zrXZN7Y4kBBOzizDQ .... done Gs Params OutputShape WeightShape --- --- --- --- latents_in - (?, 512) - ... images_out - (?, 3, 1024, 1024) - --- --- --- --- Total 26219627 > ls results example.png # https://drive.google.com/uc?id=1UDLT_zb-rof9kKH0GwiJW_bS9MoZi8oP
ตัวอย่างขั้นสูงเพิ่มเติมมีให้ใน Generate_figures.py สคริปต์สร้างตัวเลขจากรายงานของเราเพื่อแสดงให้เห็นถึงการผสมผสานสไตล์ การป้อนสัญญาณรบกวน และการตัดทอน:
> python generate_figures.py results/figure02-uncurated-ffhq.png # https://drive.google.com/uc?id=1U3r1xgcD7o-Fd0SBRpq8PXYajm7_30cu results/figure03-style-mixing.png # https://drive.google.com/uc?id=1U-nlMDtpnf1RcYkaFQtbh5oxnhA97hy6 results/figure04-noise-detail.png # https://drive.google.com/uc?id=1UX3m39u_DTU6eLnEW6MqGzbwPFt2R9cG results/figure05-noise-components.png # https://drive.google.com/uc?id=1UQKPcvYVeWMRccGMbs2pPD9PVv1QDyp_ results/figure08-truncation-trick.png # https://drive.google.com/uc?id=1ULea0C12zGlxdDQFNLXOWZCHi3QNfk_v results/figure10-uncurated-bedrooms.png # https://drive.google.com/uc?id=1UEBnms1XMfj78OHj3_cx80mUf_m9DUJr results/figure11-uncurated-cars.png # https://drive.google.com/uc?id=1UO-4JtAs64Kun5vIj10UXqAJ1d5Ir1Ke results/figure12-uncurated-cats.png # https://drive.google.com/uc?id=1USnJc14prlu3QAYxstrtlfXC9sDWPA-W
เครือข่ายที่ได้รับการฝึกอบรมล่วงหน้าจะถูกจัดเก็บเป็นไฟล์ดองมาตรฐานบน Google Drive:
# Load pre-trained network. url = 'https://drive.google.com/uc?id=1MEGjdvVpUsu1jB4zrXZN7Y4kBBOzizDQ' # karras2019stylegan-ffhq-1024x1024.pkl with dnnlib.util.open_url(url, cache_dir=config.cache_dir) as f: _G, _D, Gs = pickle.load(f) # _G = Instantaneous snapshot of the generator. Mainly useful for resuming a previous training run. # _D = Instantaneous snapshot of the discriminator. Mainly useful for resuming a previous training run. # Gs = Long-term average of the generator. Yields higher-quality results than the instantaneous snapshot.
โค้ดด้านบนดาวน์โหลดไฟล์และคลายไฟล์เพื่อให้ได้ dnnlib.tflib.Network 3 อินสแตนซ์ ในการสร้างภาพ โดยทั่วไปคุณจะต้องใช้ Gs
ซึ่งอีก 2 เครือข่ายมีไว้เพื่อความสมบูรณ์ เพื่อให้ pickle.load()
ทำงานได้ คุณจะต้องมีไดเร็กทอรีต้นทาง dnnlib
ใน PYTHONPATH และ tf.Session
ที่ตั้งเป็นค่าเริ่มต้น เซสชันสามารถเริ่มต้นได้โดยการเรียก dnnlib.tflib.init_tf()
มีสามวิธีในการใช้เครื่องกำเนิดไฟฟ้าที่ผ่านการฝึกอบรมมาแล้ว:
ใช้ Gs.run()
สำหรับการดำเนินการในโหมดทันทีโดยที่อินพุตและเอาต์พุตเป็นอาร์เรย์จำนวนมาก:
# Pick latent vector. rnd = np.random.RandomState(5) latents = rnd.randn(1, Gs.input_shape[1]) # Generate image. fmt = dict(func=tflib.convert_images_to_uint8, nchw_to_nhwc=True) images = Gs.run(latents, None, truncation_psi=0.7, randomize_noise=True, output_transform=fmt)
อาร์กิวเมนต์แรกคือชุดของเวกเตอร์รูปร่างแฝง [num, 512]
อาร์กิวเมนต์ที่สองสงวนไว้สำหรับป้ายกำกับคลาส (ไม่ได้ใช้โดย StyleGAN) อาร์กิวเมนต์คำหลักที่เหลือเป็นทางเลือกและสามารถใช้เพื่อแก้ไขการดำเนินการเพิ่มเติม (ดูด้านล่าง) เอาต์พุตคือชุดรูปภาพซึ่งมีรูปแบบที่กำหนดโดยอาร์กิวเมนต์ output_transform
ใช้ Gs.get_output_for()
เพื่อรวมตัวสร้างเป็นส่วนหนึ่งของนิพจน์ TensorFlow ที่ใหญ่กว่า:
latents = tf.random_normal([self.minibatch_per_gpu] + Gs_clone.input_shape[1:]) images = Gs_clone.get_output_for(latents, None, is_validation=True, randomize_noise=True) images = tflib.convert_images_to_uint8(images) result_expr.append(inception_clone.get_output_for(images))
โค้ดด้านบนนี้มาจาก metrics/frechet_inception_distance.py โดยจะสร้างชุดรูปภาพแบบสุ่มและป้อนรูปภาพเหล่านั้นโดยตรงไปยังเครือข่าย Inception-v3 โดยไม่ต้องแปลงข้อมูลเป็นอาร์เรย์จำนวนมากในระหว่างนั้น
ค้นหา Gs.components.mapping
และ Gs.components.synthesis
เพื่อเข้าถึงแต่ละเครือข่ายย่อยของเครื่องกำเนิดไฟฟ้า เช่นเดียวกับ Gs
เครือข่ายย่อยจะแสดงเป็นอินสแตนซ์อิสระของ dnnlib.tflib.Network:
src_latents = np.stack(np.random.RandomState(seed).randn(Gs.input_shape[1]) for seed in src_seeds) src_dlatents = Gs.components.mapping.run(src_latents, None) # [seed, layer, component] src_images = Gs.components.synthesis.run(src_dlatents, randomize_noise=False, **synthesis_kwargs)
รหัสข้างต้นมาจาก Generate_figures.py ขั้นแรกมันจะแปลงชุดของเวกเตอร์แฝงไปเป็นสเปซ W ระดับกลางโดยใช้เครือข่ายการทำแผนที่ จากนั้นจึงเปลี่ยนเวกเตอร์เหล่านี้เป็นชุดของภาพโดยใช้เครือข่ายการสังเคราะห์ อาร์เรย์ dlatents
จะจัดเก็บสำเนาของเวกเตอร์ w เดียวกันแยกต่างหากสำหรับแต่ละเลเยอร์ของเครือข่ายการสังเคราะห์ เพื่ออำนวยความสะดวกในการผสมสไตล์
รายละเอียดที่แน่นอนของตัวสร้างถูกกำหนดไว้ใน training/networks_stylegan.py (ดู G_style
, G_mapping
และ G_synthesis
) อาร์กิวเมนต์ของคำหลักต่อไปนี้สามารถระบุได้เพื่อแก้ไขพฤติกรรมเมื่อเรียก run()
และ get_output_for()
:
truncation_psi
และ truncation_cutoff
ควบคุมเคล็ดลับการตัดทอนที่ดำเนินการตามค่าเริ่มต้นเมื่อใช้ Gs
(ψ=0.7, cutoff=8) สามารถปิดใช้งานได้โดยการตั้งค่า truncation_psi=1
หรือ is_validation=True
และสามารถปรับปรุงคุณภาพของภาพเพิ่มเติมได้โดยมีต้นทุนการเปลี่ยนแปลงโดยการตั้งค่า เช่น truncation_psi=0.5
โปรดทราบว่าการตัดทอนจะถูกปิดใช้งานเสมอเมื่อใช้เครือข่ายย่อยโดยตรง ค่า เฉลี่ยที่จำเป็นในการดำเนินการเคล็ดลับการตัดทอนด้วยตนเองสามารถค้นหาได้โดยใช้ Gs.get_var('dlatent_avg')
randomize_noise
กำหนดว่าจะใช้การสุ่มอินพุตสัญญาณรบกวนสำหรับแต่ละภาพที่สร้างขึ้น ( True
, ค่าเริ่มต้น) หรือไม่ หรือจะใช้ค่าสัญญาณรบกวนเฉพาะสำหรับมินิแบทช์ทั้งหมด ( False
) ค่าเฉพาะสามารถเข้าถึงได้ผ่านอินสแตนซ์ tf.Variable
ที่พบโดยใช้ [var for name, var in Gs.components.synthesis.vars.items() if name.startswith('noise')]
เมื่อใช้เครือข่ายการแมปโดยตรง คุณสามารถระบุ dlatent_broadcast=None
เพื่อปิดใช้งานการทำซ้ำอัตโนมัติของ dlatents
บนเลเยอร์ของเครือข่ายการสังเคราะห์
ประสิทธิภาพรันไทม์สามารถปรับได้อย่างละเอียดผ่าน structure='fixed'
และ dtype='float16'
แบบแรกปิดใช้งานการสนับสนุนสำหรับการเติบโตแบบก้าวหน้า ซึ่งไม่จำเป็นสำหรับเครื่องกำเนิดไฟฟ้าที่ได้รับการฝึกอบรมมาเป็นอย่างดี และแบบหลังทำการคำนวณทั้งหมดโดยใช้เลขคณิตจุดลอยตัวที่มีความแม่นยำเพียงครึ่งเดียว
สคริปต์การฝึกอบรมและการประเมินผลทำงานบนชุดข้อมูลที่จัดเก็บเป็น TFRecords แบบหลายความละเอียด ชุดข้อมูลแต่ละชุดจะแสดงโดยไดเร็กทอรีที่มีข้อมูลรูปภาพเดียวกันในความละเอียดหลายระดับเพื่อให้สามารถสตรีมได้อย่างมีประสิทธิภาพ มีไฟล์ *.tfrecords แยกต่างหากสำหรับแต่ละความละเอียด และหากชุดข้อมูลมีป้ายกำกับ ก็จะถูกจัดเก็บไว้ในไฟล์แยกต่างหากเช่นกัน ตามค่าเริ่มต้น สคริปต์คาดว่าจะค้นหาชุดข้อมูลที่ datasets/<NAME>/<NAME>-<RESOLUTION>.tfrecords
ไดเร็กทอรีสามารถเปลี่ยนแปลงได้โดยการแก้ไข config.py:
result_dir = 'results' data_dir = 'datasets' cache_dir = 'cache'
หากต้องการรับชุดข้อมูล FFHQ ( datasets/ffhq
) โปรดดูที่พื้นที่เก็บข้อมูล Flickr-Faces-HQ
หากต้องการรับชุดข้อมูล CelebA-HQ ( datasets/celebahq
) โปรดดูที่พื้นที่เก็บข้อมูล Progressive GAN
หากต้องการรับชุดข้อมูลอื่นๆ รวมถึง LSUN โปรดดูหน้าโครงการที่เกี่ยวข้อง ชุดข้อมูลสามารถแปลงเป็น TFRecords แบบหลายความละเอียดได้โดยใช้ dataset_tool.py ที่ให้มา:
> python dataset_tool.py create_lsun datasets/lsun-bedroom-full ~/lsun/bedroom_lmdb --resolution 256 > python dataset_tool.py create_lsun_wide datasets/lsun-car-512x384 ~/lsun/car_lmdb --width 512 --height 384 > python dataset_tool.py create_lsun datasets/lsun-cat-full ~/lsun/cat_lmdb --resolution 256 > python dataset_tool.py create_cifar10 datasets/cifar10 ~/cifar10 > python dataset_tool.py create_from_images datasets/custom-dataset ~/custom-images
เมื่อตั้งค่าชุดข้อมูลแล้ว คุณสามารถฝึกเครือข่าย StyleGAN ของคุณเองได้ดังต่อไปนี้:
แก้ไข train.py เพื่อระบุชุดข้อมูลและการกำหนดค่าการฝึกอบรมโดยการไม่ใส่ข้อคิดเห็นหรือแก้ไขบรรทัดเฉพาะ
รันสคริปต์การฝึกอบรมด้วย python train.py
ผลลัพธ์จะถูกเขียนไปยังไดเร็กทอรีที่สร้างขึ้นใหม่ results/<ID>-<DESCRIPTION>
การฝึกอบรมอาจใช้เวลาหลายวัน (หรือสัปดาห์) จึงจะเสร็จสมบูรณ์ ขึ้นอยู่กับการกำหนดค่า
ตามค่าเริ่มต้น train.py
ได้รับการกำหนดค่าให้ฝึก StyleGAN คุณภาพสูงสุด (การกำหนดค่า F ในตารางที่ 1) สำหรับชุดข้อมูล FFHQ ที่ความละเอียด 1024 × 1024 โดยใช้ 8 GPU โปรดทราบว่าเราใช้ GPU 8 ตัวในการทดลองทั้งหมดของเรา การฝึกโดยใช้ GPU น้อยลงอาจไม่ให้ผลลัพธ์ที่เหมือนกัน หากคุณต้องการเปรียบเทียบกับเทคนิคของเรา เราขอแนะนำอย่างยิ่งให้ใช้ GPU จำนวนเท่ากัน
เวลาการฝึกอบรมที่คาดหวังสำหรับการกำหนดค่าเริ่มต้นโดยใช้ Tesla V100 GPUs:
GPU | 1024×1024 | 512×512 | 256×256 |
---|---|---|---|
1 | 41 วัน 4 ชั่วโมง | 24 วัน 21 ชั่วโมง | 14 วัน 22 ชม |
2 | 21 วัน 22 ชม | 13 วัน 7 ชม | 9 วัน 5 ชม |
4 | 11 วัน 8 ชม | 7 วัน 0 ชม | 4 วัน 21 ชม |
8 | 6 วัน 14 ชม | 4 วัน 10 ชม | 3 วัน 8 ชม |
เมตริกคุณภาพและการแยกส่วนที่ใช้ในรายงานของเราสามารถประเมินได้โดยใช้ run_metrics.py ตามค่าเริ่มต้น สคริปต์จะประเมิน Fréchet Inception Distance ( fid50k
) สำหรับตัวสร้าง FFHQ ที่ได้รับการฝึกล่วงหน้า และเขียนผลลัพธ์ลงในไดเร็กทอรีที่สร้างขึ้นใหม่ภายใต้ results
พฤติกรรมที่แน่นอนสามารถเปลี่ยนแปลงได้โดยการไม่ใส่เครื่องหมายข้อคิดเห็นหรือแก้ไขบรรทัดเฉพาะใน run_metrics.py
เวลาประเมินและผลลัพธ์ที่คาดหวังสำหรับเครื่องกำเนิด FFHQ ที่ได้รับการฝึกอบรมล่วงหน้าโดยใช้ Tesla V100 GPU หนึ่งตัว:
เมตริก | เวลา | ผลลัพธ์ | คำอธิบาย |
---|---|---|---|
fid50k | 16 นาที | 4.4159 | Fréchet Inception Distance โดยใช้ภาพ 50,000 ภาพ |
ppl_zfull | 55 นาที | 664.8854 | ความยาวเส้นทางการรับรู้สำหรับเส้นทางแบบเต็มใน Z |
ppl_wfull | 55 นาที | 233.3059 | ความยาวเส้นทางการรับรู้สำหรับเส้นทางแบบเต็มใน W |
ppl_zend | 55 นาที | 666.1057 | ความยาวเส้นทางการรับรู้สำหรับจุดสิ้นสุดเส้นทางใน Z |
ppl_wend | 55 นาที | 197.2266 | ความยาวเส้นทางการรับรู้สำหรับจุดสิ้นสุดเส้นทางใน W |
LS | 10 ชม | ซ: 165.0106 w: 3.7447 | การแยกเชิงเส้นใน Z และ W |
โปรดทราบว่าผลลัพธ์ที่แน่นอนอาจแตกต่างกันไปในแต่ละรอบเนื่องจากลักษณะ TensorFlow ที่ไม่สามารถกำหนดได้
เราขอขอบคุณ Jaakko Lehtinen, David Luebke และ Tuomas Kynkäänniemi สำหรับการสนทนาเชิงลึกและความคิดเห็นที่เป็นประโยชน์ Janne Hellsten, Tero Kuosmanen และ Pekka Jänis สำหรับโครงสร้างพื้นฐานการประมวลผลและช่วยเหลือในการเผยแพร่โค้ด