> 技术文档 > PyTorch生成式人工智能(14)——条件生成对抗网络(conditional GAN,cGAN)

PyTorch生成式人工智能(14)——条件生成对抗网络(conditional GAN,cGAN)


PyTorch生成式人工智能(14)——条件生成对抗网络

    • 0. 前言
    • 1. eyeglasses 数据集
      • 1.1 下载 eyeglasses 数据集
      • 1.2 可视化数据样本
    • 2. 条件生成对抗网络
      • 2.1 条件生成对抗网络简介
      • 2.2 构建条件生成对抗网络
    • 3. 模型训练
      • 3.1 输入数据处理
      • 3.2 训练 cGAN
    • 4. 生成具有特定特征图像
      • 4.1 选择生成图像中的特征
      • 4.2 潜空间中的向量运算
      • 4.3 同时选择两个特征
    • 小结
    • 系列链接

0. 前言

我们使用深度卷积生成对抗网络 (Deep Convolution Generative Adversarial Network, DCGAN) 生成的动漫面孔看起来非常逼真,每张生成的图像都有不同的特征,比如头发颜色、眼睛颜色,以及头部朝左或朝右倾斜。
在本节中,将学习两种选择生成图像中特征的方法及其各自的优缺点。第一种方法是选择潜空间中的特定向量,不同的向量对应不同的特征——例如,一个向量可能生成男性面孔,而另一个则生成女性面孔。第二种方法使用条件生成对抗网络 (conditional GAN, cGAN),即在带有标签的数据上训练模型。这使得我们可以通过向模型传递标签生成具有特定标签的图像,每个标签代表一个独特的特征——比如有眼镜或无眼镜的面孔。
此外,还将学习如何将这两种方法结合使用,以便同时选择图像的两个独立属性。通过这种方式,可以生成四种不同的图像类型:戴眼镜的男性、未戴眼镜的男性、戴眼镜的女性和未戴眼镜的女性。还可以使用标签的加权平均或输入向量的加权平均,生成从一个属性到另一个属性过渡的图像。例如,可以生成一系列图像,使得同一个人脸上的眼镜逐渐消失(标签运算)。或者可以生成一系列图像,使得男性特征逐渐消失,男性面孔变为女性面孔(向量运算)。

1. eyeglasses 数据集

1.1 下