前言
最近研究GAN,自然接触到了最经典的DCGAN,想用paddle复现下,在网上搜了下,已经有人复现过了,我也就没再重新造轮子了,直接在别人的项目上做了些修改,然后自己搜集了些数据,训练了一个生成动漫头像的DCGAN.
效果如图:
DCGAN开源项目介绍
开源链接:https://gitee.com/lingcb/dcgan
dcgan
├── LICENSE
├── README.md
├── generator.params
├── main.py
├── output
│ └── imgs
│ ├── 13.jpg
...
└── src
├── __init__.py
├── __pycache__
│ ├── __init__.cpython-37.pyc
│ ├── dataset.cpython-37.pyc
│ ├── model.cpython-37.pyc
│ └── parameter.cpython-37.pyc
├── cutImage.py
├── dataset.py
├── losses.json
├── model.py
├── parameter.py
├── train.py
└── work
└── generator.params
src文件夹
work文件夹里的generator.params 是训练好的模型参数,可以直接加载使用
train.py 是训练代码
model.py 里面是生成器和判别器的定义
cutImage.py 里面是对原始图片的处理celebA的头像数据处理,我们是直接生成动漫图片,所以这里用不到。
dataset.py 里面写了paddle加载数据的类
parameter.py 里面定义全局变量
训练自己的数据
数据可以取百度的aistudio里边找
https://aistudio.baidu.com/aistudio/datasetdetail/17962
要使用自己的代码来训练自己的数据,
自己可以准备好自己的数据放到一个文件夹里,再把parameters.py里的outpath修改成该文件夹的路径
然后就可以开始训练了
cd dcgan/src
python train.py
使用训练好的模型
cd dcgan/src
python main.py
#######
运行前,确保python环境装了paddle,cv2
python -m pip install paddlepaddle==2.2.0 -i https://mirror.baidu.com/pypi/simple
pip install opencv-python
程序运行时,会弹出一个显示图片的窗口,
可以使用快捷键进行控制
按 S 会保存当前图片
按 Q 会直接退出程序
按 其他键 会生成下一张
#######
下面是效果