トップページ -> データベース関連技術 -> TensorFlow の応用例 -> pix2pix を動かしてみる
[サイトマップへ], [サイト内検索へ]

pix2pix を動かしてみる

公開されたソフトウエア,データを使い,Windows で pix2pix を動かしてみる. Python, TensorFlow を使う. 先人に感謝.

参考Webページ: affinelayer/pix2pix-tensorflow のページ, https://github.com/affinelayer/pix2pix-tensorflow

このWebページでは,pix2pix の Python 版が公開されているとともに,次のような 5種類のデータセットが公開されている.

[image]

サイト内の関連ページ


前準備

Python のインストール

virtualenv, virtualenv-wrapper のインストール

git, cmake のインストール

(NVIDIA GPU を使うとき)NVIDIA グラフィックスボード・ドライバ,NVIDIA CUDA ツールキットのインストール

次のページの手順により,インストールを行う

参考Webページ:

(NVIDIA GPU を使うとき)NVIDIA cuDNN のインストール

Windows でのインストール手順の詳細は,別ページで説明している.

インストールの要点:https://developer.nvidia.com/cudnn から cuDNN を入手し,C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1 などに展開(解凍)し,パスを通しておくこと

隔離された Python 仮想環境の新規作成と,TensorFlow 1.15(旧バージョン)のインストール

  1. 今から作成する隔離された Python 仮想環境の名前と、Pythonのバージョンを決めておく
  2. Windows で,コマンドプロンプトを実行.
  3. virtualenv隔離された Python 仮想環境新規作成し,有効化

    下の例では,隔離された Python 仮想環境の名前をtf1に設定している

    mkvirtualenv tf1
    lsvirtualenv 
    

    [image]
  4. TenforFlow 1.15 のインストール

    このとき,virtualenv の隔離された Python 仮想環境を有効化する(「tf1」のところは、Python仮想環境の名前)

    ※ 「py」は,Windows のPythonランチャーAnaconda 3 内の Python などを間違って使ってしまわないように,Pythonランチャーを使って Python を起動している.Ubuntu では「py」でなく「python3」コマンドを使う.

    ※ 「py -m pip install」は,Python パッケージをインストールするための操作. Ubuntu では,「py -m pip install」の代わりに「pip3 install ...」のように操作すること.

    workon tf1
    py -m pip install --upgrade pip
    py -m pip install -U tensorflow==1.15
    

    [image]

    GPU版の TensorFlow を使いたいとき

    ※ TensorFlow 1.15 では CPU 版と GPU版が 1つのパッケージに統合されている.

    GPU 版 TensorFlow 1.15 を使うために,https://developer.nvidia.com/cuda-10.0-download-archiveから CUDA 10.0 を入手し,インストールしておくこと

    そして,https://developer.nvidia.com/cudnn から cuDNN を入手し,C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0 などに展開(解凍)し,パスを通しておくこと


pix2pixのインストール

謝辞:https://github.com/affinelayer/pix2pix-tensorflow で公開されている著作物を利用している

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

    [image]
  2. virtualenv の隔離された Python 仮想環境を有効化する(「tf1」のところは、Python仮想環境の名前に変えること)

    workon tf1
    

    [image]
  3. 以前に,このWebページの手順で,pix2pixをインストールしたことがあれば次の手順で消去

    mkdir c:\pytools
    cd c:\pytools
    rmdir /s /q pix2pix-tensorflow
    

    [image]
  4. pix2pixのインストール

    git clone https://github.com/affinelayer/pix2pix-tensorflow
    

    [image]
  5. データのダウンロード操作

    affinelayer/pix2pix-tensorflow の Web ページ に記載の通り行う.

    cd c:\pytools\pix2pix-tensorflow
    python tools\download-dataset.py facades
    

    [image]
  6. c:\pytools\pix2pix-tensorflow\facades の下の train と test にたくさんの画像ファイルがダウンロードされたことを確認する.

    [image]
  7. モデルのトレーニングを行う操作

    ※ これも,affinelayer/pix2pix-tensorflow の Web ページ に記載の通り行う.

    ※ GPU のときは数時間.CPUのときはさらに時間がかかる.

    python pix2pix.py --mode train --output_dir facades_train --max_epochs 100 --input_dir facades\train  --which_direction BtoA
    

    [image]

    BtoA について

    「--which_direction BtoA」と指定したので, 「右側」のような画像をコンピュータに与えたら,「左側」のような画像が生成されるように,モデルのトレーニングを行いなさいという指示になる.

    [image]
  8. 終了の確認

    ※ GPU 版の TenforFlow を使わない場合は,終了まで,かなり待つ.終了したらエラーメッセージが出ていないことを確認する.

    [image]
  9. 学習結果のファイルの確認

    次に,「学習結果の出力先 (--output_dir オプション)」として指定した facades_train に,ファイルができていることを確認する.

    [image]
  10. 確認のため,学習結果を tensorborard で表示

    次の手順で表示してみる

    1. tensorboard の起動

      このとき,起動メッセージに,URLが「http://hoge:6006」のように表示されるので確認する.

      実行手順例

      tensorboard --logdir=facades_train
      

      [image]
    2. Web ブラウザで、先ほどの URL を開く

      [image]
    3. GRAPHS」をクリックして確認する

      [image]

モデルのテスト

※ これも,affinelayer/pix2pix-tensorflow の Web ページ に記載の通り行う.

  1. 画像を準備し,facades\val ディレクトリに置く
  2. 次のコマンドを実行
    python pix2pix.py  --mode test --output_dir facades_test --input_dir facades\val  --checkpoint facades_train
    

    [image]
  3. モデルのテストのプログラムは,それほど時間がかからない.終わったら,エラーメッセージが出ていないことを確認する.

    [image]
  4. 上のコマンドを実行すると,出力先として指定した「facades_test」に ファイルができるので確認する.

    [image]
  5. ここにある index.html ファイルを,Web ブラウザで開くと,簡単に結果が確認できる.

    [image]

本サイトは金子邦彦研究室のWebページです.サイトマップは,サイトマップのページをご覧下さい. 本サイト内の検索は,サイト内検索のページをご利用下さい.

問い合わせ先: 金子邦彦(かねこ くにひこ) [image]