数据来源:
动漫头像地址(密码g5qa)
结果分析:
『TensorFlow』DCGAN生成动漫人物头像_下
数据预处理程序TFR_process.py
介绍:
『TensorFlow』读书笔记_TFRecord学习
『TensorFlow』TFR数据预处理探究以及框架搭建
根据网上开源项目以及自己的理解尝试出的DCGAN实现,重点在于熟悉TensorFlow对于这种特殊网络结构的控制流程学习,结果展示以及训练过程的分析见上面博客。
有关生成式网络图片预处理的探讨实验见博客:
『TensorFlow』生成式网络中的图片预处理
数据在预处理时采用了原像素数据除以127.5减去1的操作,使得输出值保持在-1~1之间,这样配合sigmoid激活函数可以很好的模拟学习。
TFR_process.py
:TFRecode数据生成以及处理脚本
ops.py
:层封装脚本
DCGAN_class.py
:使用类的方式实现DC_GAN,因为是重点所以代码中给出了详尽的注释
DCGAN_function.py
:使用函数的方式实现DC_GAN,因为上面版本受开源项目影响较大,代码繁杂,这里进行了改写,采取了更为清晰的写法
utils.py
:格式化绘图、保存图片函数,开源项目直接找来的
DCGAN_reload.py
:利用已经训练好的模型生成一组头像
Data_Set
/cartoon_faces
:此处目录下放置头像图片
先运行TFR_process.py
产生TFRecord数据:
python TFR_process.py
本部分涉及参量如下(位于TFR_process.py
的起始位置):
# 定义每个TFR文件中放入多少条数据
INSTANCES_PER_SHARD = 10000
# 图片文件存放路径
IMAGE_PATH = './Data_Set/cartoon_faces'
# 图片文件和标签清单保存文件
IMAGE_LABEL_LIST = 'images_&_labels.txt'
# TFR文件保存路径
TFR_PATH = './TFRecord_Output'
然后再运行DC_GAN.py
使用前面的数据训练DC_GAN,
python DCGAN_class.py
或者
python DCGAN_function.py
当时为了方便,这些参量的设置也放在了TFR_process.py
中,
# TFR保存图像尺寸
IMAGE_HEIGHT = 48
IMAGE_WIDTH = IMAGE_HEIGHT
IMAGE_DEPTH = 3
# 训练batch尺寸
BATCH_SIZE = 64
这是因为我的数据读取函数batch_from_tfr
位于此文件中,该函数可以设置传入网络的图片大小。
已经训练好模型了的话如下操作,
python DCGAN_reload.py
即可直接生成一组图像。