機密データを扱う都合でオフラインPCでchainerの環境構築を行いました。
あんまり同じような人はいないでしょうが、誰かのお役に立てば幸いです。
へなちょこプログラマーにつき、ミスの指摘もアドバイスも大歓迎です。
環境
Windows10 home
GeForce GTX1080
Python 3.6.3(Anaconda 5.0.1)
Visual studio 2015 or 2017
CUDA9.1
CuDNN 7.1
Chainer 4.0.0b4
Cupy 2.4.0
方法
Pythonインストール
- オンラインPCでAnacondaのインストーラを入手し、オフラインPCに移動させてインストール
visual studioインストール
- オンラインPCでvisual studioのisoファイルを入手(方法は割愛)してDVDに焼くなり、マウントしてUSBやHDDに入れるなりしてオフラインPCに移動し、visual studioをインストール(必ずCUDAより先に)
※今回2017の有償版を入れてますが、オンライン環境であればVS2015のC++BulidToolsのみでOK
CUDAインストール
- オンラインPCでCUDAのインストーラを入手し、オフラインPCに移動させてインストール
cuDNN適用
オンラインPCでcuDNNのzipファイルを入手し、オフラインPCに移動させて展開し、以下のようにファイルを移動させる
- binに入っているファイル(cudnn64_7.dll) → C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\bin
- includeに入っているファイル(cudnn.h) → C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\include
- lib\x64に入っているファイル(cudnn.lib) → C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\lib\x64
詳しくは以下参照
http://docs.nvidia.com/deeplearning/sdk/cudnn-install/index.html#installwindows
環境変数の設定
以下を参考にしました
https://twitter.com/i/moments/820727312010252289
- コントロールパネル→システム→システムの詳細設定→詳細設定のタブの右したにある環境変数のボタンをクリック→システム環境変数のPathを選択し、編集ボタンをクリック→新規のボタンをクリックして以下の4つを追加
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.1\include
C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin
cupy と chainer インストール
オンラインPCでpypiからchainerとcupyのtar.gzファイルダウンロード
https://pypi.python.org/pypi/chainer
https://pypi.python.org/pypi/cupy
chainerを入れるときにfastrlockが必要というエラーが出たのでこれもオンラインPCでpypiからtar.gzファイルをダウンロード
https://pypi.python.org/pypi/fastrlock
- tar.gzファイルをオフラインPCの任意の場所に置く
- オフラインPCでコマンドプロンプト(AnacondaをAlluserで入れた場合は管理者権限)を立ち上げ、tar.gzファイルがあるディレクトリに移動
-
pip install fastrlock-0.3.tar.gz
を実行(バージョンによって数字は異なる)←chainerより先に入れないとchainerのインストール時にエラー -
pip install chainer-4.0.0b4.tar.gz
を実行(バージョンによって数字は異なる) -
pip install cupy-2.4.0.tar.gz
を実行(バージョンによって数字は異なる)
※tar.gzファイルでうまくいかない場合、setup.pyを試す
-
オンラインPCでGithubからzipファイルをダウンロード
chainer:https://github.com/chainer/chainer
fastrlock:https://github.com/scoder/fastrlock
cupy:https://github.com/cupy/cupy -
オフラインPCにzipファイルを移動させて展開
-
コマンドプロンプトを立ち上げ、zipを解凍したファイルがあるディレクトリに移動
-
各パッケージのsetup.pyが存在するディレクトリまで移動
-
python setup.py install
を実行
pipでのインストールでUnicodeDecodeErrorが出る場合は以下で対応できるそうです
https://qiita.com/ruteshi_SI_shiteru/items/be6a58276bdbd67dc096
まとめ
Windowsかつオフラインという面倒×面倒ですが、ちゃんとGPUで計算できました!
GPUはやい。すごい。