Google は、黒人コミュニティのための人種的公平の促進に取り組んでいます。詳細をご覧ください。

Windows でのソースからのビルド

ソースから TensorFlow の pip パッケージをビルドし、それを Windows にインストールします。

Windows でのセットアップ

Windows での開発環境を構成するために、以下のビルドツールをインストールします。

Python と TensorFlow パッケージの依存関係をインストールする

Windows 用の Python 3.5.x または Python 3.6.x の 64 ビット版をインストールします。 オプション機能として pip を選択し、%PATH% 環境変数に追加します。

TensorFlow の pip パッケージの依存関係をインストールします。

pip3 install six numpy wheel
pip3 install keras_applications==1.0.6 --no-deps
pip3 install keras_preprocessing==1.0.5 --no-deps

依存関係のリストは、REQUIRED_PACKAGES 内の setup.py ファイルにあります。

Bazel をインストールする

TensorFlow のコンパイルに使用するビルドツールである Bazel をインストールします。Bazel のバージョンについては、Windows 用のテスト済みのビルド構成をご覧ください。 Bazel で C++ をビルドするように構成します。

Bazel 実行可能ファイルの場所を %PATH% 環境変数に追加します。

MSYS2 をインストールする

TensorFlow のビルドに必要な bin ツール用に MSYS2 をインストールします。MSYS2 が C:\msys64 にインストールされている場合は、C:\msys64\usr\bin%PATH% 環境変数に追加します。次に、cmd.exe を使用して、以下のコマンドを実行します。

pacman -S git patch unzip

Visual C++ Build Tools 2019 をインストールする

Visual C++ Build Tools 2019 をインストールします。これは Visual Studio 2019 に付属していますが、別々にインストールすることもできます。

  1. Visual Studio のダウンロード サイトに移動します。
  2. [再頒布可能パッケージおよびビルドツール] を選択します。
  3. 以下をダウンロードしてインストールします。
    • Microsoft Visual C++ 2019 再頒布可能ファイル
    • Microsoft Build Tools 2019

GPU サポートをインストールする(省略可)

Windows 用の GPU サポートに関するガイドを確認して、GPU で TensorFlow を実行するのに必要なドライバや追加のソフトウェアをインストールします。

TensorFlow のソースコードをダウンロードする

Git を使用して TensorFlow リポジトリのクローンを作成します(git は MSYS2 でインストールされます)。

git clone https://github.com/tensorflow/tensorflow.git
cd tensorflow

リポジトリのデフォルトは master 開発ブランチです。リリース ブランチをチェックアウトしてビルドすることもできます。

git checkout branch_name  # r1.9, r1.10, etc.

ビルドを構成する

TensorFlow のソースツリーのルートで、次のコマンドを実行して、システムビルドを構成します。

python ./configure.py

このスクリプトを実行すると、TensorFlow の依存関係の場所を尋ねるプロンプトが表示され、追加のビルド構成オプション(たとえば、コンパイラ フラグ)についても問い合わせがあります。python ./configure.py(セッションによって異なる場合があります)の実行例を以下に示します。

構成オプション

GPU サポートを使用する場合は、CUDA と cuDNN のバージョンを指定します。CUDA や cuDNN の複数のバージョンがシステムにインストールされている場合は、デフォルトを使用するのではなく、バージョンを明示的に設定します。./configure.py はシステムの CUDA ライブラリへのシンボリック リンクを作成します。そのため、CUDA ライブラリパスを変更する場合は、ビルドする前にこの構成手順をもう一度行う必要があります。

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

TensorFlow 2.x

tensorflow:master リポジトリがデフォルトで 2.x をビルドするようにアップデートされました。 Bazel をインストールし、bazel build を使用して TensorFlow パッケージを作成します。

bazel build //tensorflow/tools/pip_package:build_pip_package

TensorFlow 1.x

マスターから TensorFlow の 1.x バージョンをビルドするには、bazel build --config=v1 を使用して TensorFlow 1.x パッケージを作成します。

