/face_gan

人脸生成练习模型

Primary LanguagePython

人脸生成

我们更进一步来探索一个生成网络:人脸图像生成

我们将尝试训练GAN,使它可以生成人脸图像

1.数据集介绍

我们使用流行的CelebA数据集,其中包含202599幅名人脸部的图像。所有图像都经过对齐和裁剪,使眼睛和嘴巴在图像中的大概位置居中。

关于此数据集的更多描述请见CelebA数据集详细介绍及其属性提取源代码 - 知乎 (zhihu.com)

2.实践指南

代码地址:

1.按照第三部分的pytorch环境搭建(windows版)搭建好pytorch环境 详见https://zhuanlan.zhihu.com/p/565711690

2.下载CelebA数据集,我把这个数据集放在了我的百度网盘链接方便大家下载

链接:https://pan.baidu.com/s/1noOK_SriJ_chiNA4BKd1Fw 提取码:xl5m

3.用pycharm打开此代码文件,像第四部分一样配置好python解释器

4.在此虚拟环境中安装所需的其他依赖,pip install requirements.txt

(注意一定要在此虚拟环境中安装,具体过程不再赘说,自行查阅)

5.进行数据的预处理,运行data_preprocess.py这个文件,注意修改下载的数据集地址(上面百度网盘链接下载下来的压缩包地址,不用解压缩)。data_preprocess.py代码第十行的total_images根据自己的电脑情况进行修改,如果自己电脑没有GPU,就将total_images改小一些,改为20000到40000之间,数值越大,训练时间越长,一般生成效果越好。如果自己电脑上有GPU,安装了GPU版的pytorch,建议将数值改为40000-202599之间,数值越大,训练时间越长,一般生成效果越好。我将total_images设为40000,用笔记本的RTX3050训练,训练时间为一个小时左右。

6.进行模型的训练,运行train.py这个文件。

7.进行模型的推断,即进行人脸的生成,运行inference.py这个文件

下面放两张我训练出的模型的生成效果:

作业要求:按照实践指南进行操作,完成数据的预处理和模型的训练,最后用训练好的模型进行人脸的生成,将生成的人脸保存下来。有能力的同学可以对代码进行改进,优化损失函数,设置多批次的batchsize以加速训练过程