11
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【StyleGAN2】 を Windows10 CUDA + cuDNN で動かす!

Last updated at Posted at 2021-06-09

本記事では、リアルな画像を生成できるStyleGAN2について実際に体験するための手順を記載しました。

0. モチベーション

アイドルや美少女キャラを無限増殖させるなどで話題になったStyleGAN2をWindowsPCで動かすことが今回の記事のモチベーションです。動かすといっても、PCで学習は厳しいので、学習済みモデルを使って画像を生成させることを目標にします。環境による差もあるので、あくまで参考にしてください。

StyleGAN2のアーキテクチャについては、別記事にて投稿しています。

また、今回はGPU搭載のSurface book3を使っていますが、CPUでの動作についてもトライ中です。完成し次第こちらも別記事にて投稿予定です。

1. StyleGAN2のソースを入手

StyleGAN2のGithubページからソースをダウンロードしてPCの任意のディレクトリに配置。
stylegan_git.png

あわせて、必要な要件を確認します。
stylegan_git2.png

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のエラーが発生。。。)。
stylegan_cuDNNver2.png

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++によるデスクトップ開発」にチェックして、インストール。
vs.png

インストール後、『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の動作確認

カレントディレクトリを1の手順でゲットしたStyleGAN2の配置場所に移動して以下を実行。
結果の最後に以下が表示されることを確認(warningは出ても大丈夫)。
> nvcc test_nvcc.cu -o test_nvcc -run
:
CPU says hello.
GPU says hello.

2) 環境設定:「custom_ops.py」の修正

(Stylegan2配置ディレクトリ)\dnnlib\tflib\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=6600-6625 --truncation-psi=0.5 ``` seeds=6600-6625: ![result0.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1413258/776aed46-208b-f375-af72-196896ac7c85.png)

seeds=1000-1025:
result1.png

python run_generator.py generate-images --network=gdrive:networks/stylegan2-ffhq-config-f.pkl --seeds=66,230,389,1518 --truncation-psi=1.0

result20.png

Seedを変えると個性が変わり、truncation-psiを変えると個性の強さが変わるようですね。

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

stylemixing.png

下のほうは、肌や髪の毛の色がかなり影響を受けていそうですね。

意外に簡単な手順で動いたので、環境のある方はぜひお試しください。
また、冒頭にも記載しましたが、StyleGAN2のアーキテクチャや、CPU版も別記事で記載予定です。励みになりますので、興味のある方は、ぜひLGTMやフォローをお願いします:grinning:

参考サイト

論文
StyleGAN2をWindows 10で動かす【Python】
CUDA+cuDNNのインストールまとめ
NVCCについて

本書は筆者たちが勉強した際のメモを、後に学習する方の一助となるようにまとめたものです。誤りや不足、加筆修正すべきところがありましたらぜひご指摘ください。継続してブラッシュアップしていきます。また、様々なモデルの解説書を掲載していますので、興味のある方は、以下のサイトもご参照ください。

© 2021 NPO法人AI開発推進協会

11
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?