UbuntuでTensorFlowを動かしてみる

以前からディープランニング型AIを実現するためのライブラリとして、TensorFlowというものがよく使われています。
ご存知の方も多いかと思います。

自分は今まであまり触れてこなかったのですが、知人がTensorFlowを使って簡易的な画像認識アプリを構築しているのをみて、自分も触れてみようと思い立ちました。

手元に自由に触れるUbuntuサーバーがあったので、こちらにTensorFlowが動作する環境を構築してみます。

まずはpipをインストールします。

sudo apt update
sudo apt install python-pip python-dev

インストール完了したらつぎにpipでTensorFlow(CPU版)を入手、インストールします。

#CPU版TensorFlowインストール
sudo pip install --upgrade https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.7.1-cp27-none-linux_x86_64.whl

TensorFlowはCPU版とGPU版があり、GPU版を利用するとGPUを使って計算を行ってくれます。
ただし、GPU版はnVidia製GPUのみが対応している”CUDA”が必要になります。
GPU版を入手する場合は下記のコマンドを使用します。

#GPU版TensorFlowインストール
sudo pip install --upgrade https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow-0.7.1-cp27-none-linux_x86_64.whl

nVidia製以外のGPUを搭載していたり、ドライバが適切に設定されていない環境でGPU版を利用すると、エラーが発生して実行できません。

python
Python 2.7.12 (default, Dec  4 2017, 14:50:18) 
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow as tf
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/__init__.py", line 23, in <module>
    from tensorflow.python import *
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/__init__.py", line 49, in <module>
    from tensorflow import contrib
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/contrib/__init__.py", line 23, in <module>
    from tensorflow.contrib import layers
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/contrib/layers/__init__.py", line 68, in <module>
    from tensorflow.contrib.layers.python.layers import *
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/contrib/layers/python/layers/__init__.py", line 22, in <module>
    from tensorflow.contrib.layers.python.layers.initializers import *
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/contrib/layers/python/layers/initializers.py", line 24, in <module>
    from tensorflow.python.ops import random_ops
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/random_ops.py", line 23, in <module>
    from tensorflow.python.framework import ops
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/ops.py", line 39, in <module>
    from tensorflow.python.framework import versions
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/versions.py", line 22, in <module>
    from tensorflow.python import pywrap_tensorflow
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/pywrap_tensorflow.py", line 28, in <module>
    _pywrap_tensorflow = swig_import_helper()
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/pywrap_tensorflow.py", line 24, in swig_import_helper
    _mod = imp.load_module('_pywrap_tensorflow', fp, pathname, description)
ImportError: libcudart.so.7.5: cannot open shared object file: No such file or directory

インストールが完了したら、Pythonインタープリタに入ります。

python

すると、pythonの実行環境が起動し、
“>>>”
プロンプトが表示されるので、つづけて下記のように順に入力します。

>>> import tensorflow as tf
>>> hello = tf.constant('Hello, TensorFlow!')
>>> sess = tf.Session()
>>> sess.run(hello)
>>> a = tf.constant(10)
>>> b = tf.constant(32)
>>> sess.run(a+b)

実行結果はこんな感じです。


>>> import tensorflow as tf
>>> hello = tf.constant('Hello, TensorFlow!')
>>> sess = tf.Session()
>>> sess.run(hello)
'Hello, TensorFlow!'
>>> a = tf.constant(10)
>>> b = tf.constant(32)
>>> sess.run(a+b)
42

ここまで動作すれば、TensorFlowは正常に動作しています。

Linux環境だと、大抵は初めからPythonが入っているので、セットアップ手順が少なくて済むのでありがたいのですが、Python自体を使用しているディストリビューションやアプリもあるようで、不用意にPythonのバージョンをアップグレードしてしまうと、OSやアプリが動作しなくなる危険もあるようです。

その場合はPyenvを利用してアプリごとにPythonのバージョンを切り替えることで対応できるようです。
pyenv + anaconda + python3 – Qiita

この辺りもまた試してみたいと思います。

参考サイト:
UbuntuにTensorFlowをインストール – Qiita
Ubuntu 16.04+CUDA 8.0+Tensorflow 環境で起きるlibcudartが見つからない問題を解決する – Qiita

>株式会社シーポイントラボ

株式会社シーポイントラボ

TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:〒432-8003
   静岡県浜松市中央区和地山3-1-7
   浜松イノベーションキューブ 315
※ご来社の際はインターホンで「316」をお呼びください

CTR IMG