Сбой сборки Tensorflow 2.0 из исходного кода в Windows "Не удалось найти bazel-bin" - PullRequest
0 голосов
/ 11 октября 2019

Я пытаюсь собрать Tensorflow 2.0 в Windows, чтобы использовать поддержку AVX2, поскольку пакет по умолчанию из «pip install tenorflow» не включает поддержку AVX2. Я следую этому руководству: https://www.tensorflow.org/install/source_windows

После множества неудачных сборок я, наконец, добился успеха в сборке после установки переменных среды в Visual Studio 2017. Последняя команда запускалась из c: \ tmp\ tenorflow (на выполнение которого ушло 9 часов) было:

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

Следующий шаг в инструкциях " Сборка пакета " говорит о запуске

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

Если я делаю это напрямую (из c: \ tmp \ tenorflow), я получаю ошибку «Система не может найти указанный путь».

I тогдапосмотрел окончательные сообщения из сборки:

C: /users/john.doe/_bazel_john.doe/3ttaaxce/execroot/org_tensorflow/bazel-out/x64_windows-opt/bin/tensorflow/tools/pip_package/build_pip_package.exe

ИНФОРМАЦИЯ: Истекшее время: 32810,307 с, критический путь: 25586,71 с

ИНФОРМАЦИЯ: 8885 процессов: 8885 локальных.

ИНФОРМАЦИЯ: Сборка завершена успешно, всего 11312 действий

Отсюда похоже, что build_pip_package.exe находится в другом месте, поэтому я запустил

C:/users/john.doe/_bazel_john.doe/3ttaaxce/execroot/org_tensorflow/bazel-out/x64_windows-opt/bin/tensorflow/tools/pip_package/build_pip_package C:/tmp/tensorflow_pkg

но это привело к ошибке:

Пт 11 октября 08:30:40 PDT 2019: === Подготовка источников в dir: /tmp/tmp.B207TraE5w

Не удалось найти мусорное ведро. Вы запускали из корня дерева сборки?

Кто-нибудь знает, что может быть не так?

Ответы [ 2 ]

0 голосов
/ 14 ноября 2019

Я решил проблему, перекомпилировав исходный код в новый каталог c: \ tmp2 \ tenorflow. На этот раз build_pip_package.exe был в правильном месте, и я смог успешно собрать и установить пакет pip.

0 голосов
/ 16 октября 2019

Базель создает ссылку из bazel-bin на выходной каталог. Это поведение регулируется параметром --symlink_prefix. Попробуйте запустить bazel с --announce_rc и посмотреть, установлена ​​ли эта опция где-то - это может быть создание ссылки с другим именем или не создание ее вообще.

Кроме того, любая программа в программе tenorflow предполагает, что вывод будетбыть в bazel-bin ошибается. Для нодовых проектов мы рекомендуем --symlink_prefix=dist/, поэтому выходные данные в вашем проекте идут в dist/bin.

...