はじめに
以前のブログにてDIGITS4.0をWindowsにインストールする手順を取り上げてから2年立ちましたが、ディープラーニングの普及は益々進み、 老若男女問わずこの技術の習得に関心が高まるこのごろですね。 そんな中、「プログラミングができなくてもディープラーニングできるよ!」という触れ込みでNVIDIA社さんがトレーニング(通称DLI)をオンラインや特別イベントなどでも主催し、少なからずAIに触ったという方は増えてきている様子ですが、 環境構築の面では未だまだ敷居が高いようです。 なにより厳しいのは一般企業の方は"Windows文化"ですよね。WindowsでのノンプラグラミングディープラーニングはSONYさんのNNablaもありますが、特にDLIを受講された方はDIGITSの方になれていると思いますので、内容を少しブラッシュアップしました。
DIGITSは5.0でも6.0でも良いですが、GANをやりたいときは6.0らしいっす。新しいのにしておきましょう。
環境
必須
- Windows 7 / Windows 10 - 64 bit
- Anaconda/ Miniconda
- Microsoft Visual C++ Compiler for Python 2.7
Anaconda/MinicondaのPythonは2でも3でも良いですが、私自身はPython3.X (現時点では3.6)を普段はメインで使っており将来性の観点から3.Xの導入をおすすめします。
インストール時にAdd Anaconda to my PATH environment variableを有効にしてください.
推奨
- GitHub for Windows
- (GPUを利用する場合)NVIDIAドライバ
これからインストールするもの
- Chachay/nvcaffe at windows
- DIGITS 5.0または6.0
- Graphviz 2.38
CaffeはNVIDIAがお手入れしている通称NVCaffeが一番良いのですが、WindowsでCaffeビルドするのが少し骨だと思いますので、Prebuild版で済ませます。
PowerShellの準備
以降、コマンドプロンプトかPowerShellを使います。PowerShellを前提に書いていくので、こちらを使う場合、機能制限を取っ払ってくださいね。
WindowsでPowerShellスクリプトの実行セキュリティポリシーを変更する:Tech TIPS - @IT
Microsoft Visual C++ Compiler for Python 2.7
python 2.7で使うコンパイラの入手とインストールをしておきます
こちらから入手http://aka.ms/vcpython27
Caffeの導入
別途用意したNVCaffeを使います。GPU版かCPU only版かはご自分の環境に合わせてどちらか一つを選択。Chachay/caffe: Caffe: a fast open framework for deep learning.
ダウンロードが終わったら、C:\CaffeやD:\CaffeなどにZipを展開します。好きなところで良いですがPathにスペース(" ")が含まれないほうが楽でしょう。展開後は下記のような構成になっているはず。あとでPATHを使いますので覚えといて。
C:\CAFFE
├─bin
├─include
├─lib
├─python
└─share
Graphvizのインストール
condaのパッケージにありましたね。
conda install graphviz
dot -V
dot -Vが通らなければ、anacondaインストール時に環境変数を設定してなかったことが原因だと思いますので、直してください
生でインストールする場合はこちら
Graphviz - Windows Packagesからダウンロードしてきて、インストール。インストール先を環境変数PATHにbinフォルダを追加します。 こちらのページが詳しいです。
DIGITSのクローン
DIGITSを置きたいフォルダでPowerShellを開きます。フォルダのところでShift押しながら右クリックして「PowerShellウィンドウをここで開く」
git clone -b digits-6.0 https://github.com/NVIDIA/DIGITS.git
# DIGITS 5.0を使いたいときは
# git clone -b digits-5.0 https://github.com/NVIDIA/DIGITS.git
zipで落とすならこちら
Python2.7 仮想環境の構築
便利ファイルのダウンロード
以下のレポジトリからrequirements_conda.txt, requirements_pip.txtを入手してください。私のAnaconda環境が悪いのかconda create --file env.ymlがうまく動かなかったので、 マニュアルな方法を案内いたしますが、env.yml読めそうな人は同梱のymlで試してみてください。
Chachay/DIGITS_Windows_Packagesパッケージ類のインストール
DIGITSのオリジナルで付属しているrequirements.txtは、Windowsでは動作が怪しいパッケージだったり、 BVLC版Prebuild Caffeとの相性だったりが悪いので手直ししたものを使います。
もしcondaをpowershellに対応させてなかったら初期化を実行し、一旦閉じます。
conda init powershell
powershellを開き直して続きをします。
git clone https://github.com/Chachay/DIGITS_Windows_Packages
cd DIGITS_Windows_Packages
conda create -n DIGITS python=2.7
conda activate DIGITS
conda install -c free --file requirements_conda.txt --yes
pip install -r requirements_pip.txt
scikit-fmmが謎の問題をconda上で起こしますので、手直しします。参考:wheel files not working on Conda with Windows · Issue #27 · scikit-fmm/scikit-fmm
pip uninstall scikit-fmm
pip install --no-binary :all: scikit-fmm
cd ..
さらにGPUを利用する場合はCUDA10.1ツールキットを入れます。
conda install cudatoolkit=10.1.168
仮想環境の環境変数設定
CaffeのバイナリとPyCaffeへのPathを通します
$tmpPythonPath = (gcm python).Definition
$tmpPythonPath = $tmpPythonPath.Substring(0, $tmpPythonPath.Length - 10)
pushd $tmpPythonPath # 仮想環境のルートフォルダまで移動
mkdir .\etc\conda\activate.d
mkdir .\etc\conda\deactivate.d
New-Item -type File .\etc\conda\activate.d\env_vars.ps1
New-Item -type File .\etc\conda\deactivate.d\env_vars.ps1
で、両方のフォルダのenv_vars.batを編集します。
activateの方. Caffeの置き場は覚えていますね?
ファイルを開きます。vimなどを持っていれば、そちらを使って下さい。
notepad .\etc\conda\activate.d\env_vars.ps1
env_vars.ps1のファイルの中身はこちらの通り。
$env:PYTHONPATH="C:\caffe\python;" + $env:PYTHONPATH
$env:OLDPATH=$env:PATH
$env:PATH=$env:ProgramFiles + "\NVIDIA Corporation\NVSMI;" + $env:PATH + ";C:\caffe\bin"
deactivateの方も同様に。似てますけど…
# set PYTHONPATH=%PYTHONPATH:C:\caffe\python:=%
$env:PATH=$env:OLDPATH
$env:OLDPATH=
DIGITS起動
新しくPowerShellを開き直し、git cloneした中に入ってください。
cd digits
ls # .githubに続いてdigitsフォルダが見えるはず…
# digitsの学習結果等保存するフォルダ
mkdir c:\digits\jobs
# DIGITSのために作ったpython仮想環境の有効化
conda activate DIGITS
$env:DIGITS_JOBS_DIR=c:\digits\jobs
# digits起動
python -m digits
ブラウザでhttp://localhost:5000/へアクセスするとDIGITSのホーム画面に。
注意事項
本家BVLCのWindowsブランチが賞味期限切れとなり、プリビルドのバイナリを入手できなくなっています。
今後入手が難しいことが出てきたらBVLC/caffe at windowsの説明の通り本家版Windowsブランチを自分でビルドするか、NVCaffe 0.15をWindowsでビルド(GPU対応) - Qiitaを参照してください。
参考
- NVIDIA DEEP LEARNING INSTITUTE TRAINING CATALOG
- DLIのコースカタログです。入門者向けはDIGITSを利用したものが多めです。
- User Guide — virtualenv 16.0.0 documentation
- PowerShellのスクリプト実行ポリシーについて
- Managing environments — Conda documentation
- activate時にスクリプトを実行する方法
No comments:
Post a Comment