本文转自微信公众号 createamind
内容目录: 相关内容请参考最重要的论文之一:无监督的语义特征学习 论文翻译及代码
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分钟。
五:训练效果图: 还没跑出来。
重建过程如有问题,可以加qq群号 325921031 , 微信群讨论,微信群扫下方二维码或后台留言加群,其他入门干货访问公众号createamind 即得。
二维码:
微信扫一扫
关注该公众号