Torchのリアルタイム画風変換を試す(環境構築)
Nov 6, 2017 · othersMachineLearning
リアルタイム画風(スタイル)変換といわれる、ディープラーニングを使って画像の画風(雰囲気)を変換する技術を実際に試すまでの手順のメモ
利用するアルゴリズムの元の論文はこちら
Github上での実装:fast-neural-style
この記事では環境構築まで。実際の実行はこちら
この実装ではニューラルネットワークがTorchで実装されているので、動作環境はUbuntuかmacである。今回は、Ubuntu上で実際にオリジナルのモデルのトレーニングまでを試してみる
なおトレーニング済のモデルを使って画風変換をするだけなら、macでも特に問題ない。今回はモデルのトレーニングも試したかったので、GPUが使えるUbuntuを選択した(今のMacBookProのGPUはRadeonに変わってしまったので・・・)ちなみにWindows10上でのUbuntuも試してみたが、ものすごく動作が遅くてダメだった(原因は不明)
Ubuntuのインストール
インストールの詳細方法は他に詳しいところがたくさんあるので割愛するが、ポイントは以下の2点
- バージョン:Ubuntu 16.04 LTS
- ストレージ容量:80GB程度
(OS 20GB + データ 60GB)
今回は、日本語版をダウンロードしてインストールしたが、結局、言語は英語で利用しているので本家のものでも良いと思われる
(言語が日本語だとエラーメッセージも日本語になってしまってググった時に情報が見つかりにくい)
ストレージは特にCUDA関連が容量を使うので注意。また、トレーニング用のデータセットもトータルで30GB近くある。SSDの様に容量が限られている場合は、インストールするパーティションは20GB程度にしてデータセットは別HDDに置くなり、データセットの作成を別PCで行い、生成されたデータを持っていく方法もあり(その場合、データ用は30GB程度でOK)
インストール後の設定
アップデートを実施
sudo apt update sudo apt upgrade sudo apt autoremoveSSH接続できる様にする
sudo apt-get install openssh-server今回はmacからSSH経由で操作したかったので上記を実施。直接、Ubuntuのデスクトップから操作する場合は不要
ちなみに、macからはターミナルとCyberDuckで接続している。 先にCyberDuckからSFTP接続すると鍵の許可とかもしてくれるし、ファイルを見たり転送したり書き換えできるので便利。以降はmac上から操作している
Torchのセットアップ
基本的には公式の手順通り
Gitのインストール
sudo apt install gitTorchのインストール
git clone https://github.com/torch/distro.git ~/torch --recursive cd ~/torch; bash install-deps; ./install.sh source ~/.bashrcluarocksのセットアップ
luarocks install image luarocks list動作確認
thと実行して
の様な画面になればOK。
exitで抜ける
トラブルシューティング
基本は順番通りにすればエラーは出ないはずだが、./install.shで
error: more than one operator "==" matches these operands:export
の様なエラーが出ることがある。その場合は、
export TORCH_NVCC_FLAGS="-D__CUDA_NO_HALF_OPERATORS__"
としてから再度実行すれば良い
ただ、恐らく先にCUDAの新しすぎるバージョンを入れると発生する様なので、通常は遭遇しないはず
fast-neural-style用のセットアップ
基本的にはreadmeの手順通り
- 必要なパッケージをインストール
luarocks install torch luarocks install nn luarocks install image luarocks install lua-cjson
CUDAのインストール
公式のCUDA Toolkit Downloadのページをブラウザで開く
「Linux」 - 「x86_64」 - 「Ubuntu」 - 「16.04」 - 「deb[network]」を選択
右上の「download」からファイルをダウンロード
※現時点(2017⁄11)では、http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/cuda-repo-ubuntu1604_9.0.176-1_amd64.debというURL。以降はこのURLを前提とする以下のコマンドを実行
sudo dpkg -i cuda-repo-ubuntu1604_9.0.176-1_amd64.deb指定するファイル名がダウンロードしたファイル名と一致しているか注意
sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/7fa2af80.pub公式通りのURLだと
httpsがエラーになるので、httpでアクセスしているのがポイントsudo apt-get updateエラー出る場合はトラブルシューティング参照
sudo apt-get install cuda
cuDNNのインストール
- 公式のNVIDIA cuDNNをブラウザで開いて「Download」をクリック
- ログインする(ユーザ登録が必須)
- 画面の指示通りに承諾をしていく
- 「
Download cuDNN v5.1 (Jan 20, 2017), for CUDA 8.0」を選択 - 「
cuDNN v5.1 Library for Linux」をダウンロードする
v5系かつtgz方式を選択すること
(Debの方はマニュアル通りにしてもうまくコピーされなかった) ダウンロードしたファイルを解凍する
tar -xzvf cudnn-8.0-linux-x64-v5.1.tgz指定するファイル名がダウンロードしたファイル名と一致しているか注意
以下のコマンドを実行
sudo cp cuda/include/cudnn.h /usr/local/cuda/include sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64 sudo chmod a+r /usr/local/cuda/include/cudnn.h sudo chmod a+r /usr/local/cuda/lib64/libcudnn*パスを設定する(bashの場合)
echo export CUDNN_PATH="/usr/local/cuda/lib64/libcudnn.so.5" >> ~/.bashrc source ~/.bashrcLuaのモジュールをインストールする
luarocks install cudnn
ここまででひとまず最低限の環境はできた状態
トラブルシューティング
CUDAのインストール時に
E: Problem executing scripts APT::Update::Post-Invoke-Success 'if /usr/bin/test -w /var/cache/app-info -a -e /usr/bin/appstreamcli; then appstreamcli refresh > /dev/null; fi'
E: Sub-process returned an error code
という様なエラーが出る場合は、
cd /tmp && mkdir asfix
cd asfix
wget https://launchpad.net/ubuntu/+archive/primary/+files/appstream_0.9.4-1ubuntu1_amd64.deb
wget https://launchpad.net/ubuntu/+archive/primary/+files/libappstream3_0.9.4-1ubuntu1_amd64.deb
sudo dpkg -i *.deb
とすると、OK
