Python
Linux
DeepLearning

「ディープラーニングの力で結月ゆかりの声になる」ためのLinux環境構築

 概要

ニコニコ動画でデモされている「ディープラーニングの力で結月ゆかりの声になってみた」のコードを実行するための環境構築の方法を紹介します。
手順が多いため走り書きになりますが、ご了承ください。

「ディープラーニングの力で結月ゆかりの声になってみた」

コマンド解説の記事も作成しました
https://qiita.com/atticatticattic/items/f1e4c671d73d815bbad2

使用ハード

  • OS: Ubuntu Server 17.10
  • CPU: AMD Ryzen7 1700X
  • GPU: GTX 970
  • ストレージ: SSD 80G + HDD 300G

補足

Windows環境での実行はできません

ソースの Readme に有るように Linux の Python 環境での実行を前提をしているようで、Windows 環境で実行しようとすると エラーが発生します。

GPUが無くても諦めるのはまだ早い

Amazon AWS の GPU 付き インスタンスを使えば 高速な学習処理ができます。
一番安い p2.xlarge をスポットインスタンスで運用すれば、一時間 30円程度で使えます。
https://aws.amazon.com/jp/ec2/instance-types/p2/

一度、学習データをさえ作ってしまえば、バッチ処理での音声変換はCPUでも現実的な時間で処理できるため、問題ないかと思います。
※ ただし、デモ動画のようなリアルタイム変換をしたい場合は、GPUが必用になります

1. エディタ・sshのインストール

エディタのインストール

sudo apt-get install emacs vim

sshのインストール

sudo apt-get install aptitude
sudo aptitude install ssh
sudo /etc/init.d/ssh start

2. GPUドライバ インストール

※ Nvidia Toolkit 9.1 をインストールするので、ドライバは必ず nvidia-387(または390)をインストールしてください。 NvidiaのGPUドライバと Nvidia Toolkitのバージョンは正しく組み合わせないと動きません。

sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
sudo apt-get install nvidia-387

※ 上記コマンドを実行するとおそらく nvidia-390がインストールされますが、387と同じ扱いのようなので差し支えありません。

3. 開発系全般のインストール

sudo apt-get install build-essential

4. gcc6系のインストール & コマンド置き換え

※ Nvidia Toolkit 9.1 は gcc6系を使用しますが、Ubuntu 17では gcc7がインストールされます。

sudo apt-get install gcc-6 g++-6
sudo rm /usr/bin/gcc /usr/bin/g++
sudo ln -s /usr/bin/gcc-6 /usr/bin/gcc
sudo ln -s /usr/bin/g++-6 /usr/bin/g++
gcc --version
g++ --version

5. Nvidia ToolKit 9.1 のインストールで必用なライブラリをインストール

sudo apt-get install libglu1-mesa libxi-dev libxmu-dev libglu1-mesa-dev

6. Nvidia ToolKit 9.1 をダウンロード

6.1 ファイルダウンロード

下記サイトから、
https://developer.nvidia.com/cuda-downloads?target_os=Linux&target_arch=x86_64&target_distro=Ubuntu&target_version=1704&target_type=runfilelocal

パッチを含めた4ファイルをダウンロードする
- cuda_9.1.85_387.26_linux.run
- cuda_9.1.85.1_linux.run
- cuda_9.1.85.2_linux.run
- cuda_9.1.85.3_linux.run

6.2 インストール実行

Nvidiaドライバのインストールはスキップしてください。
それ以外のToolkitとサンプルはインストールしてください。
インストールパスなどはデフォルトで大丈夫です。
※ なぜだかこの実行ファイルのドライバ入れるとクラッシュしました。

sudo cuda_9.1.85_387.26_linux.run

実行結果が下記のようになっており、エラーが発生していないか確認してください。

===========
= Summary =
===========

Driver:   Not Selected
Toolkit:  Installed in /usr/local/cuda-9.1
Samples:  Installed in /home/[username]'

問題なければ、引き続き下記のコマンドでパッチをインストールしてください。

