LoginSignup
22

More than 5 years have passed since last update.

Windows上にディープラーニング環境を構築するまで

Last updated at Posted at 2017-05-06

概要

Windows上にディープラーニング環境を構築する際、ネット上の情報を組み合わせる必要があったので、ここにまとめておく

環境
・OS:Windows7 64bit
・言語:Python
・Python環境:Anaconda、Spyder
・ディープラーニング環境:Tensorflow, Keras

AnacondaはPythonを使う上で便利ものをパッケージとしてダウンロードできるくらいに覚えてる。
SpyderはAnacondaをインストールすると一緒についてくるPythonのエディタ(Visual StudioやXcode、Eclipseみたいなもの)

TensorflowはGoogleが提供しているPython上で動くディープラーニング環境で、Kerasはそれを便利に使えるようにするライブラリ群みたいなもの。終盤で紹介する。

Anacondaのインストール

2017/5/6現在、TensorflowはPython3.5にしか対応していない。Anaconda4.3はPython3.6をインストールしてしまうので、敢えてAnaconda4.2をインストールする必要がある。

以下のリンク、もしくは「Anaconda old archives」とかで調べて出てきたページから、Anaconda3-4.2.0-Windows-x86_64.exeをダウンロードする。(Anaconda2ではないので注意)
https://repo.continuum.io/archive/

ダウンロードしたexeをダブルクリックするとインストールが始まる。基本的には「I agree」もしくは「Next」を押していけば問題ないが、以下に少し注意を記載しておく。

AnacondaのDestination Folderは日本語を含まないパス以下に置くのがベター。試しに日本語のフォルダ下に作成したら、Spyderが動作しなかった。

無題.png
(ユーザ名は隠してます)

Python3.5であることを確かめる。

無題2.png

インストールが終了すると、Anaconda Cloud、Anaconda Navigator、Anaconda Prompt、Spyderなどがインストールされる。筆者はAnaconda PromptとSpyderしか使っていない。

Spyderの起動

インストールされたSpyderを起動すると、以下のような画面になる。左側のエディタにPythonコードを書いて「F5」で実行すると、Pythonが実行される。実行結果は右下のコンソールに出力される。
右下のコンソールに直接コードを打ち込んでも実行は可能。

無題3.png

Tensorflowのインストール

TensorflowをPythonコードで使用するには、Spyderのエディタに以下のようにimport文を書く。
import tensorflow as tf

もちろんだが、これはtensorflowがインストールされていないと実行エラーとなる。そのため、Anaconda promptを使って、tensorflowをインストールする。

Anaconda Promptを起動する。(ユーザ名は隠してます)

無題4.png

pip install tensorflow
を入力する。
(GPUでtensorflowを動かしたい場合は後述のメモを参照)

無題5.png

こんな感じでインストールが進む

無題6.png

最後にSuccessfully installedというメッセージが出てきたらインストール成功。Anaconda Promptは閉じて良い。

GPUでtensorflowを動かす場合(メモ)

もし、GPUでtensorflowを動かしたいのであれば、Anaconda Promptにて、
pip install tensorflow-gpu
と入力するが、GPUでtensorflowを動かすには、GPUのバージョンがあったり、CUDAやCuDNNをインストールしたりして結構大変。
CUDAのインストールは以下が参考になる。
http://qiita.com/binzume/items/7a0170fe834e250ddef9

筆者はGPU環境の構築も行ったが、CUDAのインストール時に警告が出て(警告の内容は忘れてしまった。たしか、ドライバのバージョンがなんたらかんたら)、結構躓いた。メモ程度にしか書かないが、GPUドライバがCUDAにも含まれていて、現在インストールのドライバよりCUDAのドライバが古いからやべーよって事だったと思う。CUDAのインストールを進めていくと、ドライバのインストールが選択できるから、そのチェックをはずせばインストールできた。

Tensorflowを動かしてみる。

TensorflowのチュートリアルとしてMNISTが有名だが、画像認識などをやったことがない人にはハードルが高いと思う。

以下のサイトなどは回帰をtensorflowでやっているので、おすすめ。
http://qiita.com/TomokIshii/items/f355d8e87d23ee8e0c7a

(以下上記のサイトより引用)

import numpy as np
import tensorflow as tf

trX = np.linspace(-1, 1, 101)
trY = 2 * trX + 3 + np.random.randn(*trX.shape) * 0.33

def lin_model(X, w, b):
    return X * w + b

w = tf.Variable([0.])
b = tf.Variable([0.])

x = tf.placeholder(tf.float32, shape=(101))
y = tf.placeholder(tf.float32, shape=(101))
y_hypo = lin_model(x, w, b)

cost = tf.reduce_mean(tf.square(y_hypo - y))
train_step = tf.train.GradientDescentOptimizer(0.01).minimize(cost)

# Initializing
init = tf.initialize_all_variables()

# Train
with tf.Session() as sess:
    sess.run(init)

    for i in range(1001):
        sess.run(train_step, feed_dict={x: trX, y: trY})
        if i % 100 == 0:
            print("%5d:(w,b)=(%10.4f, %10.4f)" % (i, sess.run(w), sess.run(b)))

上記コードをSpyderに貼り付けて実行すれば、以下の画像のように動作する。printのみはPython3.5の仕様変更から()でくくるように変更した。

無7.png

コードの解説をすると、

y=ax+b
という形があってaとbを求めようとしている。

y=2x+3の式に基づいて得られる以下のデータあったときに、
trY = 2 * trX + 3 + np.random.randn(*trX.shape) * 0.33
(np.random.randn(*trX.shape) * 0.33は雑音や誤差)

「a=2」と「b=3」を推定するという感じ。

コンソールを見ると、a=2,b=3が近似値として求められているのがわかる。

Kerasの紹介

Tensorflowのチュートリアルをある程度やったら、実際のディープラーニングはKerasを使用してやった方が、初心者には便利だ。
Kerasのチュートリアルは以下の公式ホームページに日本語がある。
https://keras.io/ja/

Tensorflowをある程度理解できれば、すぐに理解できると思うので、ここでは詳細に書かないが、Tensorflowよりも直感的にコードが書ける。

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
22