Windows 10にCUDA,Theano,およびKerasをインストールするまでを忘備録として記します.いろいろなサイトを参考にして試行錯誤した結果です.本当は,PyCUDAもインストールしたかったのですが,まだうまくいっていません.
環境
- PC: VAIO Fit 14 (SVF14A1A1J)
- OS: Windows 10 Home (64-bit)
- CPU: Intel Core i5-3337U @ 1.80 GHz
- GPU: NVIDIA GeForce GT 735M
- RAM: 8 GB
CUDA Toolkit
https://developer.nvidia.com/cuda-downloads で,
- Operating System: Windows
- Architecture: x86_64
- Version: 10
- Installer Type: exe (local)
を選び,ダウンロードしたファイルを実行してインストールする.Version 9.0.176がインストールされた.
NVIDIA cuDNN
インストールするにはメンバーシップが必要なので,未登録の場合は https://developer.nvidia.com の右上のJoinから登録する(無料).
https://developer.nvidia.com/rdp/cudnn-download で,同意ボタンを選択し,リストの中から,
- Download cuDNN v7.0.4 (Nov 13, 2017), for CUDA 9.0
- cuDNN v7.0.4 Library for Windows 10
を選んでダウンロードした圧縮ファイルを展開する.そして,展開してできたcudnn-9.0-windows10-x64-v7\cuda
以下をすべて,C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0
にコピーする.
Miniconda
https://conda.io/miniconda.html で,
- Windows
- Python 3.6
- 64-bit (exe installer)
を選び,ダウンロードしたファイルを実行してインストールする.インストール中の選択肢は,すべてデフォルト設定のまま行った.Miniconda3 4.3.30 (64-bit)がインストールされた.
Theano
Kerasのバックエンドとして,主にTensorFlowとTheanoという選択肢があるが,今回はTheanoを選ぶ.
スタートメニューからAnaconda Promptを起動し,以下を順次実行する.最新のバージョン1.0をインストールするために,チャネルにmila-udem
を指定するところがポイント.(2017/11/18では,conda install theano
だとバージョン0.9.0がインストールされるが,これはcuDNN v7と互換性がない.)
conda create -n keras
activate keras
conda install -c mila-udem theano pygpu
m2w64-toolchain
,libpython
,libgpuarray
などの依存パッケージも一緒にインストールされる.
コントロールパネルで環境変数を設定する.(これを設定しなかったときに出たエラーメッセージに従っているだけで,理由については理解していません.)
- 変数名:
MKL_THREADING_LAYER
- 変数値:
GNU
GPUを使用するために,~\.theanorc.txt
を作成して,以下の内容で保存する.
[global]
device = cuda
floatX = float32
実際にインポートしてみる.
python
>>> import theano
Using cuDNN version 7004 on context None
Mapped name None to device cuda: GeForce GT 735M (0000:01:00.0)
>>> theano.__version__
'1.0.0'
うまく動いていそう.
Keras
同じく仮想環境keras
下で,Kerasをインストールする.
conda install -c conda-forge keras
Kerasをインポートしてみる.
python
>>> import keras
(中略)
ModuleNotFoundError: No module named 'tensorflow'
デフォルトのバックエンドがTensorFlowのため,ModuleNotFoundError
が発生する.Theanoをバックエンドに指定するために,(先ほどのimport
文で自動で作成された)~\.keras\keras.json
を以下の内容に書き換える.
{
"floatx": "float32",
"epsilon": 1e-07,
"backend": "theano",
"image_data_format": "channels_last"
}
もう一度インポートしてみる.
python
>>> import keras
Using Theano backend.
Using cuDNN version 7004 on context None
Mapped name None to device cuda: GeForce GT 735M (0000:01:00.0)
>>> keras.__version__
'2.0.9'
今度はうまくいった.