以前からディープランニング型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