การฝึก GAN model
ทีมของคุณที่ PyBooks คืบหน้าไปมากในการสร้างตัวสร้างข้อความโดยใช้ Generative Adversarial Network (GAN) ทั้ง generator และ discriminator network ถูกกำหนดไว้เรียบร้อยแล้ว ขั้นตอนต่อไปคือการฝึกโมเดล จากนั้นจะสร้างข้อมูลปลอมขึ้นมาและเปรียบเทียบกับข้อมูลจริง เพื่อดูว่า GAN เรียนรู้ได้ดีเพียงใด เราใช้ tensor เป็น input และ output จะพยายามเลียนแบบ tensor ที่ป้อนเข้าไป ทีม PyBooks สามารถนำข้อมูลสังเคราะห์นี้ไปใช้วิเคราะห์ข้อความได้ เนื่องจาก feature ต่าง ๆ จะมีความสัมพันธ์เช่นเดียวกับข้อมูลข้อความจริง
ทั้ง generator และ discriminator ถูก initialize และบันทึกไว้ในตัวแปร generator และ discriminator ตามลำดับ
ตัวแปรต่อไปนี้ถูก initialize ไว้ในแบบฝึกหัดแล้ว:
seq_length = 5: ความยาวของแต่ละลำดับข้อมูลสังเคราะห์num_sequences = 100: จำนวนลำดับทั้งหมดที่สร้างขึ้นnum_epochs = 50: จำนวนรอบการผ่านชุดข้อมูลทั้งหมดprint_every = 10: ความถี่ในการแสดงผล โดยแสดงผลทุก 10 epoch
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Deep Learning สำหรับข้อความด้วย PyTorch
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Define the loss function and optimizer
criterion = nn.____()
optimizer_gen = ____(generator.parameters(), lr=0.001)
optimizer_disc = ____(discriminator.parameters(), lr=0.001)
for epoch in range(num_epochs):
for real_data in data:
# Unsqueezing real_data and prevent gradient recalculations
real_data = real_data.____(0)
noise = torch.rand((1, seq_length))
fake_data = generator(noise)
disc_real = discriminator(real_data)
disc_fake = discriminator(fake_data.____())
loss_disc = criterion(disc_real, torch.ones_like(disc_real)) + criterion(disc_fake, torch.zeros_like(disc_fake))
optimizer_disc.zero_grad()
loss_disc.backward()
optimizer_disc.step()