LoginSignup
17
18

More than 5 years have passed since last update.

root無しの環境でtensorflowを使う

Last updated at Posted at 2015-11-22

root権限を持っていない環境でtensorflowを使おうと思った時に詰まるポイントのメモ。
環境はCentOS 6.7ですが、どこでもいっしょだと思います。CUDAは使っていません。

Pythonのバージョン

2.7系列が入っていないと動きません。pyenvを使いました。こちらを見てください。ただしその時、こちらにあるようにオプションを指定する必要があります。ちなみにオプション無しのpipで入れてしまった場合は、ライブラリを入れなおす必要があります。numpy,sympy,tensorflowを入れなおしました。

glibc, libstdc++のバージョンについて

コンパイル済みバイナリを使っているので、libcのバージョンが合わないと使えません。そこで、rpmをダウンロードして差し替えます。CentOSではpackages.debian.org的なものはないらしいので、レポジトリから直接抜いてきます。例えば理研ならここで、

$ mkdir ~/tflib
$ cd ~/tflib
$ wget http://ftp.riken.jp/Linux/centos/7/os/x86_64/Packages/glibc-2.17-78.el7.x86_64.rpm
$ rpm2cpio glibc-2.17-78.el7.x86_64.rpm|cpio -idv
$ wget http://ftp.riken.jp/Linux/centos/7/os/x86_64/Packages/libstdc++-4.8.3-9.el7.x86_64.rpm
$ rpm2cpio libstdc++-4.8.3-9.el7.x86_64.rpm|cpio -idv

としておきます。Debian/Ubuntuなら適当に探してきて解凍すればいいと思います。1
これでいよいよ全部揃ったわけですがld-linux.soのバージョンも合わないとあぼーんなので、

$ LD_LIBRARY_PATH=~/tflib/lib64/:~/tflib/usr/lib64/ ~/tflib/lib64/ld-2.17.so ~/.pyenv/versions/2.7.10/bin/python tutorial1.py

とかするとようやく起動できます。面倒なので私は

~/.bashrc
alias tfpy='LD_LIBRARY_PATH=~/tflib/lib64/:~/tflib/usr/lib64/ ~/tflib/lib64/ld-2.17.so ~/.pyenv/versions/2.7.10/bin/python'

としておきました。

$ tfpy tutorial1.py

補足

本当は多分numpyとかPython自体も新しいlibcでコンパイルし直さないといけないような気がします。。
今のところエラーは出ていませんが。


  1. もしかしたら依存関係があるかもしれませんが、この他に特に何も入れなくても動きました。Debian/Ubuntuならpackages.debian.org的なところで依存関係も見られると思うので、適宜入れてください。 

17
18
0

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
17
18