スポンサーリンク

Tensorflowで自動画像生成を写経してみる

以下の本を読んだ後、実際にチュートリアルをがんがんやってみたい今日この頃。


ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装 単行本(ソフトカバー) – 2016/9/24
斎藤 康毅  (著)
3672円

今回は、以下のサイトを写経しながら、DCGAN-tensorflowで自動画像生成をためしてみる。

DCGAN-tensorflowで自動画像生成をお手軽に試す
shu223
2017年05月21日に更新
http://qiita.com/shu223/items/b6d8dc1fccb7c0f68b6b

(環境)
Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz
RAM 32.0 GB
GPU NVIDIA GeForce GTX 660 (4GB)
Windows 7 Pro
Anaconda 4.1.1(64-bit)
Python 3.5.2
Tensorflow 1.1 GPU

環境構築については以下で行った。

http://twosquirrel.mints.ne.jp/?p=17040

なお、Tensorflow 1.0 CPUの環境構築は以下。

http://twosquirrel.mints.ne.jp/?p=16923

(1)以下のサイトから、git cloneしてくる

https://github.com/carpedm20/DCGAN-tensorflow
image

cd d:\py\github
git clone https://github.com/carpedm20/DCGAN-tensorflow.git

image

(2)データセットのダウンロード

cd DCGAN-tensorflow
python download.py celebA

pip install tqdm
python download.py celebA

image

たしかに、data/ フォルダに、セレブの画像が20万枚ほど(1枚あたり178x218pixelの、12kB, 全部で1.6GB)ダウンロードされている。

image

ついでに、minist(手書き数字)もダウンロードしておく。

python download.py mnist

image

image

何かエラーが出ているが、理解不能。。。

http://yann.lecun.com/exdb/mnist/

から、直接ダウンロードすればよいのだろうが、どこにどれを配置したらよいのだろうか。。。まあ、後にする。

(3)学習

python main.py --dataset celebA --input_height=108 --train --crop

むむ?

image

おお!GPUが99%動いている!CPUは15%程度!

image

image

image

13:30頃から開始して、12分くらい経過したが、まだEpoch0の、500/3165くらい、、、

1Epoch終わるのに1時間以上かかるのか。。。全部で50Epochくらいあったような気が。。。

うわ、GPUが81℃になっている。。。

3年半前に買ったパソコンだが、初めてGPUをまともに動かしている。

image

Deep Learningのサンプルを試していて思った。

Machineの火力(GPU力)が足りない!AWSなどでスケールアウトして計算するとしても、これは、本気でやるならかなりお金が必要そう!

昔の、高画質動画レンダリングに何日かかりましたレベル!と思った。。。

Tensorflowなら、分散処理して、GPU8個で8倍のスピード、GPU100個で56倍のスピードで計算できるらしいが、まあ、個人には非現実的。。。

35分経過。

image

1時間以上経過。。。

image

しかし、ここで、DCGAN-tensorflow/samples/ フォルダの中身を見てみると、てゃんと途中経過のpngファイルが生成されている。これは面白い!

image

train_00_0099.png (開始2分後くらいに作成)
train_00_0099

train_00_2699.png (開始1時間後くらいに作成、Epoch [0] [2735/3165] くらいのとき)
train_00_2699

おお!これは面白い。

このあと3時間半くらい動かしたが、Epoch[2] [2038/3165]あたりまでであり、このまま続けると1週間以上かかりそうだったので、中止とした。

train_02_1969.png
train_02_1969

自分で画像20万枚用意すれば(これもなかなか非現実的だが)、同じことができそうだと思うと、これは楽しい!

スポンサーリンク