LoginSignup
31
29

More than 5 years have passed since last update.

Windows 8.1にTheano/Kerasをインストール

Last updated at Posted at 2015-07-18

はじめに

  1. Theanoとは

    • 多次元の配列を含む数式を効率的に定義、最適化、評価するためのPythonライブラリ
  2. Kerasとは

    • Python / Theanoによって実装されたミニマルかつ高度にモジュラー化されたニューラルネットワークライブラリ
    • モジュール化、ミニマリズム、拡張性により、簡単かつ素早くプロトタイピングすることがきる。
    • convolutional network(CNN)とrecurrent network(RNN)および、それらの組み合わせサポートしている。
    • 任意の接続スキームをサポートしている(モデルに対する複数のインプット、複数のアウトプット等)。
    • CPUとGPUでシームレスに実行することができる。

参考資料

インストール先の環境

本手順の確認に使用したインストール先環境を以下に示す。

OS: Windows 8.1 64bit
GPU: NVIDIA GeForce GTX 760

Visual Studio Community 2013のインストール

  1. 以下のURLのページからインストーラをダウンロードして実行する。
    
    https://www.visualstudio.com/ja-jp/downloads/download-visual-studio-vs
    
    • Microsoft Visual Studio Community 2013 Update 4 - 英語(vs_community.exe)をダウンロード
    • MFC等のOptional features to installは必要ないので全てチェックを外してインストールする(必要になったら後からインストールできる)。
  2. Visual Studio Community 2013は無償のソフトウェアであるがMicrosoftアカウントに紐づくライセンスは必要となる(30日で試用期間が切れる)。
    したがって、インストール後に一度起動し、Microsoftアカウントでサインインすることにより、ライセンスのダウンロードとインストールを行う必要がある。

CUDA 7のインストール

  1. 以下のURLのページからインストーラをダウンロードして実行する。
    
    https://developer.nvidia.com/cuda-downloads
    
    • Windows 8.1 Network Installer (cuda_7.0.28_windows_network.exe)をダウンロード
    • インストールオプションは全てデフォルトのまま変えずにインストールする。

Git for Windowsのインストール

  1. 以下のURLのページからインストーラをダウンロードして実行する。
    
    http://msysgit.github.io/
    
    • Git-1.9.5-preview20150319.exeをダウンロード

    • コマンドプロンプトから使用できるように Adjusting your PATH environment を Use Git from the Windows Command Prompt に設定してインストールする。
    • それ以外のインストールオプションは全てデフォルトのまま変えずにインストールする。

※以下、Python 3.4系のインストール手順を示す(未確認であるが2.7系でも同様の手順になるものと思われる)。

Anacondaのインストール

  1. 以下のURLからインストーラをダウンロードして実行する。
    
    http://continuum.io/downloads#py34
    
    • Windows 64-Bit Python 3.4 Graphical Installer (Anaconda3-2.3.0-Windows-x86_64.exe)をダウンロード
    • インストールオプションは全てデフォルトのまま変えずにインストールする。
  2. パッケージを最新状態にアップデートしてから、Theanoの実行に必要なパッケージ(mingw, libpython)をインストールする。
  • コマンドプロンプトで以下のコマンドを実行する。
    
    >conda update conda
    >conda update anaconda
    >conda update --all
    >conda install mingw libpython
    

Theanoのインストール

  1. Github上のTheanoをインストールする。
    • コマンドプロンプトで以下のコマンドを実行する。
      
      >pip install --upgrade --no-deps git+git://github.com/Theano/Theano.git
      Collecting git+git://github.com/Theano/Theano.git
      Cloning git://github.com/Theano/Theano.git to c:\users\USERNAME\appdata\local\temp\pip-j0qynrd6-build
      Installing collected packages: Theano
      Found existing installation: Theano 0.7.0
      Uninstalling Theano-0.7.0:
      Successfully uninstalled Theano-0.7.0
      Running setup.py install for Theano
      Successfully installed Theano-0.7.0
      
  2. 設定ファイル(.theanorc.txt)をホームフォルダに作成する。
%USERPROFILE%\theanorc.txt
[global]
device = gpu
floatX = float32
#optimizer_including = cudnn

[nvcc]
compiler_bindir=C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin
fastmath = True


3. 以下のテストプログラムを実行し、GPUの使用が有効になっていることを確認する。

