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

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

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 图片分辨率大小不一,分辨率几百*几百 到 上千*上千不等

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

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


二 infogan修改简介:

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

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

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

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太多了也会有所折扣。

截图:

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

31cpu c4.2xlarge ec2 1小时 下

62cpu单位 c4.4xlarge ec2 半小时 上图 再扩展cpu效果就不明显了

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

gpu如下:


四 环境搭建过程:

使用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分钟。

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

原文发布于微信公众号 - CreateAMind(createamind)

原文发表时间:2016-09-21

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏重庆的技术分享区

最新版-windows安装TensorFlow(踩了多少坑)(附下载链接)

2853
来自专栏大数据文摘

手把手:我的深度学习模型训练好了,然后要做啥?

3462
来自专栏Kubernetes

TensorFlow Serving在Kubernetes中的实践

xidianwangtao@gmail.com 关于TensorFlow Serving 下面是TensorFlow Serving的架构图: ? 关于T...

80012
来自专栏黑白安全

如果银行卡只能使用六位数的密码到底有多安全?

我们使用的银行卡密码为 6 位数字,在 ATM 机上使用时如果连续输错 3 次密码就会被吞卡。那么如果有人捡到一张银行卡,拿到 ATM 机上去试密码,他在 3 ...

3035
来自专栏ATYUN订阅号

多模型机器学习功能数据库EuclidesDB全新发布

EuclidesDB,一个多模型机器学习功能数据库,发布了0.1版本。EuclidesDB 0.1与PyTorch紧密耦合,为模型特征空间中包含和查询数据提供后...

891
来自专栏王亚军的专栏

谷歌开源图片压缩算法 Guetzli 实测体验报告

谷歌大神又出开源新技术啦,这次是对JPEG格式的图片采用全新算法重新编码,输出的图片还是JPEG但是图片大小明显缩小,而质量不但没有损失,甚至还更加优化,速速来...

8.9K1
来自专栏TensorFlow从0到N

TensorFlow从0到1 - 18 - TensorFlow 1.3.0安装手记

《TensorFlow从0到1》写到现在,TensorFlow的版本也从当时的1.1.0迭代到了8月初发布的1.3.0。可以预见在未来很长一段时间里,它仍会持...

3526
来自专栏AI研习社

Github 项目推荐 | 半自动图像标记工具

在构建可以从任何场景检测物体的人工智能系统时,我们需要一个庞大的数据集来训练和测试模型,并发现模型的缺点。现有的图像注释工具能够提供一定的帮助,但是开发者仍要付...

1273
来自专栏机器之心

教程 | 如何使用Keras、Redis、Flask和Apache把深度学习模型部署到生产环境?

1.1K11
来自专栏目标检测和深度学习

Github 项目推荐 | 半自动图像标记工具

1182

扫码关注云+社区

领取腾讯云代金券