Соберите пакет TensorFlow pip из исходного кода и установите его в Windows.
Установка для Windows
Установите следующие инструменты сборки, чтобы настроить среду разработки Windows.
Установите Python и зависимости пакета TensorFlow.
Установите 64-битную версию Python 3.9+ для Windows . Выберите pip в качестве необязательной функции и добавьте его в переменную среды %PATH% .
Установите зависимости пакета TensorFlow через pip :
pip3 install -U pippip3 install -U six numpy wheel packagingpip3 install -U keras_preprocessing --no-deps
Список зависимостей приведен в файле setup.py в разделе REQUIRED_PACKAGES .
Установите Bazel
Установите Bazel — инструмент сборки, используемый для компиляции TensorFlow. Версию Bazel см. в протестированных конфигурациях сборки для Windows. Настройте Bazel для сборки C++ .
Добавьте путь к исполняемому файлу Bazel в переменную среды %PATH% .
Установите MSYS2
Установите MSYS2 , чтобы получить необходимые для сборки TensorFlow инструменты bin. Если 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++ Build Tools 2022.
Установите инструменты сборки Visual C++ 2022. Они входят в состав Visual Studio Community 2022 , но могут быть установлены отдельно:
- Перейдите в раздел загрузок Visual Studio .
- Выберите «Инструменты для Visual Studio» или «Другие инструменты», «Framework и распространяемые компоненты» .
- Скачайте и установите:
- Инструменты сборки для Visual Studio 2022
- Распространяемые компоненты Microsoft Visual C++ для Visual Studio 2022
Установите LLVM
- Перейдите в раздел загрузок LLVM .
- Загрузите и установите совместимую с Windows версию LLVM в папку C:/Program Files/LLVM, например, LLVM-17.0.6-win64.exe.
Установить поддержку графического процессора (необязательно)
Для установки драйверов и дополнительного программного обеспечения, необходимого для запуска TensorFlow на графическом процессоре, см. руководство по поддержке графических процессоров в Windows.
Загрузите исходный код TensorFlow.
Используйте Git для клонирования репозитория TensorFlow ( git установлен вместе с MSYS2):
git clone https://github.com/tensorflow/tensorflow.gitcd tensorflow
По умолчанию репозиторий использует основную ветку разработки master development). Вы также можете переключиться на ветку релизов для сборки:
git checkout branch_name # r1.9, r1.10, etc.
Дополнительно: Настройка переменных окружающей среды
Перед запуском команды сборки выполните следующие команды, чтобы избежать проблем с созданием пакетов: (Если указанные ниже команды были установлены во время установки пакетов, пожалуйста, проигнорируйте их). Выполните set , чтобы проверить правильность установки всех путей, выполните команду 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 осуществляется с помощью файла .bazelrc , расположенного в корневом каталоге репозитория. Для изменения общих параметров можно использовать скрипты ./configure или ./configure.py .
Если вам необходимо изменить конфигурацию, запустите скрипт ./configure из корневого каталога репозитория.
python ./configure.py
Этот скрипт запрашивает у вас местоположение зависимостей TensorFlow и дополнительные параметры конфигурации сборки (например, флаги компилятора). Ниже показан пример запуска команды python ./configure.py (ваша сессия может отличаться):
Соберите и установите пакет pip.
Сборка пакета pip выполняется в два этапа. Команда bazel build создает программу "package-builder". Затем вы запускаете package-builder для создания пакета.
Соберите сборщик пакетов
Репозиторий tensorflow:master по умолчанию обновлен до версии сборки 2.x. Установите Bazel и используйте bazel build для создания сборщика пакетов TensorFlow.
bazel build //tensorflow/tools/pip_package:wheel
только ЦП
Используйте bazel для создания пакета 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
Используйте параметр --config= win_clang для сборки TenorFlow с помощью компилятора CLANG:
bazel build --config=win_clang --repo_env=TF_PYTHON_VERSION=3.11 //tensorflow/tools/pip_package:wheel --repo_env=WHEEL_NAME=tensorflow_cpu
поддержка графического процессора
Чтобы создать сборщик пакетов TensorFlow с поддержкой графического процессора:
bazel build --config=opt --config=cuda --define=no_tensorflow_py_deps=true //tensorflow/tools/pip_package:build_pip_package
Команды для очистки кэша Bazel для устранения ошибок, вызванных недействительными или устаревшими кэшированными данными; команда `bazel clean` с флагом `--expunge` удаляет файлы навсегда.
bazel clean bazel clean --expunge
Варианты сборки Bazel
Используйте этот параметр при сборке, чтобы избежать проблем с созданием пакетов: tensorflow:issue#22390
--define=no_tensorflow_py_deps=true
Информацию о параметрах сборки см. в справочнике по командной строке Bazel.
Сборка TensorFlow из исходного кода может потреблять много оперативной памяти. Если в вашей системе ограничен объем памяти, ограничьте использование оперативной памяти Bazel с помощью параметра: --local_ram_resources=2048 .
При сборке с поддержкой графического процессора добавьте --copt=-nvcc_options=disable-warnings , чтобы подавить предупреждающие сообщения nvcc.
Соберите пакет
Для сборки пакета pip необходимо указать флаг --repo_env=WHEEL_NAME. В зависимости от указанного имени будет создан пакет. Например:
Для сборки пакета TensorFlow для ЦП:
bazel build //tensorflow/tools/pip_package:wheel --repo_env=WHEEL_NAME=tensorflow_cpu
Для сборки ночного пакета используйте параметр tf_nightly вместо tensorflow , например, для сборки ночного пакета для ЦП:
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=1export MSYS2_ARG_CONV_EXCL="*"
Укажите свой ПУТЬ
Добавьте каталоги установки 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"
Для поддержки графического процессора добавьте каталоги bin CUDA и cuDNN в переменную среды $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"
Протестированные конфигурации сборки
Процессор
| Версия | версия Python | Компилятор | Инструменты для сборки |
|---|---|---|---|
| tensorflow-2.21.0 | 3.10-3.13 | CLANG 18.1.4 | Базель 7.4.1 |
| tensorflow-2.20.0 | 3.9-3.13 | CLANG 18.1.4 | Базель 7.4.1 |
| tensorflow-2.19.0 | 3.9-3.12 | CLANG 18.1.4 | Базель 6.5.0 |
| tensorflow-2.18.0 | 3.9-3.12 | CLANG 17.0.6 | Базель 6.5.0 |
| tensorflow-2.17.0 | 3.9-3.12 | CLANG 17.0.6 | Базель 6.5.0 |
| tensorflow-2.16.1 | 3.9-3.12 | CLANG 17.0.6 | Базель 6.5.0 |
| tensorflow-2.15.0 | 3.9-3.11 | MSVC 2019 | Базель 6.1.0 |
| tensorflow-2.14.0 | 3.9-3.11 | MSVC 2019 | Базель 6.1.0 |
| tensorflow-2.12.0 | 3.8-3.11 | MSVC 2019 | Базель 5.3.0 |
| tensorflow-2.11.0 | 3.7-3.10 | MSVC 2019 | Базель 5.3.0 |
| tensorflow-2.10.0 | 3.7-3.10 | MSVC 2019 | Базель 5.1.1 |
| tensorflow-2.9.0 | 3.7-3.10 | MSVC 2019 | Базель 5.0.0 |
| tensorflow-2.8.0 | 3.7-3.10 | MSVC 2019 | Базель 4.2.1 |
| tensorflow-2.7.0 | 3.7-3.9 | MSVC 2019 | Базель 3.7.2 |
| tensorflow-2.6.0 | 3.6-3.9 | MSVC 2019 | Базель 3.7.2 |
| tensorflow-2.5.0 | 3.6-3.9 | MSVC 2019 | Базель 3.7.2 |
| tensorflow-2.4.0 | 3.6-3.8 | MSVC 2019 | Базель 3.1.0 |
| tensorflow-2.3.0 | 3.5-3.8 | MSVC 2019 | Базель 3.1.0 |
| tensorflow-2.2.0 | 3.5-3.8 | MSVC 2019 | Базель 2.0.0 |
| tensorflow-2.1.0 | 3.5-3.7 | MSVC 2019 | Базель 0.27.1-0.29.1 |
| tensorflow-2.0.0 | 3.5-3.7 | MSVC 2017 | Базель 0.26.1 |
| tensorflow-1.15.0 | 3.5-3.7 | MSVC 2017 | Базель 0.26.1 |
| tensorflow-1.14.0 | 3.5-3.7 | MSVC 2017 | Базель 0.24.1-0.25.2 |
| tensorflow-1.13.0 | 3.5-3.7 | Обновление MSVC 2015, версия 3 | Bazel 0.19.0-0.21.0 |
| tensorflow-1.12.0 | 3.5-3.6 | Обновление MSVC 2015, версия 3 | Базель 0.15.0 |
| tensorflow-1.11.0 | 3.5-3.6 | Обновление MSVC 2015, версия 3 | Базель 0.15.0 |
| tensorflow-1.10.0 | 3.5-3.6 | Обновление MSVC 2015, версия 3 | Make v3.6.3 |
| tensorflow-1.9.0 | 3.5-3.6 | Обновление MSVC 2015, версия 3 | Make v3.6.3 |
| tensorflow-1.8.0 | 3.5-3.6 | Обновление MSVC 2015, версия 3 | Make v3.6.3 |
| tensorflow-1.7.0 | 3.5-3.6 | Обновление MSVC 2015, версия 3 | Make v3.6.3 |
| tensorflow-1.6.0 | 3.5-3.6 | Обновление MSVC 2015, версия 3 | Make v3.6.3 |
| tensorflow-1.5.0 | 3.5-3.6 | Обновление MSVC 2015, версия 3 | Make v3.6.3 |
| tensorflow-1.4.0 | 3.5-3.6 | Обновление MSVC 2015, версия 3 | Make v3.6.3 |
| tensorflow-1.3.0 | 3.5-3.6 | Обновление MSVC 2015, версия 3 | Make v3.6.3 |
| tensorflow-1.2.0 | 3.5-3.6 | Обновление MSVC 2015, версия 3 | Make v3.6.3 |
| tensorflow-1.1.0 | 3.5 | Обновление MSVC 2015, версия 3 | Make v3.6.3 |
| tensorflow-1.0.0 | 3.5 | Обновление MSVC 2015, версия 3 | Make v3.6.3 |
GPU
| Версия | версия Python | Компилятор | Инструменты для сборки | cuDNN | КУДА |
|---|---|---|---|---|---|
| tensorflow_gpu-2.10.0 | 3.7-3.10 | MSVC 2019 | Базель 5.1.1 | 8.1 | 11.2 |
| tensorflow_gpu-2.9.0 | 3.7-3.10 | MSVC 2019 | Базель 5.0.0 | 8.1 | 11.2 |
| tensorflow_gpu-2.8.0 | 3.7-3.10 | MSVC 2019 | Базель 4.2.1 | 8.1 | 11.2 |
| tensorflow_gpu-2.7.0 | 3.7-3.9 | MSVC 2019 | Базель 3.7.2 | 8.1 | 11.2 |
| tensorflow_gpu-2.6.0 | 3.6-3.9 | MSVC 2019 | Базель 3.7.2 | 8.1 | 11.2 |
| tensorflow_gpu-2.5.0 | 3.6-3.9 | MSVC 2019 | Базель 3.7.2 | 8.1 | 11.2 |
| tensorflow_gpu-2.4.0 | 3.6-3.8 | MSVC 2019 | Базель 3.1.0 | 8.0 | 11.0 |
| tensorflow_gpu-2.3.0 | 3.5-3.8 | MSVC 2019 | Базель 3.1.0 | 7.6 | 10.1 |
| tensorflow_gpu-2.2.0 | 3.5-3.8 | MSVC 2019 | Базель 2.0.0 | 7.6 | 10.1 |
| tensorflow_gpu-2.1.0 | 3.5-3.7 | MSVC 2019 | Базель 0.27.1-0.29.1 | 7.6 | 10.1 |
| tensorflow_gpu-2.0.0 | 3.5-3.7 | MSVC 2017 | Базель 0.26.1 | 7.4 | 10 |
| tensorflow_gpu-1.15.0 | 3.5-3.7 | MSVC 2017 | Базель 0.26.1 | 7.4 | 10 |
| tensorflow_gpu-1.14.0 | 3.5-3.7 | MSVC 2017 | Базель 0.24.1-0.25.2 | 7.4 | 10 |
| tensorflow_gpu-1.13.0 | 3.5-3.7 | Обновление MSVC 2015, версия 3 | Bazel 0.19.0-0.21.0 | 7.4 | 10 |
| tensorflow_gpu-1.12.0 | 3.5-3.6 | Обновление MSVC 2015, версия 3 | Базель 0.15.0 | 7.2 | 9.0 |
| tensorflow_gpu-1.11.0 | 3.5-3.6 | Обновление MSVC 2015, версия 3 | Базель 0.15.0 | 7 | 9 |
| tensorflow_gpu-1.10.0 | 3.5-3.6 | Обновление MSVC 2015, версия 3 | Make v3.6.3 | 7 | 9 |
| tensorflow_gpu-1.9.0 | 3.5-3.6 | Обновление MSVC 2015, версия 3 | Make v3.6.3 | 7 | 9 |
| tensorflow_gpu-1.8.0 | 3.5-3.6 | Обновление MSVC 2015, версия 3 | Make v3.6.3 | 7 | 9 |
| tensorflow_gpu-1.7.0 | 3.5-3.6 | Обновление MSVC 2015, версия 3 | Make v3.6.3 | 7 | 9 |
| tensorflow_gpu-1.6.0 | 3.5-3.6 | Обновление MSVC 2015, версия 3 | Make v3.6.3 | 7 | 9 |
| tensorflow_gpu-1.5.0 | 3.5-3.6 | Обновление MSVC 2015, версия 3 | Make v3.6.3 | 7 | 9 |
| tensorflow_gpu-1.4.0 | 3.5-3.6 | Обновление MSVC 2015, версия 3 | Make v3.6.3 | 6 | 8 |
| tensorflow_gpu-1.3.0 | 3.5-3.6 | Обновление MSVC 2015, версия 3 | Make v3.6.3 | 6 | 8 |
| tensorflow_gpu-1.2.0 | 3.5-3.6 | Обновление MSVC 2015, версия 3 | Make v3.6.3 | 5.1 | 8 |
| tensorflow_gpu-1.1.0 | 3.5 | Обновление MSVC 2015, версия 3 | Make v3.6.3 | 5.1 | 8 |
| tensorflow_gpu-1.0.0 | 3.5 | Обновление MSVC 2015, версия 3 | Make v3.6.3 | 5.1 | 8 |