TensorFlow/Caffeをubuntu 16.04 LTS へインストール


intelのMovidius NCSはubuntuの環境が要るらしいので作っておきます。

ネイティブではなくVirtualBox上のubuntu 16.04 LTSでもいけるっていう話なので、その環境で。

Windows  7(64Bit) + VirtualBox 5.2.2 + ubuntu 16.04 LTSの構成は以下を参照

ubuntuをVirtualBoxにインストール(memo)

 


TensorFlowインストール

Caffeインストール

エラー対処


TensorFlowインストール

3.xのパッケージ管理のpip3を使ってインストールしてみます。

なければインストールしておきます。

$ sudo apt install python3-pip

インストール
CPU のみなら

$ sudo pip3 install tensorflow

GPU を使う場合

$ sudo pip3 install tensorflow-gpu

 

TensorFlowバージョン確認

$ pip3 list

TensorFlow動作確認

このバージョンのTensorFlowはPython3で動作します。

Python2を使うとtensorflow moduleのimportErrorになります。

python3でshellに入って、hello worldを表示してみます。

 

$ python3
>> import tensorflow as tf
>> hello = tf.constant(‘hello  world’)
>> sess = tf.Session()
>> print(sess.run(hello))
b’hello  world’

>>sess.close()

セッションの後にattentionが出ますが、気にせず続行。

これは、TensorFlow は CPU の拡張命令を使うことができる…….ということのようです。

CPU の拡張命令を有効にするためには TensorFlow をソースコードからコンパイルしてくださいといってるようだけど、今回はパス。

hello worldが表示されます。

 


Caffeインストール

事前に必要ないくつかのパッケージをインストールしておきます。

$ sudo apt install <package name>

<package name>は主に以下の11個

libprotobuf-dev
libleveldb-dev
libsnappy-dev
libopencv-dev
libhdf5-serial-dev
protobuf-compiler
libboost-all-dev
libatlas-base-dev
libgflags-dev
libgoogle-glog-dev
liblmdb-dev

 

caffeのインストール用に本体を取得

$ git clone https://github.com/BVLC/caffe.git
$ cd caffe

Makefile.configファイルを作っておきます。

Makefile.config.exampleをコピーしてリネーム –> Makefile.config

コンパイラにg++-4.6を使うって話がありますが、うちの環境ではもうサポートしてないらしい。
インストール候補なしと言われた。
普通に現バージョンのg++を使います。

Makefile.configを開いて、CPUのみ使う場合は….。

このコメントを外す

# CPU_ONLY := 1

デフォルトのPython のバージョンは2.7。

python 3.5で使う場合、2.7をコメントアウト

#PYTHON_INCLUDE := /usr/include/python2.7 \  /usr/lib/python2.7/dist-packages/numpy/core/include

 

Python 3の行をアンコメントして,boostの行は以下のように変更

PYTHON_LIBRARIES := boost_python-py35 python3.5m
PYTHON_INCLUDE := /usr/include/python3.5m \
/usr/local/lib/python3.5/dist-packages/numpy/core/include

numpyの場所が分からない場合は、python3のシェルに入って以下のコマンドで調べます。

$ python3

>>>import numpy

>>>numpy.__file__

/usr/local/lib/python3.5/dist-packages/numpy/__init__.py’

 

Pythonで使うためのmakeを実行。

CPUのコア数を確認

$nproc

例えばコア数が4の場合は

$ make pycaffe -j4

caffeのパスを通しておく。

$ export PYTHONPATH=~/caffe/python:$PYTHONPATH
$ cd ~
$ source .bashrc

確認

$ python3
>>>import caffe

問題なければOK。


エラー修正

Caffeインストール時、HDF5ファイルフォーマットの部分でエラーになることが多い。

hdf5.hがない場合

Makefile.configに追加してみる

INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial/

だめなら探してみる

$ locate hdf5.h

大概opencvをインストールしてたらどこかにあるが
ぜんぜん見つからない場合

$ sudo apt install libhdf5-10

再度、

$ locate hdf5.h

見つかった
/usr/include/hdf5/serial/hdf5.h

以下を実行
$ export CPATH=”/usr/include/hdf5/serial/”

lhdf5_hlがない場合

Makefile.configに追加

LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu/hdf5/serial

 


pip3でエラーが出た場合の対処

例1:

$ pip3 install –upgrade pip

を実行してもアップグレードできない

対策1:

バージョンアップされたpipを直接ダウンロード

$ wget https://bootstrap.pypa.io/get-pip.py

$ sudo python3 get-pip.py

原因1:

不明

 

例2:

$ pip3 list

を実行しようとして

Traceback (most recent call last):
  File "/usr/bin/pip", line 9, in <module>
    from pip import main
ImportError: cannot import name main
対策2:
$ hash -d pip3
or
$ hash -r pip3

原因3:

コマンドパスのハッシュが更新後のパスを追随できていないためだそうです


 

Be the first to comment

Leave a Reply

Your email address will not be published.


*