64bit windows8.1 に Theano, Pylearn2をインストール(GPU使用, Anaconda)
普段は研究室のPC(Ubuntu14.04 LTS, GTX780)を使っているが、どうにも学習に時間がかかるので、自分のPCでも軽く実験とかできたらなーと思った次第。今更すぎるが64bitのwindowsにTheanoを導入したので、手順をメモしておく。
参考元は以下
Installing CUDA 7.5 and PyCUDA on windows (for testing theano with GPU) – Weimin Wang
TheanoをWindowsにインストール - 人工知能に関する断創録
<環境>
Windows8.1 64bit
GeForce GTX970
Anaconda Python2.7
Anacondaを使いたいので、まずはそれからインストールする
https://www.continuum.io/downloads
上のページからpython2.7のインストーラをダウンロード。指示に従ってインストール。
64bit版を使って問題ないと思います。
必要なパッケージは大体入っているので便利だと思う。
あとwindowsのコンソールからもpipコマンドが使えるようになります。
インストール途中でpathを追加するか聞かれるので、指示通り追加しておく。
Visual Studio 2013 community
MicrosoftのおなじみVisual Studioをインストールする。
2015は対応していないので注意。2013 communityだと無償で利用できるが、Microsoftアカウントへの登録は必要。
以下からVisual Studio 2013 communityのインストーラをダウンロードしてインストール。途中でいろいろ聞かれるが、GPUで使う分には推奨設定で問題なさそう。ただし読み飛ばしてると付属で別のソフトが入れられるのでその辺は注意。
https://www.visualstudio.com/ja-jp/downloads/download-visual-studio-vs.aspx
その後「システムの詳細設定」から環境変数にpathを追加する。場所は適宜読み替えてください。
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\;C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE
依存パッケージ
Anacondaを入れるとほぼ必要なものが入るそうなので、以下のコマンドで事足りる。
conda install mingw libpython
CUDA Toolkit
NVIDIAのサイトから、CUDA Toolkitをダウンロードする。
2015/11/21現在ではCUDA7.5が最新でした。
CUDA Toolkit 9.2 Download | NVIDIA Developer
このサイトで、使用するGPUが対応しているかを確認しておく。
Git
gitを使える環境でなければインストールする。これじゃなくてもgitが使えれば何でもよい。
Git for Windows
PyCUDA
pythonでCUDA Toolkitを使うためのライブラリ。バイナリからインストールしている人が多かったので一応同じようにした。以下からバイナリをダウンロードできる。
http://www.lfd.uci.edu/~gohlke/pythonlibs/
python2.7 64bit版のAnacondaをインストールしたので、
pycuda-2015.1.3+cuda7518-cp27-none-win_amd64.whl
をダウンロードする。
その後同じディレクトリまで移動し、
pip install pycuda-2015.1.3+cuda7518-cp27-none-win_amd64.whl
としてインストール。
うまくできたか確認するには、以下のコードを使用する。
# from: http://documen.tician.de/pycuda/tutorial.html import pycuda.gpuarray as gpuarray import pycuda.driver as cuda import pycuda.autoinit import numpy a_gpu = gpuarray.to_gpu(numpy.random.randn(4,4).astype(numpy.float32)) a_doubled = (2*a_gpu).get() print a_doubled print a_gpu
乱数の行列が出力されればおけ。
ここからtheano↓
Theano
Theanoをインストール。以下のコマンドでcloneする
git clone git://github.com/Theano/Theano.git
その後、
cd Theano python setup.py install
としてインストール。GPUを使う場合は、ホームディレクトリ(C:\Users\ユーザ名 とかそんなん)に.theanorc.txt
ファイルを作成し、以下のように記述する。
#!sh [global] device = gpu floatX = float32 [nvcc] compiler_bindir=C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin # flags=-m32 # we have this hard coded for now [blas] ldflags = # ldflags = -lopenblas # placeholder for openblas support
動作確認には以下のコードを使う。
from theano import function, config, shared, sandbox import theano.tensor as T import numpy import time vlen = 10 * 30 * 768 # 10 x #cores x # threads per core iters = 1000 rng = numpy.random.RandomState(22) x = shared(numpy.asarray(rng.rand(vlen), config.floatX)) f = function([], T.exp(x)) print f.maker.fgraph.toposort() t0 = time.time() for i in xrange(iters): r = f() t1 = time.time() print 'Looping %d times took' % iters, t1 - t0, 'seconds' print 'Result is', r if numpy.any([isinstance(x.op, T.Elemwise) for x in f.maker.fgraph.toposort()]): print 'Used the cpu' else: print 'Used the gpu'
実行して以下のように表示されれば、めでたくインストール完了。
Using gpu device 0: GeForce GTX 970 (CNMeM is disabled) [GpuElemwise{exp,no_inplace}(<CudaNdarrayType(float32, vector)>), HostFromGpu(GpuElemwise{exp,no_inplace}.0)] Looping 1000 times took 0.674000024796 seconds Result is [1.23178029 1.61879349 1.52278066 ..., 2.20771813 2.29967761 1.62323296] Used the gpu
これで自宅pcでもtheanoが使えるようになった。
二台体制で実験できるでこれ
ここまでやったのでついでにpylearn2も入れる。