XubuntuにTensorFlowの導入

せっかくXubuntuを導入したので最近よく耳にするTensorFlowを試そうと思います。

TensorFlowとは機械学習用のPythonライブラリで今のところMac OS XとUbuntu/Linuxをサポートしています。

演算にCPUのみを使う方法とGPUを使う方法があり、CPUを使う方法では次のコマンドをターミナルに打ち込んでやると使えるようになります。(Python2.x系、詳細はhttps://www.tensorflow.org/versions/r0.8/get_started/os_setup.html#pip-installation

#pip(Pythonのパッケージソフトを管理するシステム)のインストール
$ sudo apt-get install python-pip python-dev

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

 

 

次にサンプルを動かしてみます

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

上のようにターミナル上で動作すればOKです。

これでとりあえずいったん使えるようにはなったのですが、今のパソコンにTeslaというとってもいいグラボが刺さっているので演算にGPUを使いたいと思います。

 

 

演算にGPUを使う際にはNVDIAが提供するCuda Toolkit(ver.7.0以上)とcuDNN(ver.2以上)が必要のようです。

今回はCuda Toolkit(ver.7.5)とcuDNN(ver.4)のインストールを行いたいと思います。(cuDNNはver.5までありますがver.5は現時点(2016/5/22)でTensorFlowのソースコードを手前でコンパイルした場合のみをサポートしているようなのでやめておきます)

マシンの仕様

  • xubuntu 16.04
  • gcc(コンパイラ) 5.x

公式サイトに則って進めていきます

まずNVIDIAの公式でCudaのパッケージをダウンロードしてきます(https://developer.nvidia.com/cuda-downloads)。xubuntuの場合はLinux->x86_64->Ubuntuと進みます。ちなみに私はdeb(local)版をダウンロードしました。

ダウンロードリンクの下に自動的にインストール用のコマンドが生成されるのでこれを実行します(1行目のコマンドはダウンロードしたファイルによってファイル名の部分が変わるので確認してください)

$ sudo dpkg -i cuda-repo-ubuntuXX04-X-X-local_X.XX-XX_amd64.deb

$ sudo apt-get update

$ sudo apt-get install cuda

しかし、コマンドを実行すると問題発生!Cudaのパッケージに含まれるディスプレイ用のドライバがうまくインストールされない…

どうやらパッケージに含まれるドライバがxubuntu16.04に対応していないようなので公式から新しいverのドライバをダウンロードしてインストールします。

あらかじめディスプレイドライバをインストールしたのでCudaのインストールの時にディスプレイドライバのインストールを「No」と選択。これでドライバの問題は解決です…がまだ別のところでコケるところがあります。

どうやらCudaはgcc4.x系でコンパイルすることを想定しているらしく、xubuntu16.04で使われているgcc5.x系ではコンパイルできないことが判明。ということでgcc4.x系をインストールすることにします。

(コンパイラのインストールについては詳しく説明しませんがwgetでソースコードを拾ってきて手前でコンパイルする感じでやりました。)

ドライバもコンパイラもそろって、これで何とかなるかなぁと思っていたら、なんかエラーが…。どーやらカーネルのレベルで不具合が起こっているみたい。ここまでくると自分でできることといえばOSのverを下げることくらいしかなさそう。

 

 

というわけでxubuntu16.04+GPUでTensorFlowを実行しようとしたけどCudaがまだ対応していないみたいなので今のところ無理っぽい。リリース日調べたらxubuntu 16.04はリリースされてまだ1ヵ月くらいだし当たり前か!

CPUだけで実行することはできるのでxubuntu16.04でTensorFlow使う人はしばらくそっちで我慢することになるのかな。

 

私はどうするかというと、古いverのxubuntuに入れなおすことにします。ver15.04はたしかLTS(長期サポート)版じゃなかったから必然的にver14.04ですね。幸い大したデータもないので移行自体はすぐにできそうです。とりあえず完全にTeslaの無駄遣いとなっている今の状況をどうにかしたいところ。

(描画用のグラボを演算用に回すってことは画面描画できなくなる気がするので今のPCにグラボをもう一枚挿すか、Teslaの挿さったPCをサーバにしてクライアントを別に用意しなきゃいけない気がするけどとりあえず動いてから考えることにしましょう…)

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Scroll to top