Bắt đầu ngayBắt đầu miễn phí

Huấn luyện mô hình GAN

Đội của bạn tại PyBooks đã đạt tiến bộ tốt trong việc xây dựng bộ sinh văn bản bằng Generative Adversarial Network (GAN). Bạn đã định nghĩa thành công mạng generator và discriminator. Giờ là lúc huấn luyện chúng. Bước cuối là tạo một số dữ liệu giả và so sánh với dữ liệu thật để xem GAN của bạn học tốt đến đâu. Chúng ta đã dùng các tensor làm đầu vào và đầu ra sẽ cố gắng giống với các tensor đầu vào. Nhóm tại PyBooks sau đó có thể dùng dữ liệu tổng hợp này cho phân tích văn bản vì các đặc trưng sẽ có mối quan hệ giống như dữ liệu văn bản.

Generator và discriminator đã được khởi tạo và lưu lần lượt vào generatordiscriminator.

Các biến sau đã được khởi tạo trong bài tập:

  • seq_length = 5: Độ dài của mỗi chuỗi dữ liệu tổng hợp
  • num_sequences = 100: Tổng số chuỗi được tạo ra
  • num_epochs = 50: Số vòng lặp qua toàn bộ tập dữ liệu
  • print_every = 10: Tần suất hiển thị kết quả, in sau mỗi 10 epoch

Bài tập này là một phần của khóa học

Deep Learning cho Văn bản với PyTorch

Xem khóa học

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

# 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()
Chỉnh sửa và Chạy Mã