theano_test.py


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 range(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')


  • 実行結果
    
    >python theano_test.py
    DEBUG: nvcc STDOUT mod.cu
    (以下、DEBUG出力は省略)
    Using gpu device 0: GeForce GTX 760
    [GpuElemwise{exp,no_inplace}(), HostFromGpu(Gp
    uElemwise{exp,no_inplace}.0)]
    Looping 1000 times took 0.472337007522583 seconds
    Result is [ 1.23178029  1.61879349  1.52278066 ...,  2.20771813  2.29967761
    1.62323296]
    Used the gpu
    

Kerasのインストール

  1. Github上のKerasをインストールする。
    • コマンドプロンプトで以下のコマンドを実行する。
      
      >pip install --upgrade --no-deps git+git://github.com/fchollet/keras.git
      Collecting git+git://github.com/fchollet/keras.git
      Cloning git://github.com/fchollet/keras.git to c:\users\USERNAME\appdata\local\temp\pip-kmvlykxl-build
      Installing collected packages: Keras
      Found existing installation: Keras 0.1.2
      Uninstalling Keras-0.1.2:
      Successfully uninstalled Keras-0.1.2
      Running setup.py install for Keras
      Successfully installed Keras-0.1.2
      
  2. MNIST(手書き数字のデータセット)の画像認識のサンプルプログラムを実行して動作確認する。
    • 以下のサンプルプログラムをダウンロードする。
      
      https://raw.githubusercontent.com/fchollet/keras/master/examples/mnist_mlp.py
      
    • コマンドプロンプトで以下のコマンドを実行する。
      (データセットがダウンロードされ、学習(Train)と評価(Test)が行われる)
      
      >python mnist_mlp.py
      Using gpu device 0: GeForce GTX 760
      Downloading data from https://s3.amazonaws.com/img-datasets/mnist.pkl.gz
      15302656/15296311 [==============================] - 7s
      60000 train samples
      10000 test samples
      DEBUG: nvcc STDOUT mod.cu
      (以下、DEBUG出力は省略)
      Train on 60000 samples, validate on 10000 samples
      Epoch 0
      1s - loss: 0.5052 - acc: 0.8540 - val_loss: 0.2022 - val_acc: 0.9391
      Epoch 1
      1s - loss: 0.2114 - acc: 0.9379 - val_loss: 0.1349 - val_acc: 0.9588
      Epoch 2
      1s - loss: 0.1529 - acc: 0.9546 - val_loss: 0.1089 - val_acc: 0.9672
      Epoch 3
      1s - loss: 0.1256 - acc: 0.9628 - val_loss: 0.0907 - val_acc: 0.9712
      Epoch 4
      1s - loss: 0.1085 - acc: 0.9668 - val_loss: 0.0812 - val_acc: 0.9747
      Epoch 5
      1s - loss: 0.0945 - acc: 0.9707 - val_loss: 0.0742 - val_acc: 0.9766
      Epoch 6
      1s - loss: 0.0856 - acc: 0.9740 - val_loss: 0.0790 - val_acc: 0.9765
      Epoch 7
      1s - loss: 0.0774 - acc: 0.9763 - val_loss: 0.0756 - val_acc: 0.9769
      Epoch 8
      1s - loss: 0.0721 - acc: 0.9771 - val_loss: 0.0671 - val_acc: 0.9785
      Epoch 9
      1s - loss: 0.0666 - acc: 0.9797 - val_loss: 0.0712 - val_acc: 0.9774
      Epoch 10
      1s - loss: 0.0623 - acc: 0.9805 - val_loss: 0.0670 - val_acc: 0.9770
      Epoch 11
      1s - loss: 0.0587 - acc: 0.9818 - val_loss: 0.0727 - val_acc: 0.9779
      Epoch 12
      1s - loss: 0.0554 - acc: 0.9823 - val_loss: 0.0643 - val_acc: 0.9804
      Epoch 13
      1s - loss: 0.0512 - acc: 0.9832 - val_loss: 0.0709 - val_acc: 0.9787
      Epoch 14
      1s - loss: 0.0495 - acc: 0.9847 - val_loss: 0.0638 - val_acc: 0.9803
      Epoch 15
      1s - loss: 0.0465 - acc: 0.9845 - val_loss: 0.0664 - val_acc: 0.9809
      Epoch 16
      1s - loss: 0.0443 - acc: 0.9860 - val_loss: 0.0599 - val_acc: 0.9831
      Epoch 17
      1s - loss: 0.0438 - acc: 0.9857 - val_loss: 0.0652 - val_acc: 0.9813
      Epoch 18
      1s - loss: 0.0419 - acc: 0.9865 - val_loss: 0.0673 - val_acc: 0.9813
      Epoch 19
      1s - loss: 0.0387 - acc: 0.9877 - val_loss: 0.0682 - val_acc: 0.9805
      Test score: 0.0682498943741
      Test accuracy: 0.9805
      
31
29
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
31
29