Back to Top

Daily Archives: 2016年5月19日

Ubuntu16.04 TensorFlowのインストール

Ubuntu 16.04 にTensorFlowをインストールする手順を記載します。

パッケージのアップデート

sudo apt-get update
sudo apt-get install git

 

Pythonのバージョン確認

$ python -V
Python 2.7.11+

 

pipをインストール

Pythonの「パッケージ管理システム」をインストールします。

$ sudo apt-get install python-pip python-dev python-dev

 

TensorFlowをインストール

・CPUとGPUの2種類がありますので、インストールをするときどちらかを選択してインストールします。

# CPU
$ sudo pip install --upgrade https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.7.1-cp27-none-linux_x86_64.whl


# GPU
$ sudo pip install --upgrade https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow-0.7.1-cp27-none-linux_x86_64.whl

※GPUとは、グラフィックボードのことで、CPUよりはるかに単純計算が速いので、TensorFlowはグラフィックボードを使用して処理することが出来るようになっています。

 

動作テスト

端末にてPythonを起動しtensorflowの動作を確認する

$ python

>>> import tensorflow as tf
>>> hello = tf.constant('Hello, TensorFlow!')
>>> sess = tf.Session()
>>> sess.run(hello)
Hello, TensorFlow!
>>>

 

TensorFlow 手書きの数字を認識する

TensorFlowで手書きの数字を認識するチュートリアルを試す。

チュートリアル

数字を認識するチュートリアル

TensorFlowのチュートリアルに関係するソースをダウンロード

git clone --recurse-submodules https://github.com/tensorflow/tensorflow

 

動作テスト

チュートリアルに書いてあるコードをコピーして保存する

mnist.py

from tensorflow.examples.tutorials.mnist import input_data
mnist = input_data.read_data_sets("MNIST_data/", one_hot=True)

import tensorflow as tf

x = tf.placeholder(tf.float32, [None, 784])

W = tf.Variable(tf.zeros([784, 10]))
b = tf.Variable(tf.zeros([10]))
y = tf.nn.softmax(tf.matmul(x, W) + b)

y_ = tf.placeholder(tf.float32, [None, 10])
cross_entropy = -tf.reduce_sum(y_*tf.log(y))

train_step = tf.train.GradientDescentOptimizer(0.01).minimize(cross_entropy)

init = tf.initialize_all_variables()

sess = tf.Session()
sess.run(init)

for i in range(1000):
  batch_xs, batch_ys = mnist.train.next_batch(100)
  sess.run(train_step, feed_dict={x: batch_xs, y_: batch_ys})

correct_prediction = tf.equal(tf.argmax(y,1), tf.argmax(y_,1))
accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))
print(sess.run(accuracy, feed_dict={x: mnist.test.images, y_: mnist.test.labels}))

端末にて実行

$ python mnist.py
Extracting MNIST_data/train-images-idx3-ubyte.gz
Extracting MNIST_data/train-labels-idx1-ubyte.gz
Extracting MNIST_data/t10k-images-idx3-ubyte.gz
Extracting MNIST_data/t10k-labels-idx1-ubyte.gz
0.9162
$