git for windowsをインストールします。
MSYS2をインストールします。
MSYS2をインストールしたら、MSYS2 MinGW 64-bitを起動して、以下のコマンドを実行して必要なパッケージをインストールします。
pacman -Syu pacman -S diffutils patch unzip sed
Visual Studio 2026をインストールします。 https://visualstudio.microsoft.com/ja/downloads/ インストールの際は、C++によるデスクトップ開発を選択してください。
次に、Bazelを騙すために、パスを誤魔化します。 コマンドプロンプトを開いて、以下のコマンドを実行します。
mklink /J C:\MSVC_2019 "C:\Program Files\Microsoft Visual Studio\18\Community"
今回使用するBazelは2019までしか対応していませんが、パスに数字があれば通ります。CUDA関連のコンパイルで失敗するので最新を使います。
CUDA Toolkit 12.9をインストールします。 https://developer.nvidia.com/compute/cuda/12.9.1/network_installers/cuda_12.9.1_windows_network.exe
次のリンクからダウンロードします。 https://developer.nvidia.com/downloads/compute/cudnn/secure/8.9.7/local_installers/12.x/cudnn-windows-x86_64-8.9.7.29_cuda12-archive.zip/
展開した内容を、CUDA Toolkitをインストールしたディレクトリc:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9のbin、include、libにそれぞれコピーします。 このとき管理者権限が必要です。
Tensorflow1.15では、定義に矛盾が生じるので、コンパイル時はヘッダーを誤魔化します。 コンパイルした後は、元に戻しておきます。先程のフォルダから書き戻してください。
MSYS2が入っていると、コマンドプロンプトで以下のコマンドが実行できます。 管理者権限のコマンドプロンプトを開いて、以下のコマンドを実行します。
cd c:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9 patch -p1 < cuda-12.9.patch
今回は、Python環境を入れるためにuvを使用します。コマンドプロンプトを開いて以下のコマンドでインストールします。
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
uvを使用してPythonをインストールします。 作業に使用する任意のディレクトリで、コマンドプロンプトを開いて、以下のコマンドを実行します。
uv init tensorflow1 --bare -p 3.12 cd tensorflow1 uv python pin 3.12
続いて、必要なPythonのパッケージをインストールします。
uv add 'numpy<2' uv add git+https://github.com/keras-team/keras-preprocessing.git uv add setuptools
bazel0.26.1が必要なので、昔の置き場から持ってきてダウンロードします。最新のBazelだと上手くいきません。 https://releases.bazel.build/0.26.1/release/bazel-0.26.1-windows-x86_64.exe
ダウンロードしたファイルを、ファイル名を変更してパスの通ったところに置きます。 先程の仮想環境の実行ディレクトリに置くといいでしょう。
copy bazel-0.26.1-windows-x86_64.exe tensorflow1\.venv\Scripts\bazel.exe
コマンドプロンプトを開き、仮想環境をアクティベートします。
tensorflow1\.venv\Scripts\activate
これからの作業は、仮想環境をアクティベートした状態で行います。
git clone -b r1.15 https://github.com/tensorflow/tensorflow.git
Tensorflow1.15のソースコードに、cuda12.9でビルドできるようにするためのパッチを当てます。 python3.12の場合、いろいろ通らなくなるようになるので、モジュールをいじったりしています。
cd tensorflow patch -p1 < ../tensorflow-1.15.5-cuda12.9-python3.12.patch
bazelがコンパイラを見つけられるように、環境変数を設定します。 コマンドプロンプトで以下のコマンドを実行します。
set BAZEL_VC=C:\MSVC_2019\VC set BAZEL_VS=C:\MSVC_2019
cd tensorflow configure
基本デフォルトでいいです。 CUDA の質問で Yes として、 Compute Capability は、7.5,8.0,8.6,8.9,9.0,10.0,10.3,12.0 を指定します。必要でないGPUのものを外すとコンパイルが速くなります。
bazel build --define=no_tensorflow_py_deps=true --config=opt --verbose_failures //tensorflow/tools/pip_package:build_pip_package
数時間かかると思うので、ゆっくりお茶して待っててください。
bazel-bin\tensorflow\tools\pip_package\build_pip_package tensorflow_pkg
tensorflow_pkg に、tensorflow-1.15.5-cp312-cp312-win_amd64.whl というファイルができるので、これをインストールして使ってください。 cp312の部分は、Pythonのバージョンによって変わります。
内容について何か問題やご意見がございましたら、contact@lithium03.infoまで連絡ください。
もくじへ戻る