はじめに
最近流行のディープラーニングで画像解析を気軽に試せないかと調べてたらDCGAN-tensorflowなるツールを発見!
とりあえず理論は後回しにてEC2のインスタンスを立ち上げセットアップを行うも環境構築が上手くいかない。
WEBの情報は若干古くツールのバージョンアップに追いついていないようだ。
そこでトライ&エラーを簡単に繰り返せるようにDockerを使うことにした。
ちなみにDockerの環境構築についてもWEBの情報は若干古くそのままでは上手くいかなかったけど試行錯誤の結果、学習コマンドがエラーを吐かないところまでこぎつけることができた。
ここに書いてあるのは2017年5月時点のお話なので数か月後には上手くいかない可能性があるよ。
参照したいサイト
下記のサイトを参照させていただきました。ありがとうございます。
- Docker上のCentOSにPython3と、関連ライブラリpip, virtualenvとフレームワークDjango, bottle, Flaskのインストール!これらをまとめたDockerfile付き!
- DCGAN-tensorflowで自動画像生成をお手軽に試す
DockerにCentOSをインストール
最初からPythonやTensorFlowが入っているDockerイメージもあるのだけどベースになるOSがUbuntuになっている。
CentOS派のボクにはしっくりこなかったのでCentOSのイメージから構築することにした。
Dockerをインストール
まずはDockerをインストール。root権限で必要であればupdateをしてから。
sudo su
yum update
yum install docker.io
Dockerデーモンを起動
各種Dockerコマンドを実行したときにDocker起動していないよというエラーがでたらコレ。
/etc/init.d/docker start
Docker用のCentOSイメージを取得
pullコマンドでイメージをダウンロードします。200MB弱あります。
docker pull centos
CentOSイメージからコンテナを起動
これでDockerのCentOS環境に入ります。
docker run -it centos
DockerのCentOSに環境構築
基本的に以下のページに記載の内容で構築ができた。
しかしながらpipのバージョンが低かったのでreadlineのインストールで失敗します。以下のコマンドでpipのアップグレードを実行。バージョンを指定したいのでpip3としています。
pip3 install --upgrade pip
TensorFlowをインストール
pipでインストールするだけ。今後も実行するPythonはPython3にしたかったのでこれ以降も明示的に指定している。
pip3 install tensorflow
DCGAN-tensorflowをインストール
基本的に以下のページに記載の内容で構築ができた。
GitHubで公開されているのでダウンロードする。
git clone https://github.com/carpedm20/DCGAN-tensorflow.git
ダウンロードしたディレクトリに移動し以下のコマンドを打つとエラーになる。
python3 download.py celebA
Traceback (most recent call last):
File "download.py", line 20, in <module>
from tqdm import tqdm
ImportError: No module named 'tqdm'```
このようなエラーが表示された場合は、記載されているコマンドを都度インストールしていく。記載しないがmain.py実行時もエラーがでた場合は同様にインストールする。
pip3 install requests
pip3 install tqdm
・・・
データがダウンロードされるとdataディレクトリに保存されます。この状態で以下のコマンドを実行すると学習が実行されるはずだがエラーになります。
python3 main.py --dataset celebA --input_height=108 --train --crop
download.pyと同様にエラーが出た場合はpipコマンドで都度インストールしていくのだけど1つだけ異なるエラーがでた。WEBで調べた結果以下のコマンドをインストールすることで解決。
pip3 install pillow
おわりに
これでデモ用のデータを実行できる環境が整った。再度上記のmain.pyコマンドを実行すると学習が開始された!
しかしながらEC2のmicroインスタンスだと待てど暮らせど終わらない。次はGPU付きのインスタンスで試してみたいが料金はいくらになるのだろうか。。。