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

Discriminator

Sau khi đã định nghĩa generator, bước tiếp theo để xây dựng GAN là tạo discriminator. Nó nhận đầu ra của generator làm đầu vào và đưa ra dự đoán nhị phân: đầu vào là ảnh sinh ra hay ảnh thật?

Bạn đã có sẵn torch.nn được nhập dưới tên nn. Bạn cũng có thể dùng hàm disc_block() tùy chỉnh, trả về một khối gồm một lớp tuyến tính tiếp theo là kích hoạt LeakyReLU. Bạn sẽ dùng nó như một khối xây dựng cho discriminator.

def disc_block(in_dim, out_dim):
    return nn.Sequential(
        nn.Linear(in_dim, out_dim),
        nn.LeakyReLU(0.2)
    )

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

Deep Learning cho Ảnh với PyTorch

Xem khóa học

Hướng dẫn bài tập

  • Thêm khối discriminator cuối cùng vào mô hình với kích thước đầu vào phù hợp và đầu ra là 256.
  • Sau khối discriminator cuối cùng, thêm một lớp tuyến tính để ánh xạ đầu ra về kích thước 1.
  • Định nghĩa phương thức forward() để truyền ảnh đầu vào qua khối tuần tự đã định nghĩa trong __init__().

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.

class Discriminator(nn.Module):
    def __init__(self, im_dim):
        super(Discriminator, self).__init__()
        self.disc = nn.Sequential(
            disc_block(im_dim, 1024),
            disc_block(1024, 512),
            # Define last discriminator block
            ____,
            # Add a linear layer
            ____,
        )

    def forward(self, x):
        # Define the forward method
        ____
Chỉnh sửa và Chạy Mã