本記事では、リアルな画像を生成できるStyleGAN2について実際に体験するための手順を記載しました。
0. モチベーション
アイドルや美少女キャラを無限増殖させるなどで話題になったStyleGAN2をWindowsPCで動かすことが今回の記事のモチベーションです。動かすといっても、PCで学習は厳しいので、学習済みモデルを使って画像を生成させることを目標にします。環境による差もあるので、あくまで参考にしてください。
StyleGAN2のアーキテクチャについては、別記事にて投稿しています。
また、今回はGPU搭載のSurface book3を使っていますが、CPUでの動作についてもトライ中です。完成し次第こちらも別記事にて投稿予定です。
1. StyleGAN2のソースを入手
StyleGAN2のGithubページからソースをダウンロードしてPCの任意のディレクトリに配置。
Requirementsにあわせて以下を順番にインストールしていきます。
No | 必要なもの | バージョン |
---|---|---|
1 | Python | 64ビットPython3.6 |
2 | Anaconda | 3(numpy1.14.3以降) |
3 | TensorFlow | 1.14(GPU) |
4 | CUDAツールキット | 10.0 |
5 | cuDNN | 7.4.2※ |
6 | Microsoft Visual Studio コンパイラ | 2017 |
※StyleGAN2のRequirementsにはcuDNNのバージョンは「7.5」と記載がありますが、Tenforflowのサポートバージョンの7.4をインストールします(7.5も試してみましたが、RunTimeのエラーが発生。。。)。
2.環境準備
1) Python3.6をインストール
Python3.6から64ビット用インストーラをダウンロードして実行。コマンドプロンプトでバージョンを確認します。
> Python -V
Python 3.6.0
2) Anaconda3をインストール
Anacondaのサイトの画面をスクロールし、画面下部のインストーラ(今回は、Anaconda3-2021.05-Windows-x86_64)をダウンロードして実行。インストールが完了したら、Anaconda Promptを起動してバージョンを確認します。
> conda --version
conda 4.9.2
3) Microsoft C++ Build Toolsをインストール
VisualStudioサイトから「Visual Studio コミュニティ 2017」をダウンロードして実行。「C++によるデスクトップ開発」にチェックして、インストール。
インストール後、『cl.exe』と『vcvars64.bat』にパスを通します(環境変数のPATHに以下が登録されていることを追加・確認します)。
> echo %path%
:
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\bin\Hostx64\x64
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build
:
※複数のVisual Studioがインストールされている場合、以下のコマンドを実行した結果、「2017」のパスが一覧の先頭にあることを確認します(最初が「2017」になっていない場合は、システムの環境変数の「Path」で順番を変更します)。
> where cl
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\bin\Hostx64\x64\cl.exe
4) CUDAツールキットをインストール
CUDAのサイトから「CUDA Toolkit 10.0」をダウンロードし、インストール。
インストールはデフォルトの設定で実行(もし、すでに10.0より新しいCudaがインストールされている環境で、上書きされたくない場合は、カスタムインストールでCudaだけにチェックをいれてインストール)。
インストール後、PATHなどを確認します(必要な場合は追加)。
> echo %cuda_path%
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0
> where nvcc
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\bin\nvcc.exe
> nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2018 NVIDIA Corporation
Built on Sat_Aug_25_21:08:04_Central_Daylight_Time_2018
Cuda compilation tools, release 10.0, V10.0.130
5) cuDNNをインストール
サイトからcuDNN(7.4.2)をダウンロード(アカウントがないとダウンロードできないので、必要に応じてアカウントを作成)。ダウンロード後、解凍して、中身をすべて「C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0」にコピー。
バージョンは以下のファイルで確認します。
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\include\cudnn.h
#define CUDNN_MAJOR 7
#define CUDNN_MINOR 4
#define CUDNN_PATCHLEVEL 2
3.仮想環境を作成
Anaconda Promptを起動し以下を実行。
> conda create -n stylegan2 Python=3.6 anaconda # 仮想環境を作成
> conda activate stylegan2 # 仮想環境をActivate
> python -m pip install --upgrade pip # Pipをupgrade
> pip install tensorflow-gpu==1.14.0 # Tensor flow 1.14.0のインストール
> pip list # パッケージを確認
※Pillowやrequestsが入っていなかった場合、numpyのバージョンが1.16.5より古かった場合は、それぞれ以下を実行(おそらく不要です)
> pip install Pillow
> pip install requests
> pip install numpy==1.16.5
4. StyleGan2を動かしてみる
1) 事前確認:NVCCの動作確認
> nvcc test_nvcc.cu -o test_nvcc -run
:
CPU says hello.
GPU says hello.
2) 環境設定:「custom_ops.py」の修正
:
compiler_bindir_search_path = [
'C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx64/x64',
]
:
3) 画像生成を動かしてみる
python run_generator.py generate-images --network=gdrive:networks/stylegan2-ffhq-config-f.pkl --seeds=66,230,389,1518 --truncation-psi=1.0
4) style-mixingを動かしてみる
python run_generator.py style-mixing-example --network=gdrive:networks/stylegan2-ffhq-config-f.pkl --row-seeds=85,100,75,458,1500 --col-seeds=55,821,1789,293 --truncation-psi=1.0
意外に簡単な手順で動いたので、環境のある方はぜひお試しください。
また、冒頭にも記載しましたが、StyleGAN2のアーキテクチャや、CPU版も別記事で記載予定です。励みになりますので、興味のある方は、ぜひLGTMやフォローをお願いします
参考サイト
論文
StyleGAN2をWindows 10で動かす【Python】
CUDA+cuDNNのインストールまとめ
NVCCについて
© 2021 NPO法人AI開発推進協会