トップページ -> データベース研究スタート -> TensorFlow のインストールおよびその応用例 -> carpedm20/DCGAN-tensorflow を使い,新しい顔を生成してみる
[サイトマップへ]  

carpedm20/DCGAN-tensorflow を使い,新しい顔を生成してみる

carpedm20/DCGAN-tensorflow は,GitHub で公開されているソフトウエアで, Age Progression/Regression by Conditional Adversarial Autoencoder (DCGAN) を 実装したもの.

先人に感謝

DCGAN (Deep Convolutional Generative Adversarial Networks) の参考文献情報: https://arxiv.org/abs/1511.06434

GitHub の carpedm20/DCGAN-tensorflow の Webページ: https://github.com/carpedm20/DCGAN-tensorflow

キーワード:DCGFAN, TensorFlow, Python


前準備

前準備として,Anaconda のインストール, Anaconda での新しい Python 環境の作成,TensorFlow バージョン 1.2 のインストールが終わっていること. 手順を下に説明しています.

Anaconda のインストール

Python 3 の開発環境である Anacondaをおすすめ.Window でのインストール手順は次の通りです(Linuxでも同様の手順です).

  1. https://www.continuum.io/downloads#windowsを開く

  2. Download」をクリックする.

  3. ダウンロードが始まるので確認する.

  4. ダウンロードした .exe ファイルを実行して,Anacondaをインストール.

    Python処理系にはいくつかの種類がある. この Web ページでは Anaconda をおすすめしている. 以下,Windows に Anacondaをインストールしたものとして説明を続ける.

  5. コマンドプロンプトを管理者として実行

  6. まずは,最新の conda-build パッケージが欲しい.コマンドプロンプトで,次のコマンドを実行

    conda install -y conda-build
    

    ※ 「Proceed ([y]/n)?」と表示されたら, y + Enter で続行する.「反応が遅いなあ」と思ったら、Enter キーを押してみる.

  7. conda が更新されたので,コマンドプロンプトをいったん閉じる
  8. 再び,コマンドプロンプトを管理者として実行
  9. Anaconda プロンプトで,次のコマンドを実行

    conda update -y pip
    conda update -y setuptools
    conda update -y conda
    conda update -y conda-build
    

    ※ 「Proceed ([y]/n)?」と表示されたら, y + Enter で続行する.「反応が遅いなあ」と思ったら、Enter キーを押してみる.

Anaconda での新しい Python 3.5 環境の作成

carpedm20/DCGAN-tensorflow を動かすのに,新しいPython環境があった方が便利です.

  1. コマンドプロンプトを管理者として実行そして,次のコマンドを実行.

    ※ 「--name dcgan」のところに書く名前「dcgan」は何でもいいですが,あとで思い出しやすい分かりやすい名前がいいです.

    conda create --name dcgan python=3.5 anaconda
    

  2. 「Proceed ([y]/n)?」のように表示されたときは y, Enter キー

  3. 終了の確認

    エラーメッセージが出ていないことを確認

動作に必要となる Python パッケージのインストール

次の手順で,Anaconda の Python 3.5 環境に 動作に必要となる Python パッケージをインストールします.

  1. コマンドプロンプトを管理者として実行

  2. Anaconda プロンプトで,次のコマンドを実行

    ※ Anaconda や Miniconda を使っていないときは conda コマンドがないので pip コマンドを使ってください

    activate dcgan
    conda install scipy
    conda install pillow
    conda install -c conda-forge moviepy
    conda install -c conda-forge tensorflow=0.12
    

    ※ 「Proceed ([y]/n)?」と表示されたら, y + Enter で続行する.「反応が遅いなあ」と思ったら、Enter キーを押してみる.


プログラムのダウンロードと展開(解凍),MNIST と celebA データセットのダウンロードと展開(解凍)

GitHub の carpedm20/DCGAN-tensorflow の配布サイト(https://github.com/carpedm20/DCGAN-tensorflow)で公開されている プログラムを,ダウンロードし展開(解凍)します。

ここでの作業に使っているディレクトリ:

  1. ダウンロードしたいので,GitHub の carpedm20/DCGAN-tensorflow の Web ページを開く.

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

  2. 「Clone or download」を展開.「Download ZIP」をクリック

  3. carpedm20/DCGAN-tensorflow で公開されているプログラム の .zip ファイルがダウンロードされるので確認する.

    ファイル名: DCGAN-tensorflow-master.zip

  4. ダウンロードした .zip ファイルを展開(解凍)し,分かりやすいディレクトリに置く.

    ※ Windows での展開(解凍)のためのソフトは「7-Zip」をおすすめ.

    この .zip ファイルは,D:\DCGAN-tensorflow-master\DCGAN-tensorflow-master に展開(解凍)したものとして,説明を続けるので,適切に読み替えてください.

  5. Windows で動かしたい ので, エディタを使い,model.py を書き替えて保存.

    77 行目.「/」を「\\」に書き換え.

    書き換え前

    書き換え後

    155 行目.「/」を「\\」に書き換え.

    書き換え前

    書き換え後

    454 行目.「/」を「\\」に書き換え.

    書き換え前

    書き換え後

  6. 新しくコマンドプロンプトを開き,「activate dcgan」を実行したのち,先ほど展開したディレクトリに移動.

    D:\DCGAN-tensorflow-master\DCGAN-tensorflow-master に展開(解凍)した場合には次のように操作する

    activate dcgan
    D:
    cd D:\DCGAN-tensorflow-master\DCGAN-tensorflow-master
    

  7. MNIST と celebA データセットのダウンロード

    ※ GitHub の carpedm20/DCGAN-tensorflow の配布サイト(https://github.com/carpedm20/DCGAN-tensorflow)の説明通り

    python download.py mnist celebA
    

  8. MNIST データセットの展開(解凍)

    D:\DCGAN-tensorflow-master\DCGAN-tensorflow-masterdata にデータファイルがある.ファイルを展開(解凍)する.

    ※ Windows での展開(解凍)のためのソフトは「7-Zip」をおすすめ.

  9. celebA データセットの確認

  10. Anaconda プロンプトで,次のように実行
    python main.py --dataset celebA --input_height=108 --train --crop
    python main.py --dataset celebA --input_height=108 --crop
    

    まず,トレーニングを行う.時間がかかるので待つ.

以下,書きかけ

python main.py --dataset mnist --input_height=28 --output_height=28 --train
python main.py --dataset mnist --input_height=28 --output_height=28