开始使用免费开始使用

判别器

在已经定义生成器之后,构建 GAN 的下一步是实现判别器。它将生成器的输出作为输入,并给出一个二分类预测:该输入是生成的还是真实的?

torch.nn 已经为您导入为 nn。您还可以使用自定义的 disc_block() 函数,它返回一个由线性层和 LeakyReLU 激活组成的模块。您将把它作为判别器的基本构件。

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

本练习是课程的一部分

使用 PyTorch 进行图像深度学习

查看课程

练习说明

  • 在模型中添加最后一个判别器块,使用合适的输入尺寸,输出为 256
  • 在最后一个判别器块之后,添加一个线性层,将输出映射到大小为 1
  • 定义 forward() 方法,将输入图像传入在 __init__() 中定义的顺序块。

交互式实操练习

通过完成这段示例代码来试试这个练习。

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
        ____
编辑并运行代码