TensorFlow 最新版のビルドとインストール(ソースコードを使用)(Ubuntu 上)

TensorFlow は,機械学習・ディープラーニングのフレームワークである.ソースコードからビルドすることにより,開発版(master ブランチ)や,実行環境に合わせた最適化を行ったパッケージを利用できる.

目次

  1. 前準備
  2. TensorFlow のビルドに必要な Python のパッケージのインストール
  3. TensorFlow 最新版のビルドとインストール

関連する外部ページhttps://www.tensorflow.org/install/source

前準備

Ubuntu のシステム更新

Ubuntu で OS のシステム更新を行うときは, 端末で,次のコマンドを実行する。これは、パッケージ情報を最新の状態に保ち、インストール済みのパッケージをセキュリティアップデートやバグ修正を含めて更新するためである。

Ubuntu のインストールはこちらの別ページで説明する。

# パッケージリストの情報を更新
sudo apt update
# インストール済みのパッケージを包括的に更新 (依存関係も考慮)
sudo apt -y full-upgrade

カーネルなどが更新された場合は、端末で,次のコマンドを実行して再起動する.

sudo shutdown -r now

Git, cmake, curl, wget, p7zip-full のインストール(Ubuntu 上)

端末で,次のコマンドを実行する.

# パッケージリストの情報を更新
sudo apt update
sudo apt -y install git cmake cmake-curses-gui cmake-gui curl wget p7zip-full

NVIDIA ドライバ,NVIDIA CUDA ツールキット,NVIDIA cuDNN のインストール(Ubuntu 上,GPU 利用時)

GPU を使用しない場合,この手順は不要である.

TensorFlow 2.19 から 2.21 の GPU 版で動作確認済みの構成は,NVIDIA CUDA 12.5NVIDIA cuDNN 9.3 である.TensorFlow 2.18 以降では,ビルド時に Bazel が CUDA, cuDNN のパッケージを自動的にダウンロードするため,ホスト側で必要なものは NVIDIA ドライバである.

Ubuntu での NVIDIA ドライバ,NVIDIA CUDA ツールキット,NVIDIA cuDNN のインストール: 別ページ »で説明

C/C++ コンパイラと Make とビルドツールのインストール

インストールするには,端末で,次のコマンドを実行する.

# パッケージリストの情報を更新
sudo apt update
sudo apt -y install build-essential gcc g++ make libtool texinfo dpkg-dev pkg-config

Clang のインストール

TensorFlow 2.13 以降は,既定のコンパイラが Clang である.TensorFlow 2.19 から 2.21 では Clang 18 が動作確認済みの構成である.

インストールするには,端末で,次のコマンドを実行する.

# パッケージリストの情報を更新
sudo apt update
sudo apt -y install clang-18 llvm-18
clang-18 --version

./configure の実行時に,clang の場所(例:/usr/lib/llvm-18/bin/clang)を指定する.

Python3 開発用ファイル,pip, setuptools, venv のインストール(Ubuntu 上)

Python のインストールは行わない(Ubuntu のシステム Python を用いる.)

Ubuntu のシステム Python を用いるとき, python, pip は,次のコマンドで起動できる.

Ubuntu 23.04 以降では,システム Python への pip による直接のインストールが制限されている(PEP 668)ため,venv による仮想環境を用いる.

Ubuntu での Python 開発環境(JupyterLab, spyder, nteract)のインストール: 別ページ »で説明

Python3 開発用ファイル,pip, setuptools, venv のインストール

端末で,次のコマンドを実行する.

# パッケージリストの情報を更新
sudo apt update
sudo apt -y install python-is-python3 python3-dev python-dev-is-python3 python3-pip python3-setuptools python3-venv build-essential

Bazel のインストール

TensorFlow のビルドには,ソースコードの .bazelversion ファイルで指定されたバージョンの Bazel が必要である.Bazeliskbazel という名前で PATH に置くと,指定されたバージョンの Bazel が自動的にダウンロードされて使用される.

関連する外部ページhttps://github.com/bazelbuild/bazeliskhttps://bazel.build/install

端末で,次のコマンドを実行する.

sudo apt update
sudo apt -y install npm
sudo npm install -g @bazel/bazelisk
bazel --version

TensorFlow のビルドに必要な Python のパッケージのインストール

ビルド用の仮想環境を作成し,https://www.tensorflow.org/install/source に記載のパッケージをインストールする.

端末で,次のコマンドを実行する.

python3 -m venv ${HOME}/tfbuild
source ${HOME}/tfbuild/bin/activate
pip install -U pip numpy wheel packaging requests

TensorFlow 最新版のビルドとインストール

  1. TensorFlow 最新版のビルド(ソースコードを使用)

    端末で,次のコマンドを実行する.

    終了までしばらく待つ.

    cd /tmp
    rm -rf tensorflow
    git clone https://github.com/tensorflow/tensorflow
    cd tensorflow
    PYTHON_BIN_PATH=${HOME}/tfbuild/bin/python3 ./configure
    

    CPU 版をビルドする場合

    bazel build //tensorflow/tools/pip_package:wheel \
      --repo_env=USE_PYWRAP_RULES=1 --repo_env=WHEEL_NAME=tensorflow_cpu
    

    GPU(NVIDIA CUDA)版をビルドする場合

    bazel build //tensorflow/tools/pip_package:wheel \
      --repo_env=USE_PYWRAP_RULES=1 --repo_env=WHEEL_NAME=tensorflow \
      --config=cuda --config=cuda_wheel
    

    ビルドはメモリを多く必要とする.メモリ不足で失敗する場合は,--local_ram_resources=2048 を付けて,Bazel が使用するメモリ量を制限する.

  2. ビルドした wheel ファイルのインストール

    wheel ファイルは bazel-bin/tensorflow/tools/pip_package/wheel_house/ に生成される.ファイル名は,バージョン番号,Python のバージョン,プラットフォームによって異なる.

    端末で,次のコマンドを実行する.

    ls bazel-bin/tensorflow/tools/pip_package/wheel_house/
    pip install bazel-bin/tensorflow/tools/pip_package/wheel_house/tensorflow-*.whl
    
  3. TensorFlow のバージョン確認

    端末で,次のコマンドを実行する.

    バージョン番号が表示されれば,インストールは成功である.
    python3 -c "import tensorflow as tf; print( tf.__version__ )"
    
  4. GPU の認識の確認(GPU 版のとき)

    端末で,次のコマンドを実行する.GPU のデバイス情報が表示されればよい.

    python3 -c "import tensorflow as tf; print( tf.config.list_physical_devices('GPU') )"
    
  5. 動作確認
    Python プログラムの実行

    Python のまとめ: 別ページ »にまとめ

    端末で,次のコマンドを実行して Python を起動する.

    python3
    

    次の Python プログラムを実行する.TensorFlow 2 では Eager Execution が既定で有効であるため,計算結果を numpy() で直接取得できる.

    import tensorflow as tf
    print(tf.add(1, 2).numpy())
    hello = tf.constant('Hello, TensorFlow!')
    print(hello.numpy())