Xây dựng generator và discriminator
Tại PyBooks, bạn được giao nhiệm vụ phát triển một bộ tạo văn bản tự động để giúp tác giả vượt qua bế tắc khi viết. Bằng cách dùng GAN (Generative Adversarial Networks), bạn tin rằng mình có thể tạo ra một hệ thống trong đó một mạng — generator — tạo văn bản mới, còn mạng kia — discriminator — đánh giá tính xác thực của văn bản đó. Để làm được điều này, bạn cần khởi tạo cả hai mạng generator và discriminator. Hai mạng này sẽ được huấn luyện đối kháng để tạo ra văn bản mới, đáng tin.
Những thư viện sau đã được nhập sẵn cho bạn: torch, torch.nn với bí danh nn.
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
Hướng dẫn bài tập
- Định nghĩa lớp
Generatorvới một tầng linear cho dữ liệu tuần tự và một hàm kích hoạt sigmoid. - Truyền đầu vào qua mô hình đã định nghĩa trong phương thức
forward()của lớpGenerator. - Định nghĩa lớp
Discriminatorvới các tầng và hàm kích hoạt tương tự, lưu ý cẩn thận khi xác định kích thước (dimensions).
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 generator class
class Generator(nn.Module):
def __init__(self):
super().__init__()
self.model = nn.____(nn.____(____), nn.____())
def forward(self, x):
return self.____(x)
# Define the discriminator networks
class Discriminator(nn.Module):
def __init__(self):
super().__init__()
self.model = nn.____(nn.____(____), nn.____())
def forward(self, x):
return self.model(x)