91
95

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Googleから出た機械学習ライブラリTensorFlowのインストール

Last updated at Posted at 2015-11-10

GoogleからDeepLearningなどを含んだ機械学習ライブラリが公開されたので、早速触ってみました。
http://japanese.engadget.com/2015/11/09/google-tensorflow/

実施した環境

ubuntu 14.04
GeForce GTX 580
CUDA 7.0
Cudaは、こちらの手順でインストール済み

本体のインストール

pipでインストールするだけです。

pip install https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow-0.5.0-cp27-none-linux_x86_64.whl

インストール確認

ちゃんとインストールできているか確認します。

$ python
Python 2.7.6 (default, Jun 22 2015, 17:58:13) 
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow as tf
I tensorflow/stream_executor/dso_loader.cc:77] LD_LIBRARY_PATH: /usr/local/cuda-7.0/lib64:
I tensorflow/stream_executor/cuda/cuda_dnn.cc:1062] Unable to load cuDNN DSO.
>>> hello = tf.constant('Hello, TensorFlow!')
>>> sess = tf.Session()
I tensorflow/core/common_runtime/local_device.cc:25] Local device intra op parallelism threads: 8
I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:888] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
I tensorflow/core/common_runtime/gpu/gpu_init.cc:88] Found device 0 with properties: 
name: GeForce GTX 580
major: 2 minor: 0 memoryClockRate (GHz) 1.544
pciBusID 0000:01:00.0
Total memory: 1.50GiB
Free memory: 1023.72MiB
I tensorflow/core/common_runtime/gpu/gpu_init.cc:112] DMA: 0 
I tensorflow/core/common_runtime/gpu/gpu_init.cc:122] 0:   Y 
I tensorflow/core/common_runtime/gpu/gpu_device.cc:611] Ignoring gpu device (device: 0, name: GeForce GTX 580, pci bus id: 0000:01:00.0) with Cuda compute capability 2.0. The minimum required Cuda capability is 3.5.
I tensorflow/core/common_runtime/local_session.cc:45] Local session inter op parallelism threads: 8
>>> print sess.run(hello)
Hello, TensorFlow!
>>> a = tf.constant(10)
>>> b = tf.constant(32)
>>> print sess.run(a+b)
42
>>> exit()

なんか色々言われてますが、一応動くようです。
ここらへんは、GPUサポートの影響みたいです。

Cuda サポートについて

GPUで演算を行うためには、対応GPUの搭載と、Cuda Toolkit 7.0とCUDNN 6.5 V2のインストールが必要です。
chainerインストールの時にCUDAはインストールしていたので、CUDNNだけかと思いきや、手持ちのGPUが対応していませんでした。公式には、

TensorFlow GPU support requires having a GPU card with NVidia Compute Capability >= 3.5. Supported cards include but are not limited to:

と書かれております。Compute Capabilityとはなんぞや?ということは、NVIDIAの質問回答に書かれていました。

Q: Compute Capabilityとは何ですか?
また、GPUのCompute Capabilityの一覧はありますか?
A: まず、Compute Capabilityとは、GPUのアーキテクチャのバージョンとでもいうべきものです。
たとえば、Compute capability 2.0, 2.1はFermi、3.0, 3.5はKepler、5.0はMaxwellとなります。

持っているGeForce GTX 580では、このバージョンが2.0なので, TensorFlowではGPU演算に使えませんでした。したがって、今回はCPUのみでMNISTを動かします。

MNISTを動かす

MNISTの説明については、公式にて、MNISTを知ってる人向けの説明と、知らない人用の説明の2つがあったので、参考にしてください。簡単に言うと、手書き数字の認識です。

ソースをとってきて、MNISTのサンプルを動かします。
MNISTサンプルを動かす手順はこちらです。

git clone --recurse-submodules https://github.com/tensorflow/tensorflow
python tensorflow/models/image/mnist/convolutional.py

これを行うと、MNISTの手書きの数字ファイルを取得し、畳み込みNNによる学習が始まります。学習の状況が都度流れてくるので、眺めます。

I tensorflow/core/common_runtime/local_session.cc:45] Local session inter op parallelism threads: 8
Initialized!
Epoch 0.00
Minibatch loss: 12.054, learning rate: 0.010000
Minibatch error: 90.6%
Validation error: 84.6%
Epoch 0.12
Minibatch loss: 3.285, learning rate: 0.010000
Minibatch error: 6.2%
Validation error: 7.0%
Epoch 0.23
Minibatch loss: 3.473, learning rate: 0.010000
Minibatch error: 10.9%
Validation error: 3.7%
Epoch 0.35
Minibatch loss: 3.221, learning rate: 0.010000
Minibatch error: 4.7%
Validation error: 3.2%

たったこれだけでできてしまったので、拍子抜けしました。
まあCUDAが鬼門なので、次はGPUで動かすようにしたいと思います。

91
95
2

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
91
95

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?