Tensorflow v1.15のインストールとソースからのbuild
今回はUbuntuだけ。
Tensorflow1系でないと動かない環境とかサンプルとかあるので、
Tensorflow v1.15をインストールする。
pyenv virtualenv 3.7.7 tf_1.15.0
mkdir -p /work/tf_1.15.0
cd /work/tf_1.15.0
pyenv local tf_1.15.0
pip install --upgrade pip setuptools
pip install tensorflow-cpu==1.15
[!NOTE] GPU使わないので-cpu付きパッケージを選択する
Tensorflowのpythonライブラリはpip
でインストールできるが、
ソースからbuildしないと使えないツールもあるのでbuild環境を整える。
Tensorflow をソースからbuildするにはbazel
が必要なので、インストールしておく。
[!NOTE] BazelはVer.0.26.1 以下 を使用しないといけない
Ver. 0.26.1はaptでインストールできない
参考: Installing Bazel on Ubuntu
wget https://github.com/bazelbuild/bazel/releases/download/0.26.1/bazel-0.26.1-installer-linux-x86_64.sh
chmod +x bazel-0.26.1-installer-linux-x86_64.sh
./bazel-0.26.1-installer-linux-x86_64.sh --user
実行ファイルは、~/bin/bazel
になるので、pathが~/binに通ってない場合は、一旦 ログアウトして 再ログイン
(pathが通ってない場合、configureでエラーになる)
pip install six numpy wheel mock 'future>=0.17.1'
pip install keras_applications --no-deps
pip install keras_preprocessing --no-deps
githubからcloneして V1.15.3 をチェックアウトしておく。
cd /work/tf_1.15/
git clone https://github.com/tensorflow/tensorflow.git
cd tensorflow
git checkout -b v1.15.3 refs/tags/v1.15.3
cd /work/tf_1.15/tensorflow
./configure
# いくつか質問されるので、すべてデフォルト(リターン)を入力
bazel build //《対象ディレクトリ》:《ターゲット》
[!NOTE] ※ 対象ディレクトリはカレントディレクトリからの相対パス
※ ターゲットは対象ディレクトリのBUILDファイルで確認
cd /work/tf_1.15/tensorflow
bazel build //tensorflow/lite/toco:toco
bazel build //tensorflow/python/tools:freeze_graph
bazel build //tensorflow/tools/graph_transforms:summarize_graph
bazel build //tensorflow/tools/graph_transforms:transform_graph
[!NOTE] RAMは4GB以上必要かな?
オプション--local_ram_resources=2048
を指定すると使用するRAMを2GBに限定できる(指定する数値はMB単位)。
使用するPCのスペックによってかかる時間はマチマチ。
NativeなUbuntuで4コア8スレッドでも3~4時間程度かかる。
Virtualboxで1コア使用だと24時間とかかかることも。
bazel run
で実行する。
[!NOTE] オプションをbazelではなく実行するコマンドに渡すため、
--
を入れる必要がある。
cd /work/tf_1.15/tensorflow
bazel run //tensorflow/lite/toco:toco -- «オプション»
bazel run //tensorflow/tools/graph_transforms:summarize_graph -- «オプション»
bazel run //tensorflow/tools/graph_transforms:transform_graph -- «オプション»
絶対パスで実行するには以下。
/work/tf_1.15/tensorflow/bazel-bin/tensorflow/lite/toco/toco «オプション»
/work/tf_1.15/tensorflow/bazel-bin/tensorflow/tools/graph_transforms/summarize_graph «オプション»
/work/tf_1.15/tensorflow/bazel-bin/tensorflow/tools/graph_transforms/transform_graph «オプション»
パスが長いので、以下を設定しておくと便利。
alias toco='/work/tf_1.15/tensorflow/bazel-bin/tensorflow/lite/toco/toco'
alias summarize_graph='/work/tf_1.15/tensorflow/bazel-bin/tensorflow/tools/graph_transforms/summarize_graph'
alias transform_graph='/work/tf_1.15/tensorflow/bazel-bin/tensorflow/tools/graph_transforms/transform_graph'
フツーはこっちがメインだが…(^^ゞ
pipでインストールすれば必要ないが、Tensorflowのpipパッケージを作成するにはこちら。
(オプション変更したいときとか)
bazel build --config=v1 //tensorflow/tools/pip_package:build_pip_package
./bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg
pip install /tmp/tensorflow_pkg/tensorflow-1.15.3-cp37-cp37m-linux_x86_64.whl