bazel build --config=v1 //tensorflow/tools/pip_package:build_pip_package

CPU のみ

CPU のみに対応する TensorFlow パッケージのビルダーを、bazel を使用して作成します。

bazel build --config=opt //tensorflow/tools/pip_package:build_pip_package

GPU サポート

GPU に対応する TensorFlow パッケージのビルダーを作成するには、以下を使用します。

bazel build --config=opt --config=cuda --define=no_tensorflow_py_deps=true //tensorflow/tools/pip_package:build_pip_package

Bazel ビルドのオプション

ビルドの際にこのオプションを使用して、パッケージの作成時の問題(tensorflow:issue#22390)を回避します。

--define=no_tensorflow_py_deps=true

ビルド オプションについては、Bazel コマンドライン リファレンスをご覧ください。

ソースから TensorFlow をビルドすると、大量の RAM が使用される可能性があります。メモリの制約があるシステムでは、Bazel の RAM 使用量を --local_ram_resources=2048 で制限してください。

GPU サポートを含めてビルドする場合は、--copt=-nvcc_options=disable-warnings を追加して、nvcc 警告メッセージを非表示にします。

パッケージをビルドする

bazel build コマンドを実行すると build_pip_package という名前の実行可能ファイルが作成されます。これは pip パッケージをビルドするプログラムです。たとえば、次のように実行すると、.whl パッケージが C:/tmp/tensorflow_pkg ディレクトリ内にビルドされます。

bazel-bin\tensorflow\tools\pip_package\build_pip_package C:/tmp/tensorflow_pkg

CUDA 構成と非 CUDA 構成の両方を同じソースツリー下にビルドすることも可能ですが、同じソースツリー内のこの 2 つの構成間を切り替える際には、bazel clean を実行することをおすすめします。

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

生成される .whl ファイルのファイル名は TensorFlow のバージョンとご利用のプラットフォームによって異なります。pip3 install を使ってパッケージをインストールするには、たとえば次のように指定します。

pip3 install C:/tmp/tensorflow_pkg/tensorflow-version-cp36-cp36m-win_amd64.whl

MSYS シェルを使用してビルドする

TensorFlow は MSYS シェルを使用してビルドすることもできます。以下に挙げた変更を行った後、Windows のネイティブ コマンドライン(cmd.exe)での上記の手順を行います。

MSYS のパス変換を無効にする

MSYS は Unix のパスと見なされる引数を Windows のパスに変換しますが、これは bazel ではうまく機能しません(//path/to:bin というラベルはスラッシュで始まるため、Unix の絶対パスと見なされてしまいます)。

export MSYS_NO_PATHCONV=1
export MSYS2_ARG_CONV_EXCL="*"

PATH を設定する

Bazel と Python の各インストール先ディレクトリを $PATH 環境変数に追加します。Bazel が C:\tools\bazel.exe、Python が C:\Python36\python.exe にインストールされている場合は、PATH を次のように設定します。

# Use Unix-style with ':' as separator
export PATH="/c/tools:$PATH"
export PATH="/c/Python36:$PATH"

GPU サポートの場合は、CUDA と cuDNN の各 bin ディレクトリを $PATH に追加します。

export PATH="/c/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v9.0/bin:$PATH"
export PATH="/c/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v9.0/extras/CUPTI/libx64:$PATH"
export PATH="/c/tools/cuda/bin:$PATH"

テスト済みのビルド構成

CPU

バージョンPython バージョンコンパイラビルドツール
tensorflow-2.3.03.5~3.8MSVC 2019Bazel 3.1.0
tensorflow-2.2.03.5~3.8MSVC 2019Bazel 2.0.0
tensorflow-2.1.03.5~3.7MSVC 2019Bazel 0.27.1-0.29.1
tensorflow-2.0.03.5~3.7MSVC 2017Bazel 0.26.1
tensorflow-1.15.03.5~3.7MSVC 2017Bazel 0.26.1
tensorflow-1.14.03.5~3.7MSVC 2017Bazel 0.24.1-0.25.2
tensorflow-1.13.03.5~3.7MSVC 2015 Update 3Bazel 0.19.0-0.21.0
tensorflow-1.12.03.5~3.6MSVC 2015 Update 3Bazel 0.15.0
tensorflow-1.11.03.5~3.6MSVC 2015 Update 3Bazel 0.15.0
tensorflow-1.10.03.5~3.6MSVC 2015 Update 3Cmake v3.6.3
tensorflow-1.9.03.5~3.6MSVC 2015 Update 3Cmake v3.6.3
tensorflow-1.8.03.5~3.6MSVC 2015 Update 3Cmake v3.6.3
tensorflow-1.7.03.5~3.6MSVC 2015 Update 3Cmake v3.6.3
tensorflow-1.6.03.5~3.6MSVC 2015 Update 3Cmake v3.6.3
tensorflow-1.5.03.5~3.6MSVC 2015 Update 3Cmake v3.6.3
tensorflow-1.4.03.5~3.6MSVC 2015 Update 3Cmake v3.6.3
tensorflow-1.3.03.5~3.6MSVC 2015 Update 3Cmake v3.6.3
tensorflow-1.2.03.5~3.6MSVC 2015 Update 3Cmake v3.6.3
tensorflow-1.1.03.5MSVC 2015 Update 3Cmake v3.6.3
tensorflow-1.0.03.5MSVC 2015 Update 3Cmake v3.6.3

GPU

バージョンPython バージョンコンパイラビルドツールcuDNNCUDA
tensorflow_gpu-2.3.03.5~3.8MSVC 2019Bazel 3.1.07.410.1
tensorflow_gpu-2.2.03.5~3.8MSVC 2019Bazel 2.0.07.410.1
tensorflow_gpu-2.1.03.5~3.7MSVC 2019Bazel 0.27.1-0.29.17.410.1
tensorflow_gpu-2.0.03.5~3.7MSVC 2017Bazel 0.26.17.410
tensorflow_gpu-1.15.03.5~3.7MSVC 2017Bazel 0.26.17.410
tensorflow_gpu-1.14.03.5~3.7MSVC 2017Bazel 0.24.1-0.25.27.410
tensorflow_gpu-1.13.03.5~3.7MSVC 2015 Update 3Bazel 0.19.0-0.21.07.410
tensorflow_gpu-1.12.03.5~3.6MSVC 2015 Update 3Bazel 0.15.079
tensorflow_gpu-1.11.03.5~3.6MSVC 2015 Update 3Bazel 0.15.079
tensorflow_gpu-1.10.03.5~3.6MSVC 2015 Update 3Cmake v3.6.379
tensorflow_gpu-1.9.03.5~3.6MSVC 2015 Update 3Cmake v3.6.379
tensorflow_gpu-1.8.03.5~3.6MSVC 2015 Update 3Cmake v3.6.379
tensorflow_gpu-1.7.03.5~3.6MSVC 2015 Update 3Cmake v3.6.379
tensorflow_gpu-1.6.03.5~3.6MSVC 2015 Update 3Cmake v3.6.379
tensorflow_gpu-1.5.03.5~3.6MSVC 2015 Update 3Cmake v3.6.379
tensorflow_gpu-1.4.03.5~3.6MSVC 2015 Update 3Cmake v3.6.368
tensorflow_gpu-1.3.03.5~3.6MSVC 2015 Update 3Cmake v3.6.368
tensorflow_gpu-1.2.03.5~3.6MSVC 2015 Update 3Cmake v3.6.35.18
tensorflow_gpu-1.1.03.5MSVC 2015 Update 3Cmake v3.6.35.18
tensorflow_gpu-1.0.03.5MSVC 2015 Update 3Cmake v3.6.35.18