ソースから TensorFlow pipパッケージをビルドし、Windows にインストールします。
Windowsのセットアップ
Windows 開発環境を構成するには、次のビルド ツールをインストールします。
PythonとTensorFlowパッケージの依存関係をインストールする
Windows 用の Python 3.9+ 64 ビットリリースをインストールします。オプション機能としてpipを選択し、 %PATH%
環境変数に追加します。
TensorFlow pipパッケージの依存関係をインストールします。
pip3 install -U pip
pip3 install -U six numpy wheel packaging
pip3 install -U keras_preprocessing --no-deps
依存関係は、 setup.py
ファイルのREQUIRED_PACKAGES
の下にリストされています。
Bazelをインストールする
TensorFlow をコンパイルするためのビルドツールであるBazel をインストールします。Bazel のバージョンについては、Windows でテスト済みのビルド構成を参照してください。C ++ をビルドするように Bazel を設定します。
Bazel 実行可能ファイルの場所を%PATH%
環境変数に追加します。
MSYS2をインストールする
TensorFlowのビルドに必要なbinツールとしてMSYS2をインストールしてください。MSYS2がC:\msys64
にインストールされている場合は、 C:\msys64\usr\bin
%PATH%
環境変数に追加してください。その後、 cmd.exe
を使用して以下を実行します。
pacman -Syu (requires a console restart) pacman -S git patch unzip pacman -S git patch unzip rsync
Visual C++ ビルドツール 2022 をインストールする
Visual C++ ビルドツール 2022をインストールします。これはVisual Studio Community 2022に付属していますが、別途インストールすることもできます。
- Visual Studioのダウンロードにアクセスし、
- Visual Studioのツールまたはその他のツール、フレームワークと再頒布可能パッケージを選択し、
- ダウンロードしてインストール:
- Visual Studio 2022 のビルド ツール
- Visual Studio 2022 用 Microsoft Visual C++ 再頒布可能パッケージ
LLVMをインストールする
- LLVMのダウンロードへアクセスし、
- Windows 互換の LLVM を C:/Program Files/LLVM にダウンロードしてインストールします (例: LLVM-17.0.6-win64.exe)
GPUサポートをインストールする(オプション)
GPU で TensorFlow を実行するために必要なドライバーと追加ソフトウェアをインストールするには、Windows GPU サポートガイドを参照してください。
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.
オプション: 環境変数の設定
パッケージ作成に関する問題を回避するため、ビルドコマンドを実行する前に以下のコマンドを実行してください。(パッケージのインストール時に以下のコマンドが設定されている場合は無視してください。) set
を実行してすべてのパスが正しく設定されているかどうかを確認します。echo echo %Environmental Variable%
(例: echo %BAZEL_VC%
を実行して特定の環境変数のパス設定を確認します。
Python パス設定の問題tensorflow:issue#59943 、 tensorflow:issue#9436 、 tensorflow:issue#60083
set PATH=path/to/python;%PATH% # [e.g. (C:/Python311)] set PATH=path/to/python/Scripts;%PATH% # [e.g. (C:/Python311/Scripts)] set PYTHON_BIN_PATH=path/to/python_virtualenv/Scripts/python.exe set PYTHON_LIB_PATH=path/to/python virtualenv/lib/site-packages set PYTHON_DIRECTORY=path/to/python_virtualenv/Scripts
Bazel/MSVC/CLANG パス設定の問題tensorflow:issue#54578
set BAZEL_SH=C:/msys64/usr/bin/bash.exe set BAZEL_VS=C:/Program Files/Microsoft Visual Studio/2022/BuildTools set BAZEL_VC=C:/Program Files/Microsoft Visual Studio/2022/BuildTools/VC set Bazel_LLVM=C:/Program Files/LLVM (explicitly tell Bazel where LLVM is installed by BAZEL_LLVM, needed while using CLANG) set PATH=C:/Program Files/LLVM/bin;%PATH% (Optional, needed while using CLANG as Compiler)
オプション: ビルドを構成する
TensorFlow ビルドは./configure
リポジトリのルートディレクトリにある.bazelrc
ファイルによって構成されます。./configure または./configure.py
スクリプトを使用して、一般的な設定を調整できます。
設定を変更する必要がある場合は、リポジトリのルート ディレクトリから./configure
スクリプトを実行します。
python ./configure.py
このスクリプトは、TensorFlowの依存関係の場所と、追加のビルド設定オプション(コンパイラフラグなど)の入力を求めます。以下はpython ./configure.py
の実行例です(セッションによって異なる場合があります)。
pipパッケージをビルドしてインストールする
pip パッケージは2段階でビルドされます。bazel bazel build
コマンドは「package-builder」プログラムを作成します。その後、package-builder を実行してパッケージを作成します。
パッケージビルダーをビルドする
tensorflow:master リポジトリが更新され、デフォルトで 2.x がビルドされるようになりました。Bazelをインストールし、 bazel build
を使用して TensorFlow パッケージビルダーを作成してください。
bazel build //tensorflow/tools/pip_package:wheel
CPUのみ
bazel
を使用して、CPU のみをサポートする TensorFlow パッケージ ビルダーを作成します。
MSVCでビルドする
bazel build --config=opt --repo_env=TF_PYTHON_VERSION=3.11 //tensorflow/tools/pip_package:wheel --repo_env=WHEEL_NAME=tensorflow_cpu
CLANGでビルドする
CLANG コンパイラを使用して TenorFlow をビルドするには、--config= win_clang
を使用します。
bazel build --config=win_clang --repo_env=TF_PYTHON_VERSION=3.11 //tensorflow/tools/pip_package:wheel --repo_env=WHEEL_NAME=tensorflow_cpu
GPUサポート
GPU サポート付きの TensorFlow パッケージ ビルダーを作成するには:
bazel build --config=opt --config=cuda --define=no_tensorflow_py_deps=true //tensorflow/tools/pip_package:build_pip_package
無効または古いキャッシュデータによるエラーを解決するために、bazel キャッシュを消去するコマンド。--expunge フラグを指定した bazel clean はファイルを永久に削除します。
bazel clean bazel clean --expunge
Bazelビルドオプション
パッケージ作成に関する問題を回避するには、ビルド時にこのオプションを使用します: tensorflow:issue#22390
--define=no_tensorflow_py_deps=true
ビルド オプションについては、Bazelコマンドライン リファレンスを参照してください。
TensorFlowをソースからビルドすると、大量のRAMが消費される可能性があります。システムのメモリ容量が限られている場合は、 --local_ram_resources=2048
を指定してBazelのRAM使用量を制限してください。
GPU サポートを使用してビルドする場合は、 --copt=-nvcc_options=disable-warnings
を追加して、nvcc 警告メッセージを抑制します。
パッケージをビルドする
pip パッケージをビルドするには、--repo_env=WHEEL_NAME フラグを指定する必要があります。指定された名前に応じて、パッケージが作成されます。例:
Tensorflow CPU パッケージをビルドするには:
bazel build //tensorflow/tools/pip_package:wheel --repo_env=WHEEL_NAME=tensorflow_cpu
ナイトリー パッケージをビルドするには、 tensorflow
の代わりにtf_nightly
設定します。たとえば、CPU ナイトリー パッケージをビルドするには、次のようにします。
bazel build //tensorflow/tools/pip_package:wheel --repo_env=WHEEL_NAME=tf_nightly_cpu
その結果、生成されたホイールは
bazel-bin/tensorflow/tools/pip_package/wheel_house/
パッケージをインストールする
生成される.whl
ファイルのファイル名は、TensorFlowのバージョンとプラットフォームによって異なります。パッケージをインストールするには、 pip install
使用してください。例:
pip install bazel-bin/tensorflow/tools/pip_package/wheel_house/tensorflow-version-tags.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:\Python\python.exe
にインストールされている場合は、 PATH
を次のように設定します。
# Use Unix-style with ':' as separatorexport PATH="/c/tools:$PATH"
export PATH="/c/path/to/Python:$PATH"
GPU サポートの場合は、CUDA および cuDNN bin ディレクトリを$PATH
に追加します。
export PATH="/c/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.0/bin:$PATH"
export PATH="/c/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.0/extras/CUPTI/libx64:$PATH"
export PATH="/c/tools/cuda/bin:$PATH"
テスト済みのビルド構成
CPU
バージョン | Pythonバージョン | コンパイラ | ビルドツール |
---|---|---|---|
テンソルフロー 2.20.0 | 3.9-3.13 | CLANG 18.1.4 | バゼル 7.4.1 |
テンソルフロー 2.19.0 | 3.9-3.12 | CLANG 18.1.4 | バゼル 6.5.0 |
テンソルフロー-2.18.0 | 3.9-3.12 | CLANG 17.0.6 | バゼル 6.5.0 |
テンソルフロー-2.17.0 | 3.9-3.12 | CLANG 17.0.6 | バゼル 6.5.0 |
テンソルフロー-2.16.1 | 3.9-3.12 | CLANG 17.0.6 | バゼル 6.5.0 |
テンソルフロー 2.15.0 | 3.9-3.11 | MSVC 2019 | バゼル 6.1.0 |
テンソルフロー-2.14.0 | 3.9-3.11 | MSVC 2019 | バゼル 6.1.0 |
テンソルフロー 2.12.0 | 3.8~3.11 | MSVC 2019 | バゼル 5.3.0 |
テンソルフロー-2.11.0 | 3.7~3.10 | MSVC 2019 | バゼル 5.3.0 |
テンソルフロー 2.10.0 | 3.7~3.10 | MSVC 2019 | バゼル 5.1.1 |
テンソルフロー 2.9.0 | 3.7~3.10 | MSVC 2019 | バゼル 5.0.0 |
テンソルフロー 2.8.0 | 3.7~3.10 | MSVC 2019 | バゼル 4.2.1 |
テンソルフロー 2.7.0 | 3.7~3.9 | MSVC 2019 | バゼル 3.7.2 |
テンソルフロー 2.6.0 | 3.6~3.9 | MSVC 2019 | バゼル 3.7.2 |
テンソルフロー 2.5.0 | 3.6~3.9 | MSVC 2019 | バゼル 3.7.2 |
テンソルフロー 2.4.0 | 3.6~3.8 | MSVC 2019 | バゼル 3.1.0 |
テンソルフロー 2.3.0 | 3.5~3.8 | MSVC 2019 | バゼル 3.1.0 |
テンソルフロー 2.2.0 | 3.5~3.8 | MSVC 2019 | バゼル 2.0.0 |
テンソルフロー 2.1.0 | 3.5~3.7 | MSVC 2019 | バゼル 0.27.1-0.29.1 |
テンソルフロー 2.0.0 | 3.5~3.7 | MSVC 2017 | バゼル 0.26.1 |
テンソルフロー-1.15.0 | 3.5~3.7 | MSVC 2017 | バゼル 0.26.1 |
テンソルフロー-1.14.0 | 3.5~3.7 | MSVC 2017 | バゼル 0.24.1-0.25.2 |
テンソルフロー-1.13.0 | 3.5~3.7 | MSVC 2015 アップデート 3 | バゼル 0.19.0-0.21.0 |
テンソルフロー-1.12.0 | 3.5~3.6 | MSVC 2015 アップデート 3 | バゼル 0.15.0 |
テンソルフロー-1.11.0 | 3.5~3.6 | MSVC 2015 アップデート 3 | バゼル 0.15.0 |
テンソルフロー-1.10.0 | 3.5~3.6 | MSVC 2015 アップデート 3 | CMake v3.6.3 |
テンソルフロー 1.9.0 | 3.5~3.6 | MSVC 2015 アップデート 3 | CMake v3.6.3 |
テンソルフロー 1.8.0 | 3.5~3.6 | MSVC 2015 アップデート 3 | CMake v3.6.3 |
テンソルフロー 1.7.0 | 3.5~3.6 | MSVC 2015 アップデート 3 | CMake v3.6.3 |
テンソルフロー 1.6.0 | 3.5~3.6 | MSVC 2015 アップデート 3 | CMake v3.6.3 |
テンソルフロー 1.5.0 | 3.5~3.6 | MSVC 2015 アップデート 3 | CMake v3.6.3 |
テンソルフロー 1.4.0 | 3.5~3.6 | MSVC 2015 アップデート 3 | CMake v3.6.3 |
テンソルフロー 1.3.0 | 3.5~3.6 | MSVC 2015 アップデート 3 | CMake v3.6.3 |
テンソルフロー 1.2.0 | 3.5~3.6 | MSVC 2015 アップデート 3 | CMake v3.6.3 |
テンソルフロー 1.1.0 | 3.5 | MSVC 2015 アップデート 3 | CMake v3.6.3 |
テンソルフロー 1.0.0 | 3.5 | MSVC 2015 アップデート 3 | CMake v3.6.3 |
グラフィックプロセッサ
バージョン | Pythonバージョン | コンパイラ | ビルドツール | cuDNN | CUDA |
---|---|---|---|---|---|
テンソルフローGPU-2.10.0 | 3.7~3.10 | MSVC 2019 | バゼル 5.1.1 | 8.1 | 11.2 |
テンソルフローGPU-2.9.0 | 3.7~3.10 | MSVC 2019 | バゼル 5.0.0 | 8.1 | 11.2 |
テンソルフローGPU-2.8.0 | 3.7~3.10 | MSVC 2019 | バゼル 4.2.1 | 8.1 | 11.2 |
テンソルフローGPU-2.7.0 | 3.7~3.9 | MSVC 2019 | バゼル 3.7.2 | 8.1 | 11.2 |
テンソルフローGPU-2.6.0 | 3.6~3.9 | MSVC 2019 | バゼル 3.7.2 | 8.1 | 11.2 |
テンソルフローGPU-2.5.0 | 3.6~3.9 | MSVC 2019 | バゼル 3.7.2 | 8.1 | 11.2 |
テンソルフローGPU-2.4.0 | 3.6~3.8 | MSVC 2019 | バゼル 3.1.0 | 8.0 | 11.0 |
テンソルフローGPU-2.3.0 | 3.5~3.8 | MSVC 2019 | バゼル 3.1.0 | 7.6 | 10.1 |
テンソルフローGPU-2.2.0 | 3.5~3.8 | MSVC 2019 | バゼル 2.0.0 | 7.6 | 10.1 |
テンソルフローGPU-2.1.0 | 3.5~3.7 | MSVC 2019 | バゼル 0.27.1-0.29.1 | 7.6 | 10.1 |
テンソルフローGPU-2.0.0 | 3.5~3.7 | MSVC 2017 | バゼル 0.26.1 | 7.4 | 10 |
テンソルフローGPU-1.15.0 | 3.5~3.7 | MSVC 2017 | バゼル 0.26.1 | 7.4 | 10 |
テンソルフローGPU-1.14.0 | 3.5~3.7 | MSVC 2017 | バゼル 0.24.1-0.25.2 | 7.4 | 10 |
テンソルフローGPU-1.13.0 | 3.5~3.7 | MSVC 2015 アップデート 3 | バゼル 0.19.0-0.21.0 | 7.4 | 10 |
テンソルフローGPU-1.12.0 | 3.5~3.6 | MSVC 2015 アップデート 3 | バゼル 0.15.0 | 7.2 | 9.0 |
テンソルフローGPU-1.11.0 | 3.5~3.6 | MSVC 2015 アップデート 3 | バゼル 0.15.0 | 7 | 9 |
テンソルフローGPU-1.10.0 | 3.5~3.6 | MSVC 2015 アップデート 3 | Cmake v3.6.3 | 7 | 9 |
テンソルフローGPU-1.9.0 | 3.5~3.6 | MSVC 2015 アップデート 3 | CMake v3.6.3 | 7 | 9 |
テンソルフローGPU-1.8.0 | 3.5~3.6 | MSVC 2015 アップデート 3 | Cmake v3.6.3 | 7 | 9 |
テンソルフローGPU-1.7.0 | 3.5~3.6 | MSVC 2015 アップデート 3 | CMake v3.6.3 | 7 | 9 |
テンソルフローGPU-1.6.0 | 3.5~3.6 | MSVC 2015 アップデート 3 | CMake v3.6.3 | 7 | 9 |
テンソルフローGPU-1.5.0 | 3.5~3.6 | MSVC 2015 アップデート 3 | CMake v3.6.3 | 7 | 9 |
テンソルフローGPU-1.4.0 | 3.5~3.6 | MSVC 2015 アップデート 3 | CMake v3.6.3 | 6 | 8 |
テンソルフローGPU-1.3.0 | 3.5~3.6 | MSVC 2015 アップデート 3 | Cmake v3.6.3 | 6 | 8 |
テンソルフローGPU-1.2.0 | 3.5~3.6 | MSVC 2015 アップデート 3 | Cmake v3.6.3 | 5.1 | 8 |
テンソルフローGPU-1.1.0 | 3.5 | MSVC 2015 アップデート 3 | CMake v3.6.3 | 5.1 | 8 |
テンソルフローGPU-1.0.0 | 3.5 | MSVC 2015 アップデート 3 | Cmake v3.6.3 | 5.1 | 8 |