LoginSignup
1
1

More than 1 year has passed since last update.

TensorFlowをソースからビルドする

Posted at

はじめに

TensorFlowを使用したところ、以下のエラーが発生しました。

$ python3 -c "from keras import backend as K"
Using TensorFlow backend.
Illegal instruction

CPUがAVX命令に対応していない場合に、上記のエラーが発生するようです。
TensorFlowを実行環境でビルドしなおせばいいという情報があり、1.15.0のソースからビルドすることにしました。

実行環境

OS:Windows10のWSL2(Debian)
プロセッサ:Intel(R) Core(TM) i3 CPU M 380 @ 2.53GHz 2.53 GHz
実装RAM:8.00 GB (7.68 GB 使用可能)
Pythonのバージョン:3.7.11

参考サイト

以下の公式ページを参考にしました。

ビルド手順

※以下は上記の公式ページの「Bazel をインストールする」以降の作業内容となります。この作業よりも前にkeras_preprocessing等のインストールが必要となりますので、詳しくは上記リンクを参照ください。

$ sudo apt update
$ sudo apt install -y curl build-essential
$ curl -L -o bazel https://github.com/bazelbuild/bazelisk/releases/download/v1.10.1/bazelisk-linux-amd64
$ chmod +x bazel
$ export PATH="${PATH}:${PWD}"
$ git clone https://github.com/tensorflow/tensorflow.git
$ cd tensorflow
$ git checkout v1.15.0

以下のファイルにBazelのバージョン「0.26.1」を指定する。

$ vi .bazelversion

以下のコマンドで構成セッションが開始される。今回は全てデフォルトのままとしたが、必要に応じて変更する。

$ python configure.py

ビルドを開始する。
※TensorFlow 1.xを指定するオプション--config=v1を指定するとエラーが出たため、無指定とした。git checkout v1.15.0をせずに最新のソースコードでこのオプションを指定する方法も可能かもしれない(未検証)。

$ bazel build //tensorflow/tools/pip_package:build_pip_package

私の環境ではビルドに15時間程度かかった。

Target //tensorflow/tools/pip_package:build_pip_package up-to-date:
  bazel-bin/tensorflow/tools/pip_package/build_pip_package
INFO: Elapsed time: 52524.336s, Critical Path: 1560.65s
INFO: 19514 processes: 19514 local.
INFO: Build completed successfully, 20531 total actions

pipパッケージをビルドする。

$ ./bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg

pipパッケージをインストールする。

$ python3 -m pip install /tmp/tensorflow_pkg/tensorflow-1.15.0-cp37-cp37m-linux_x86_64.whl
1
1
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
1
1