GithubHelp home page GithubHelp logo

dcgan_tensorflow's Introduction

DCGAN简单实现

相关资源

数据来源:
动漫头像地址(密码g5qa)
结果分析:
『TensorFlow』DCGAN生成动漫人物头像_下
数据预处理程序TFR_process.py介绍:
『TensorFlow』读书笔记_TFRecord学习
『TensorFlow』TFR数据预处理探究以及框架搭建
根据网上开源项目以及自己的理解尝试出的DCGAN实现,重点在于熟悉TensorFlow对于这种特殊网络结构的控制流程学习,结果展示以及训练过程的分析见上面博客。

1、预处理

有关生成式网络图片预处理的探讨实验见博客:
『TensorFlow』生成式网络中的图片预处理
数据在预处理时采用了原像素数据除以127.5减去1的操作,使得输出值保持在-1~1之间,这样配合sigmoid激活函数可以很好的模拟学习。

2、目录介绍

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:此处目录下放置头像图片

3、实验步骤

先运行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

即可直接生成一组图像。

4、网络示意

5、结果展示

dcgan_tensorflow's People

Contributors

hellcatzm avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

dcgan_tensorflow's Issues

why between -1~1 when pixel/127.5 - 1

很小白的问题,文中:

数据在预处理时采用了原像素数据除以127.5减去1的操作,使得输出值保持在0~1之间

按这个计算不应该是-1~1之间吗?
想得到0~1之间为什么不直接除以255?

用GPU训练会卡住

你好,我用GPU训练的时候每次训练到epoch0 step15左右的时候就会训练卡住,但是用CPU的话就没有这个问题,是为什么呢?谢谢

数据集失效了

楼主能重新发一下链接吗,您现在的链接失效了。感谢!

我准备把生成的图片大小改成96

我查看了代码,face中的图片大小是96,所以我想把生成的图片大小也改成96,不过尝试失败了,请问,能否修改
IMAGE_HEIGHT = 48
IMAGE_WIDTH = IMAGE_HEIGHT

修改后,DCGAN_function.py和DCGAN_class.py中的参数该如何修改?
多谢!

已经解决@@@@@

请教报错

本地使用docker,拿到的是TensorFlow 最新版本(直接拿的docker),python2.7

报错信息如下:
Traceback (most recent call last):
File "DCGAN_reload.py", line 48, in
reload_dcgan()
File "DCGAN_reload.py", line 43, in reload_dcgan
samples = sess.run(end_points['sample_output'], feed_dict={end_points['initial_z']: sample_z})
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.py", line 929, in run
run_metadata_ptr)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.py", line 1152, in _run
feed_dict_tensor, options, run_metadata)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.py", line 1328, in _do_run
run_metadata)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.py", line 1348, in _do_call
raise type(e)(node_def, op, message)
tensorflow.python.framework.errors_impl.FailedPreconditionError: Attempting to use uninitialized value generator/g_h2/w
[[node generator/g_h2/w/read (defined at /notebooks/myBun/DCGAN_TensorFlow/ops.py:159) = IdentityT=DT_FLOAT, _device="/job:localhost/replica:0/task:0/device:CPU:0"]]

Caused by op u'generator/g_h2/w/read', defined at:
File "DCGAN_reload.py", line 48, in
reload_dcgan()
File "DCGAN_reload.py", line 33, in reload_dcgan
end_points = dcgan()
File "/notebooks/myBun/DCGAN_TensorFlow/DCGAN_function.py", line 90, in dcgan
g = generator(z)
File "/notebooks/myBun/DCGAN_TensorFlow/DCGAN_function.py", line 78, in generator
h2 = deconv2d(h1, [batch_size, s_h4, s_w4, gf_dim * 2], scope='g_h2')
File "/notebooks/myBun/DCGAN_TensorFlow/ops.py", line 159, in deconv2d
w = tf.get_variable('w', [k_h, k_w, output_shape[-1], input_.get_shape()[-1]],initializer=tf.random_normal_initializer(stddev=0.02))
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/variable_scope.py", line 1487, in get_variable
aggregation=aggregation)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/variable_scope.py", line 1237, in get_variable
aggregation=aggregation)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/variable_scope.py", line 540, in get_variable
aggregation=aggregation)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/variable_scope.py", line 492, in _true_getter
aggregation=aggregation)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/variable_scope.py", line 922, in _get_single_variable
aggregation=aggregation)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/variables.py", line 183, in call
return cls._variable_v1_call(*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/variables.py", line 146, in _variable_v1_call
aggregation=aggregation)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/variables.py", line 125, in
previous_getter = lambda **kwargs: default_variable_creator(None, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/variable_scope.py", line 2444, in default_variable_creator
expected_shape=expected_shape, import_scope=import_scope)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/variables.py", line 187, in call
return super(VariableMetaclass, cls).call(*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/variables.py", line 1329, in init
constraint=constraint)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/variables.py", line 1491, in _init_from_args
self._snapshot = array_ops.identity(self._variable, name="read")
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/array_ops.py", line 81, in identity
return gen_array_ops.identity(input, name=name)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/gen_array_ops.py", line 3454, in identity
"Identity", input=input, name=name)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/op_def_library.py", line 787, in _apply_op_helper
op_def=op_def)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/util/deprecation.py", line 488, in new_func
return func(*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/ops.py", line 3274, in create_op
op_def=op_def)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/ops.py", line 1770, in init
self._traceback = tf_stack.extract_stack()

FailedPreconditionError (see above for traceback): Attempting to use uninitialized value generator/g_h2/w
[[node generator/g_h2/w/read (defined at /notebooks/myBun/DCGAN_TensorFlow/ops.py:159) = IdentityT=DT_FLOAT, _device="/job:localhost/replica:0/task:0/device:CPU:0"]]

请问我这是哪出了问题? 多谢!其他基本都OK,只有一些警告信息!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.