sudo cuda_9.1.85.1_linux.run
sudo cuda_9.1.85.2_linux.run
sudo cuda_9.1.85.3_linux.run

7. Nvidia cuDNN

7.1 ダウンロード

下記サイトから
https://developer.nvidia.com/cudnn
"Download cuDNN v7.1.3 (April 17, 2018), for CUDA 9.1"を選んで、

下記の3つのファイルをダウンロードしてください
- cuDNN v7.1.3 Library for Linux
- cuDNN v7.1.3 Runtime Library for Ubuntu16.04 (Deb)
- cuDNN v7.1.3 Developer Library for Ubuntu16.04 (Deb)

ダウンロードできたファイルはそれぞれ 
- cudnn-9.1-linux-x64-v7.1.tgz
- libcudnn7_7.1.3.16-1+cuda9.1_amd64.deb
- libcudnn7-dev_7.1.3.16-1+cuda9.1_amd64.deb
になります。

7.2 インストール

  • cuDNN v7.1.3 Library for Linux を解凍してファイルコピー
tar xvf cudnn-9.1-linux-x64-v7.1.tgz

.bashrc に下記を追加して source .bashrcする 

export CUDA_PATH=/usr/local/cuda
export PATH=$CUDA_PATH/bin:$PATH
export CFLAGS=-I/usr/local/cuda/include
export LDFLAGS=-L/usr/local/cuda/lib64
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
  • インクルードファイルとライブラリファイルをコピーする
cp cuda/include/* $CUDA_PATH/include
cp cuda/lib64/* $CUDA_PATH/lib64
  • libcudnnの2ファイルをインストール
sudo dpkg -i libcudnn7_7.1.3.16-1+cuda9.1_amd64.deb
sudo dpkg -i libcudnn7-dev_7.1.3.16-1+cuda9.1_amd64.deb

NVIDIA 9.1 のサンプル実行

下記コマンドで動作確認を行います。

cd NVIDIA_CUDA-9.1_Samples/1_Utilities/deviceQuery
make
./deviceQuery

実行結果の最期が下記の様になっていれば取り敢えず成功です。

deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 9.1, CUDA Runtime Version = 9.1, NumDevs = 1
Result = PASS

8. python3 インストール & コマンド置き換え

sudo apt-get install python3 python3-pip
sudo rm /usr/bin/pip /usr/bin/python
sudo ln -s /usr/bin/pip3 /usr/bin/pip
sudo ln -s /usr/bin/python3 /usr/bin/python
pip -V
python -V

python 3.6.3になっていることを確認してください。

9. pythonで利用する各種ライブラリをインストール

9.1 pip系のライブラリをインストール

sudo pip install -r requirements *途中でインストールが止まる
sudo pip install numpy
sudo pip install -r requirements

※ よくわからないが上記手順でインストールできた。(誰か理由を知っていたら教えてください。)
もし上手く行かなかった場合は 一度 pip uninstall してから pip install --no-cache を試してください。

・追記 2018.06.02

上記に加えて tqdm というライブラリも使用してたため、下記コマンドも実行願います

sudo pip install tqdm

9.2 ソースからライブラリをインストール

WORLD4py だけはpipからインストールできないのでソースからインストール

git clone https://github.com/yamachu/WORLD4py
cd WORLD4py
sudo python setup.py install

10. pythonで動作確認

pythonを対話モードで実行して下記のコマンドを実行してください。

import chainer
import cupy as cp
a = cp.array([1,2,3])
b = cp.array([2,3,5])
a + b

結果が下記のようになれば問題ないと思います。

array([3, 5, 8])

お疲れ様です。以上で、コマンド実行できるようになっているはずです。

※ 補足:コマンド実行する際には

各種コマンドにはいろいろオプションを付けてパスを指定したり、設定ファイルを用意したり、音声ファイルを用意したりする必用があります。
しかし、readmeには詳細は書かれていないため、ソースコードを読む必用があります。

追記 2018.06.02

コマンド解説の記事も作成しました
https://qiita.com/atticatticattic/items/f1e4c671d73d815bbad2