トップページ人工知能,実世界DBGAN の応用例DCGANの例、carpedm20/DCGAN-tensorflow を使い,新しい顔を生成してみる

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

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

手順の要点: Python 3.6, TensorFlow 1.15, Python の隔離された環境(Windows では C:\venv\tf115py36)

ソフトウエア等の利用条件等は,利用者で確認すること.

謝辞:ソフトウエアの作者に感謝します.

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

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

前準備

TensorFlow 1.15 を使う.

(Windows を使う場合のみ)マイクロソフト C++ ビルドツール (Build Tools) のインストール

Visual Studio Community 2019 vesion 16.2, マイクロソフト C++ ビルドツールのインストール(Windows 上)」で説明している.

Python,TensorFlow 1.15 のインストール

すでに TensorFlow 2 を使っている,あるいは使う予定ということがありえる. 単純には,TensorFlow 2 と TensorFlow 1.15 を共存させて Python で使うということはできないが, 少しの手間で,共存できるようになる. そこで,TensorFlow 2 とTensorFlow 1.15 の共存を前提として, TensorFlow 1.15 のインストールを行う.

Python 開発環境のインストール】

Python を使うときは,Python開発環境や Python コンソール(Jupyter Qt ConsoleSpyderPyCharmPyScripter など)の利用も便利である

Windows, Ubuntu での Python 開発環境,Python コンソールJupyter Qt Console, Jupyter ノートブック (Jupyter Notebook), Jupyter Lab, Nteract, spyder)のインストール: 別ページで,インストール手順を説明している.

Windows の場合

Windows でのPython3.6TensorFlow 1.15 のインストール:別ページで説明している.

すでにPython 3.9 あるいは Python 3.8 をインストールしている,あるいは,インストール予定という場合を想定し, あとのトラブルが起きにくい,そして,簡単に運用できるように 「Python 3.6 をインストールし,その上に,TensorFlow 1.15.5 をインストールする」という手順を案内している.

Ubuntu の場合

Ubuntu でのPythonTensorFlow 1.15 のインストール:別ページで案内している.

Ubuntu のシステム Python に影響を与えないように,隔離された Python 3.6 仮想環境の新規作成し,その上にTensorFlow 1.15.5 をインストールするという手順(venv を使用)(Ubuntu 上)を案内している.

Git のインストール

Git の URL: https://git-scm.com/

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

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

Windows での手順を下に示す.Ubuntu でも同様の手順になる.

  1. Windows で,コマンドプロンプト管理者として実行する.

    [image]
  2. 作業用に c:\do.bat というファイルを作る.

    まず,メモ帳を開く(メモ帳以外のエディタでも問題ない)

    notepad c:\do.bat
    

    [image]

    次のように編集する.

    sed -i "s/import tensorflow as tf/import tensorflow.compat.v1 as tf/g"
    sed -i "s/from tensorflow import/from tensorflow.compat.v1 import"
    sed -i "s/from keras import/from tensorflow.compat.v1.keras import"
    
  3. その他 Python パッケージのインストール

    venv を使い,孤立した Python の隔離された環境を使っているときは,Windows でも Ubuntu でも同じで,「python -m pip install ...」.

    python -m pip install -U numpy scipy requests tqdm opencv-python pillow imageio moviepy  
    python -m pip install -U jupyterlab jupyter jupyter-console jupytext spyder
    
  4. Pillow (PIL fork by Alex Clark and Contributors) のインストール

    Windows での手順を下に示す.Ubuntu でも同様の手順になる.

    マイクロソフト C++ ビルドツール (Build Tools) がインストール済みであるとして手順を示す

    cd c:\pytools
    git clone https://github.com/python-pillow/Pillow
    cd Pillow
    python setup.py build_ext --disable-zlib --disable-jpeg install
    python -m pip install pillow==6 --global-option="build_ext" --global-option="--disable-jpeg" --global-option="--disable-zlib"
    
  5. carpedm20/DCGAN-tensorflow のダウンロード

    cd c:\pytools
    rmdir /s /q DCGAN-tensorflow
    

    [image]

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

    [image]
  6. celebA データセットのダウンロード

    Windows での手順を下に示す.Ubuntu でも同様の手順になる.

    時間がかかるので待つ.

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

    cd c:\pytools\DCGAN-tensorflow
    python download.py celebA
    

    [image]
  7. celebA データセットの確認

    Windows での手順を下に示す.Ubuntu でも同様の手順になる.

    c:\pytools\DCGAN-tensorflowdata

    [image]

celebA データセットを使って動かしてみる

Windows での手順を下に示す.Ubuntu でも同様の手順になる.

  1. Windows では,コマンドプロンプトを実行.Ubuntu では端末を開く.
  2. venvPython の隔離された環境有効化する

    Windows の場合

    c:\pytools\Scripts\activate.bat
    

    [image]
  3. celebA データセットを用いて学習

    時間がかかるので待つ.

    cd c:\pytools\DCGAN-tensorflow
    python main.py --dataset celebA --input_height=108 --train --crop
    
  4. 学習の終了の確認
  5. tensorboard save/summary を使い、中間結果を確認できる

    端末で,次のコマンドを実行.

    tensorborard --logdir .
    

    Web ブラウザで http://localhost:6006 を開く

  6. dcgan の機能を動かしてみる
    python main.py --dataset celebA --input_height=108 --crop
    
  7. samples の下に結果があるので確認

MNIST データセットを使って動かしてみる

Windows での手順を下に示す.Ubuntu でも同様の手順になる.

  1. Windows では,コマンドプロンプトを実行.Ubuntu では端末を開く.
  2. venvPython の隔離された環境有効化する

    Windows の場合

    c:\pytools\Scripts\activate.bat
    

    [image]
  3. MNIST データセットを用いて学習

    時間がかかるので待つ.

    python main.py --dataset mnist --input_height=28 --output_height=28 --train
    
  4. 学習の終了の確認

    [image]
  5. tensorboard save/summary を使い、中間結果を確認できる

    端末で,次のコマンドを実行.

    tensorborard --logdir .
    

    Web ブラウザで http://localhost:6006 を開く

    [image]
  6. dcgan の機能を動かしてみる
    python main.py --dataset mnist --input_height=28 --output_height=28
    

    [image]
  7. samples の下に結果があるので確認

    [image]