InfoGAN修改训练人脸数据集celebA的过程记录

本文转自微信公众号  createamind

InfoGAN修改训练人脸数据集celebA的过程记录

  2016-09-21  zdx3578  大脑模拟

内容目录:  相关内容请参考最重要的论文之一:无监督的语义特征学习 论文翻译及代码

celeba简介,

infogan修改简介,

运行性能对比: gpu一个批次从最初2核cpu 3个半小时 缩减为不到7分钟。

环境搭建说明:aws 上面搭建环境

训练效果图: 还没跑出来。





一  celeba简介:


通过官网http://mmlab.ie.cuhk.edu.hk/projects/CelebA.html 介绍,从gogole driver  https://drive.google.com/drive/folders/0B7EVK8r0v71pTUZsaXdaSnZBZzg 下载到aws很快,国内可以从官网给的百度盘链接下载。


3种图片

1  img_celebA.7z 目录 原始图片 jpg  图片分辨率大小不一,分辨率几百*几百 到  上千*上千不等


InfoGAN修改训练人脸数据集celebA的过程记录_第1张图片


2 img_align_celeba_png.7z 目录 脸部图片 png 脸部图片,分辨率大小一致,格式png文件较大

InfoGAN修改训练人脸数据集celebA的过程记录_第2张图片



3 脸部图片 jpg  图片分辨率大小一致,jpg格式文件小


InfoGAN修改训练人脸数据集celebA的过程记录_第3张图片






二  infogan修改简介:


1  infogan默认训练只包含mnist,没有celeba人脸数据库的训练,我们参考

https://github.com/carpedm20/DCGAN-tensorflow  的celeba相关代码

调整infogan输入celeba图片数据进行训练


InfoGAN修改训练人脸数据集celebA的过程记录_第4张图片

2 增加小配置,对运行中保存的checkpoint进行reload

            if  self.isrestore  and  self.restore_checkpoint_file:

                saver.restore(sess, self.restore_checkpoint_file)

                print("Model restored.")

3 参考dcgan,gan在每次训练中多训练几次次

                    for j in range(3):

                        gencount += 1

                        print gencount

                        sess.run(self.generator_trainer, feed_dict)  (!!还需要确认)

4  cnn架构扩展:原理的mnist训练的cnn结构相对简单,


                     custom_fully_connected(image_size / 16 * image_size / 16 * 512).

                     fc_batch_norm().

                     apply(tf.nn.relu).

                     reshape([-1, image_size / 16, image_size / 16, 512]).

                     custom_deconv2d([0, image_size / 8, image_size / 8, 256], k_h=4, k_w=4).

                     conv_batch_norm().

                     apply(tf.nn.relu).

                     custom_deconv2d([0, image_size / 4, image_size / 4, 128], k_h=4, k_w=4).

                     conv_batch_norm().

                     apply(tf.nn.relu).                     

                     custom_deconv2d([0, image_size / 2, image_size / 2, 64], k_h=4, k_w=4).

                     conv_batch_norm().

                     apply(tf.nn.relu).

                     custom_deconv2d([0] + list(image_shape), k_h=4, k_w=4).

                     flatten())


改的比较烂,希望能抛砖引玉!








三 性能对比:

tensorflw 和cpu近乎成正比扩展,当然如果cpu太多了也会有所折扣。

截图:

InfoGAN修改训练人脸数据集celebA的过程记录_第5张图片

6.5cpu r3.large ec2  3个半小时 上

31cpu  c4.2xlarge ec2   1小时   下

InfoGAN修改训练人脸数据集celebA的过程记录_第6张图片



InfoGAN修改训练人脸数据集celebA的过程记录_第7张图片
62cpu单位      c4.4xlarge ec2      半小时  上图  再扩展cpu效果就不明显了

132 cpu单位   c4.8xlarge ec2     20分钟   下图

InfoGAN修改训练人脸数据集celebA的过程记录_第8张图片

gpu如下:

InfoGAN修改训练人脸数据集celebA的过程记录_第9张图片





四 环境搭建过程:

使用aws 云服务器,参考commaai的image comma.ai George Hotz 挑战谷歌的自动驾驶系统测试搭建过程    :在AWS的社区AMI中搜索前人已经安装好的镜像,比如这个镜像ami-97ba3a80,anaconda tensorflow cuda 全部安装好,其他依赖可以根据提示直接pip安装即可。操作系统启动后,conda list即可看到相关conda环境,source activate tensorflow即可进入tensorflow环境

aws 实例启动后先安装系统包

sudo apt-get update

sudo apt-get install -y opencl-headers build-essential protobuf-compiler     libprotoc-dev libboost-all-dev libleveldb-dev hdf5-tools libhdf5-serial-dev     libopencv-core-dev  libopencv-highgui-dev libsnappy-dev libsnappy1     libatlas-base-dev cmake libstdc++6-4.8-dbg libgoogle-glog0 libgoogle-glog-dev     libgflags-dev liblmdb-dev git python-pip gfortran


git clone https://github.com/zdx3578/InfoGAN.git

cd InfoGAN

进入python环境后再安装相关python包

source activate tensorflow


安装 gpu版本tensorflow  ref:https://www.tensorflow.org/versions/r0.10/get_started/os_setup.html

# Ubuntu/Linux 64-bit, GPU enabled, Python 2.7
# Requires CUDA toolkit 7.5 and CuDNN v5. For other versions, see "Install from sources" below.
$ export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow-0.10.0-cp27-none-linux_x86_64.whl

# Python 2
$ sudo pip install --upgrade $TF_BINARY_URL

tensorflow被依赖,安装完之后,继续安装

for req in $(cat requirements.txt); do  pip install $req; done


到这里,基本安装完成。

下载celeba数据文件 压缩后的约1.5G,解压到 InfoGAN/celebA/


运行训练:PYTHONPATH='.'  python launchers/run_mnist_exp.py

跑起来后,对比上面的截图速度显示,一个批次从最初2核cpu 3个半小时 缩减为不到7分钟。

InfoGAN修改训练人脸数据集celebA的过程记录_第10张图片


五:训练效果图: 还没跑出来。




重建过程如有问题,可以加qq群号 325921031 , 微信群讨论,微信群扫下方二维码或后台留言加群其他入门干货访问公众号createamind 即得。


二维码:

InfoGAN修改训练人脸数据集celebA的过程记录_第11张图片


微信扫一扫
关注该公众号


你可能感兴趣的:(InfoGAN修改训练人脸数据集celebA的过程记录)