Tensorflow: Поддержка Windows и документация

Созданный на 9 нояб. 2015  ·  180Комментарии  ·  Источник: tensorflow/tensorflow

Я был рад увидеть тензорный поток, но, как и многие другие пользователи Windows, было бы неплохо увидеть эту поддержку. Будете ли вы принимать вклады в перенос Windows?

Тем временем Microsoft недавно выпустила свой набор инструментов для глубокого обучения, который масштабируется на нескольких машинах с графическими процессорами как для Linux, так и для Windows. https://github.com/Microsoft/CNTK

Самый полезный комментарий

Спасибо за интерес к TensorFlow в Windows! Мы делаем успехи по двум основным направлениям:

  1. Адаптация файлов Bazel BUILD TensorFlow для работы в Windows. Возможно, вы видели несколько недавних запросов на вытягивание от @meteorcloudy в этом направлении (например, # 4449), и наш конечный план состоит в том, чтобы обеспечить полную поддержку построения TensorFlow с использованием Bazel в Windows.
  2. Изменение среды выполнения TensorFlow для сборки с помощью компилятора Visual C++ 2015. Я работал над этим, и разница между HEAD и моей рабочей веткой с каждым днем ​​становится все меньше. На данный момент я использую CMake для сборки TensorFlow с помощью Visual Studio/MSBuild, но я планирую переключиться на Bazel, когда файлы BUILD будут работать на разных платформах.

Мы ожидаем вскоре сделать объявление с бинарным пакетом PIP и инструкциями по сборке TensorFlow в Windows. Тем временем мы будем обновлять этот выпуск, когда у нас будут новости, чтобы поделиться.


Отвечая на конкретные вопросы от @kestrelm :

  1. В настоящее время я использую CMake для создания решения VS с несколькими проектами, и мы объединим его как часть пункта (2) выше.
  2. По крайней мере, мы можем сгенерировать DLL-расширение Python, содержащую среду выполнения и все ядра (эквивалент tensorflow/python/_pywrap_tensorflow.so ), и предоставить инструкции для создания статически связанного двоичного файла C++ (эквивалент tensorflow/cc/tutorials/example_trainer.cc ).
  3. Мы можем легко сделать версию среды выполнения с этими функциями (что-то вроде Android-подмножества ядер, связанных с выводом, в DLL за C API), хотя, вероятно, это не будет частью первоначального выпуска. Однако можно будет изменить файлы сборки, чтобы создать цель с этими свойствами, и я буду рад помочь любому, кто пытается это сделать.

Все 180 Комментарий

Я думаю, это отличное предложение!

То же самое, я был немного разочарован, не увидев упоминания о Windows на странице загрузки и установки.

Кто-нибудь знает, каковы основные несовместимости / приспособления? Это в основном проблемы с путями к файлам и т. д.?

Он построен с помощью Bazel, который поддерживает только linux/mac, но хорошая новость заключается в том, что поддержка bazel в Windows, похоже, исчезнет к концу этого года.

:недурно:

Вы уже можете использовать TensorFlow на компьютере с Windows с помощью Docker.
Подробности в этой теме.
https://github.com/tensorflow/tensorflow/issues/42

Я хотел бы использовать TensorFlow в Windows без Docker, чтобы использовать вычисления GPU. Использование Docker в данном случае — это использование не Windows-контейнера, а виртуальной машины Linux на Hyper-V или VirtualBox, поэтому GPU не будет пропущен.

:+1:

Google, дайте нам поддержку Windows, пожалуйста!

+1/0.0

+1

Да, поддержка Windows была бы очень кстати.

+1
+1
+1

Да, пожалуйста

Хотелось бы использовать TensorFlow в Windows (собственно, а не в виртуальной машине).

Я посмотрю, может ли Continuum предоставить пакет conda для tensorflow.

Судя по использованию bazel в документации, я предполагаю, что это вопрос ожидания поддержки bazel для Windows. Есть ли что-то конкретное в Tensorflow, что нужно решить для поддержки Windows, или это просто базель?

У меня есть один вопрос: когда на самом деле появится поддержка Bazel в Windows. Глядя на репозиторий Bazel, он говорит, что они планируют поддерживать Android в Windows, но я не видел никаких упоминаний о создании (как я полагаю) собственных пакетов.

Вот ошибка, которую мы используем для отслеживания поддержки Bazel для Windows: https://github.com/bazelbuild/bazel/issues/276. Месяц назад @dslomov смог заставить Bazel загружать себя в Windows . Планируется завершить поддержку Windows к концу этого года.

@davidzchen На самом деле я работал с этим репозиторием ранее сегодня днем, чтобы попробовать и без особой удачи, я мог бы поиграть с ним еще немного, чтобы посмотреть, смогу ли я заставить его успешно загрузить себя.

Должна быть доступна нативная поддержка +1 в Windows.

+1

или, может быть, мы могли бы перенести его на более разумную систему сборки. возможно cmake.

@ahmadia у вас есть какие-нибудь советы о том, как установить tensorflow с помощью conda?

Прямо сейчас мы находимся в той же лодке, что и все остальные, потому что нет переноса TensorFlow на Windows. Если кто-то может собрать порт Windows, я буду рад помочь с бинарной сборкой/развертыванием. Кто-то уже собрал рецепт для OS X/Linux, доступный с conda install -c memex tensorflow .

+1 за это

+1

+1
также поддержка cmake была бы отличной

Я собрал здесь статью с инструкциями и снимками экрана, чтобы заставить TensorFlow работать на компьютере с Windows с помощью Docker, используя советы из выпуска 42 , если это кому-то полезно.

Хотя я до сих пор не уверен, как я могу использовать преимущества своего графического процессора, если TensorFlow работает на виртуальной машине на моей машине с Windows.

+1 родная поддержка Windows была бы очень полезна

+1

Я хочу иметь версию TensorFlow для Windows 7, если у вас есть, пришлите мне письмо.
Мой адрес электронной почты: [email protected].
Спасибо!

+1

Поддержка Windows требует значительных усилий. Может быть, поддержка Windows только для действительно стандартного компилятора (gcc / tdm-gcc / mingwpy) и на современном Python (3.4?) была бы гораздо более легкой целью?

Возможно, использование внешнего интерфейса Clang с VC++ CodeGen было бы самым быстрым путем для получения рабочих сборок Windows -> Clang с Microsoft CodeGen в VS 2015 Update 1 . Проект был разработан, чтобы предоставить последовательно работающий набор инструментов для кросс-платформенных сборок кода, в первую очередь предназначенных для Windows, тем не менее сценарий, в котором код *nix компилируется для Windows, может быть не менее интересным. Команда MSFT C++ заявляет, что код, который они пишут, возвращается в проект LLVM, поэтому он должен обеспечить быструю и совместную работу над получением хорошей межплатформенной поддержки.

+1

+1

+1

+1

+1

+1

+1

+1 . Насколько я помню, это первый пакет Python, который не работает в Windows. Мне это кажется странным, поскольку я понимаю, что драйверы NVIDIA всегда были лучше для Windows, чем для Linux, и у меня есть GTX 970, которая в последнее время мне надоела.

Я перенес большую часть tensorflow С++ в сборку Windows с использованием vc 2013. До сих пор большая часть кода, компилируемого и связанного, использует мой собственный исходный файл. самая большая проблема для меня заключается в том, что она использует статическую переменную для регистрации оператора и ядра. Я создаю их как статическую библиотеку, и ссылка приложения на нее пропускает эту статическую переменную. Я должен использовать stub.cpp в папке приложения, чтобы включить используемые операции и ядра.

@ yuanhua8 есть ли шанс, что вы отправите свои изменения в репозиторий github? Кстати, я решил проблему статической регистрации в caffe, используя dumpin для создания заголовка, который вызывает симпатию символа. Подробнее см. https://github.com/BVLC/caffe/pull/2816 и https://github.com/willyd/caffe/tree/msvc .

Надеюсь, что родной Tensorflow для Windows скоро будет готов, возможно, придется подождать, пока bazel для Windows не станет стабильным, я очень рад попробовать курс Deep Learning от Google и Udacity!

К сведению, поддержка Bazel в Windows в настоящее время является одним из наших главных приоритетов . Следите за обновлениями.

То же самое здесь, я начал курс глубокого обучения, предлагаемый Google, и здесь я застрял, потому что я использую Windows.
Когда следует ожидать поддержку Windows?

Я заметил, что многие люди сталкиваются с проблемой запуска этого под Windows, поэтому я быстро написал о том, как настроить его под Windows с помощью Vagrant и Docker:

https://medium.com/@Rapchik/running-google-s-deep-learning-course-material-under-windows-82d468b6d5be

@umarniz Спасибо за руководство. Тем не менее, я думаю, что большинство людей здесь ожидают увидеть TensorFlow, работающий изначально в Windows из-за поддержки графического процессора . К сожалению, насколько я знаю, это не работает ни с Docker, ни с любым другим решением, использующим виртуализацию...

@SeveQ Я полностью согласен, и лично я предпочитаю использовать Linux для всех своих экспериментов с машинным обучением из-за простоты настройки нескольких уникальных сред программирования. Это руководство предназначено для запуска материала курса от Google, поскольку обучающие наборы и примеры, которые у них есть, предназначены для начинающих с небольшими наборами данных, которые также должны работать в среде только с процессором.

@umarniz Хорошо, я не хотел принижать твои усилия. Точно нет! Вы здорово написали это! Спасибо еще раз!

Кстати, упомянем только об этом... пример Deep MNIST, который, по общему признанию, уже не так прост, занимает несколько часов на моем процессоре, тогда как мой GPU (GTX 980Ti) прогоняет его максимум за несколько секунд. На родной Ubuntu то есть. Я установил один на USB-флешку. Это работает, однако двойная загрузка может быть довольно громоздкой и сильно демотивирующим фактором. Тем более, что Windows в спящем режиме в системе UEFI может быть довольно придирчивой, когда дело доходит до доступа к данным на разделах NTFS из Linux...

Конечно, я полностью согласен с тем, что Linux (Ubuntu) — лучшая ОС для задач машинного обучения, потому что именно ее использует большинство людей, и не без причины. Но у него все еще есть свои недостатки для таких энтузиастов, как я, которые не только зарабатывают на жизнь машинным обучением, но и являются любителями, и у которых параллельно есть другие хобби, основанные на Windows... например, игры.

Я предполагаю, что это некоторые проблемы первого мира, которые я бы очень хотел увидеть решенными.

@SeveQ Я тоже так не считал :)

Я согласен с тем, что двойная загрузка - это боль, мне пришлось полностью перейти на Ubuntu на несколько месяцев, иначе переключение становится довольно громоздким, но мне нравится мощь, которую оболочка bash дает для работы с большими наборами данных.

Я думаю, я посмотрю, что я могу сделать, чтобы помочь добавить поддержку Windows для TensorFlow самостоятельно.

+1

@umarniz Звучит хорошо. У меня нет сейчас времени, чтобы также посвятить себя этому, к сожалению. Другие приоритеты, такие как выпускной... Поддержка Windows для TensorFlow была бы большим подспорьем в этом вопросе. Я заканчиваю магистратуру, инженер-системотехник, специализируюсь, кто бы мог подумать, на машинном обучении...

любое обновление по этому поводу

Я делаю порт кода C++ в нашу внутреннюю ветку. Извините, не могу опубликовать обратно, так как это зависит от нашей ветки кода. Найдите пробел между С++ и Python. Но у меня основной движок работает в нашей среде Windows/Vc.
Н у

отправлено из моего Айфона

30 января 2016 г., в 2:46, даташиноби-уведомления@github.com написал:

любое обновление по этому поводу


Ответьте на это письмо напрямую или просмотрите его на GitHub.

Для всех тех, кто хочет использовать Tensorflow и может отказаться от поддержки графического процессора , вот запись в блоге об установке Tensorflow с поддержкой ноутбуков Jupyter для Windows с Docker.

Обновление поддержки Windows для Bazel: первоначальный набор исправлений для обеспечения работы Bazel в Windows был объединен (см. bazelbuild/bazel#276), и @dslomov смог заставить Bazel загружать себя в Windows .

Мы планируем экспериментальную поддержку Windows в Bazel 0.3 . Если вы хотите следить за нашим прогрессом, см. проблемы с тегом «Windows» в системе отслеживания проблем Bazel.

C:\Users\Desktop>docker run -it b.gcr.io/tensorflow/tensorflow

Не удалось найти изображение 'b.gcr.io/tensorflow/t ensorflow:latest ' локально

docker: ответ об ошибке от демона: невозможно пропинговать конечную точку реестра https://bg
cr.io/v0/
Попытка ping v2 не удалась с ошибкой: Получить https://b.gcr.io/v2/ : набрать tcp 64.233.188
.82:443: тайм-аут ввода/вывода

Есть новости о возможности использования TensorFlow в Windows без Docker?
Насколько сложно было бы предложить процесс сборки CMake, который работает как для Linux, так и для Windows (создание проекта MVS)?

Я написал инструкцию по установке tensorflow на виртуальную машину CentOS. Если у вас возникли проблемы с работой с Docker, это может быть вашим решением.

Ребята, если вы устанавливаете bash в Windows, используя новый предварительный просмотр для разработчиков, tensorflow действительно устанавливается и работает. Таким образом, вы можете использовать его для запуска в Windows без использования докера. (И это, вероятно, улучшит bash для Windows, потому что его использует больше людей.)

Это фантастично.
Использование bash в Windows было моей самой большой надеждой на использование tensorflow в Windows.

Самый большой вопрос: можно ли использовать драйверы графического процессора?

Это основная причина, по которой люди просят нативную установку тензорного потока в Windows. В противном случае поддержка процессора просто прекрасна через докер или виртуальную машину Linux.

Я ничего об этом не знаю, но мы должны спросить об этом команду Windows.
Люди получили программы с графическим интерфейсом для работы через окна, но они используют процессор, а не
GPU, поэтому я думаю, что в настоящее время у него нет доступа
19 апреля 2016 г., 17:37, «hayder78» [email protected] написал:

Это фантастично.
Использование bash в Windows было моей самой большой надеждой на использование tensorflow в Windows.

Самый большой вопрос: можно ли использовать драйверы графического процессора?

Это основная причина, по которой люди просят нативную установку tensorflow.
в окнах. В противном случае поддержка процессора просто прекрасна через докер или Linux.
виртуальная машина


Вы получаете это, потому что вы прокомментировали.
Ответьте на это письмо напрямую или просмотрите его на GitHub
https://github.com/tensorflow/tensorflow/issues/17#issuecomment-212156142

Да. Я читал, что программы с графическим интерфейсом, запускаемые через bash в Windows, будут использовать общий драйвер графического процессора. Это означает, что не используются драйверы nvidia.

Будем молиться, чтобы Google работал над тензорным потоком в Windows под капотом.

Я думаю, что bash для Windows нужно время, чтобы стать достаточно зрелым и свободным от ошибок. В то же время, вероятно, лучшим выбором будут ВМ и докер.

Сейчас делаю выбор между tensorflow и CNTK.

+1 за встроенную поддержку Windows, включая GPU.

Ссылка для отслеживания проблем Windows Bazel, предоставленная @davidzchen , не работает, правильная — https://github.com/bazelbuild/bazel/labels/category%3A%20windows .

(Я знаю, что все надеются на встроенную поддержку Windows + GPU, я тоже жду, но нам нужно подождать, пока Bazel для Windows станет стабильной, помощь в тестировании и участие в Bazel, вероятно, ускорит процесс)

еще один +1 для окон с поддержкой графического процессора. Хотя TF казался лучшим вариантом, в результате мне пришлось переключиться на Theano из-за отсутствия поддержки графического процессора в Windows. Было бы неплохо, если бы в дорожной карте TF было указано, будет ли поддержка доступна в будущих выпусках, так как это поможет многим исследователям принять решение.

+1

+1

Одна интересная новость: @shanselman написал в блоге сообщение о запуске TensorFlow на Bash для Windows.

Мы по-прежнему намерены обеспечить первоклассную поддержку Windows, но предприимчивые пользователи могут найти это хорошим способом начать работу в то же время.

@mrry Привет, Дерек Мюррей,
Я рад услышать от вас - как от инженера-программиста Google - что вы намерены предоставить встроенную поддержку Windows для тензорного потока. Вы являетесь частью команды разработчиков tensorflow в Google?

По крайней мере, у меня теперь есть надежда.

Есть приблизительная оценка, когда будет бета-версия?

Еще +1, очень интересно посмотреть, как это произойдет. Если и когда Bazel действительно запустится в Windows, будет ли TF компилироваться на этой платформе? Или есть и другие проблемы с переносимостью, например, вызовы сети, файловой системы?

+1

Ребята, не могли бы вы использовать реакции GitHub вместо того, чтобы писать «+1» в новом сообщении? Сейчас он производит много спама для людей, которые подписались на обновления в этой теме. Спасибо!

+1 за реакцию GitHub!

Что ж, теперь кажется, что bazel большую часть времени работает в Windows, за исключением нескольких ошибок в именах (недопустимые символы или очень длинные команды). Определенно есть проблемы с получением рабочего тензорного потока Windows, кроме простого рабочего базела. Все ошибки, которые я получил до сих пор, относятся к типу:
ERROR: C:/tensorflow-orig/tensorflow/contrib/metrics/BUILD:16:1: in linkshared attribute of cc_binary rule //tensorflow/contrib/metrics:python/ops/_set_ops.so: 'linkshared' used in non-shared library. Since this rule was created by the macro 'tf_custom_op_library', the error might have been caused by the macro implementation in C:/tensorflow-orig/tensorflow/tensorflow.bzl:599:31.
Поэтому я предполагаю, что правила сборки необходимо сначала обновить для Windows.

Официальная дорожная карта tensorflow:
https://github.com/tensorflow/tensorflow/blob/master/tensorflow/g3doc/resources/roadmap.md

Поддержка Windows является частью плана действий на ближайшее будущее, рассчитанного на следующие несколько месяцев!

@Sabrewarrior Я пытался создать тензорный поток для Windows с помощью bazel, но файл конфигурации просто выдает некоторые ошибки. Мне интересно, изменили ли вы или добавили некоторые части этого файла для поддержки в Windows

@Fhrozen https://github.com/Sabrewarrior/tensorflow/blob/test/tf_win_env.txt
Это мои установленные пакеты, когда я запускал configure без каких-либо изменений. Я запускаю это на msys2 с python 2.7 на компьютере с Windows 10.

@Sabrewarrior спасибо за ответ. Я проверил, были ли пробелы в имени папки моей проблемой.
Теперь я получил эту ошибку в версии cuda.

`Укажите, какой gcc nvcc должен использовать в качестве основного компилятора. [По умолчанию /mingw64/bin/gcc]:
Укажите версию Cuda SDK, которую вы хотите использовать, например 7.0. [Оставьте пустым, чтобы использовать систему по умолчанию]: 7.5
Укажите место, где установлен инструментарий CUDA 7.5. Обратитесь к README.md для более подробной информации. [По умолчанию /usr/local/cuda]: C:/CUDA/v7.5
Пожалуйста, укажите версию Cudnn, которую вы хотите использовать. [Оставьте пустым, чтобы использовать систему по умолчанию]: 4.0.7
Укажите место, где установлена ​​библиотека cuDNN 4.0.7. Обратитесь к README.md для более подробной информации. [По умолчанию C:/CUDA/v7.5]: cuda/
Укажите список вычислительных возможностей Cuda, разделенных запятыми, которые вы хотите использовать.
Вы можете узнать вычислительные возможности вашего устройства по адресу: https://developer.nvidia.com/cuda-gpus.
Обратите внимание, что каждая дополнительная вычислительная мощность значительно увеличивает время сборки и размер двоичного файла.

Настройка Cuda включает
Настройка Cuda
ln: создать simbólico '../../../ Third_Party/gpus/cuda/extras/visual_studio_integration/MSBuildExtensions/CUDA': Нет такого файла или каталога
ln: создать симбол '../../../ Third_Party/gpus/cuda/extras/visual_studio_integration/MSBuildExtensions/7.5.props': Нет такого файла или каталога
ln: создать simbólico '../../../ Third_Party/gpus/cuda/extras/visual_studio_integration/MSBuildExtensions/CUDA': Нет такого файла или каталога
ln: создать симбол '../../../ Third_Party/gpus/cuda/extras/visual_studio_integration/MSBuildExtensions/7.5.targets': Нет такого файла или каталога
ln: создать simbólico '../../../ Third_Party/gpus/cuda/extras/visual_studio_integration/MSBuildExtensions/CUDA': Нет такого файла или каталога
ln: создать симбол '../../../ Third_Party/gpus/cuda/extras/visual_studio_integration/MSBuildExtensions/7.5.xml': Нет такого файла или каталога
xargs: bash: закончить со статусом 255; прерывание
`

@Fhrozen AFAIK , вы не можете использовать gcc в качестве компилятора для CUDA в Windows. CUDA в Windows поддерживает только компилятор Visual C++ ( см. здесь ).

+1

ОПЯТЬ ТАКИ! ПОЖАЛУЙСТА, НЕ ДЕЛАЙТЕ БЕСПОЛЕЗНЫМИ _+1_ КОММЕНТАРИИ! ВМЕСТО ИСПОЛЬЗУЙТЕ РЕАКЦИИ GITHUB!

+1

стоп +1!!!

Повторяю, остановите +1 ради $%{^¥! Любой, кто комментирует +1 после этого, - идиот! :-P Используйте реакции Github, черт возьми!

Кто-нибудь может дать мне статус модератора? Я хотел бы очистить эту проблему от бесполезных комментариев +1.

Привет, команда. Я пытаюсь понять, какую работу нужно проделать, чтобы иметь возможность использовать TensorFlow в Windows (я думаю, 10) с поддержкой графического процессора через CUDA. Из того, что я знаю до сих пор, это исключает Docker, потому что Docker не может получить доступ к графическому процессору хоста, а это означает, что мы должны использовать cl.exe Visual Studio (который использует Bazel для Windows).

Из этого только Bazel для Windows нужно продвигать? Это единственная неудовлетворенная зависимость здесь? Рада быть поправленной по любому поводу.

Если я хочу включить Bash в Windows, мне нужно проверить подсистему Windows для Linux (бета-версия) , верно? Но я не могу найти это меню в диалоговом окне «Возможности Windows». Я следую инструкциям здесь и здесь .
Нужно ли устанавливать флажок Hyper-V в диалоговом окне «Возможности Windows»?
Я также уже включил режим разработчика в настройках.

Похоже, мне нужно отказаться от этих функций Windows beta bash и неохотно использовать Docker?

@ off99555 У вас Windows 10 должна быть установлена ​​последняя предварительная версия (Fast Ring). Проверьте свою сборку, если она ниже ~14000, то у вас еще нет этой функции. (Это обновление будет GA 2 августа)

Привет,

Сможем ли мы для поддержки Tensorflow Windows создавать двоичные файлы Windows, которые не являются двоичными файлами msys2? Это имеет смысл, поскольку можно было бы выполнить фактическое развертывание на большинстве пользовательских компьютеров.

Если это невозможно, можем ли мы просто развернуть урезанную версию прохода предсказания/прямого прохода библиотеки для этой цели? Я могу прекрасно тренироваться в Linux, но для фактического процесса прогнозирования мне бы хотелось иметь возможность развертывания на обычном компьютере с Windows без msys2. Это есть в дорожной карте?

Если вы посмотрите, что делает CNTK:
https://github.com/Microsoft/CNTK/wiki/Native-Evaluation-Interface

У них есть гораздо более простой способ оценки/прогнозирования с использованием урезанной DLL. Можем ли мы иметь что-то подобное в Tensorflow, а также для Windows (и других платформ, я могу себе представить, это будет очень полезно).

Спасибо!

Я не понимаю, почему вы добавили поддержку Mac OS, а не Windows. Вы не можете использовать обычный графический процессор CUDA на большинстве компьютеров Mac. Это бесполезная платформа для обучения глубокому обучению.

Может ли команда рассказать нам, пожалуйста, о оценках поддержки родной Windows?

@mrry активно работает над этим и может предоставить больше обновлений по этому вопросу, если у вас есть конкретные вопросы.

@aselle Спасибо за полезное обновление, очень признателен!

@mrry Привет, как будут разворачиваться особенности реализации Windows?

1) Будет ли у нас (в идеале) решение VS2015, которое мы сможем создать с помощью наших приложений/инструментов? Метод cmake, который генерирует решение VS, тоже работает.

2) Это будет статически связанная или динамически связанная библиотека?

3) Будет ли облегченный модуль/библиотека прямого прохода/оценки, который мы можем использовать для развертывания с нашими инструментами/приложениями?

Текущий ресурс, который я смог найти относительно развертывания tensorflow с автономным приложением C++, находится здесь:
https://medium.com/jim-fleming/loading-a-tensorflow-graph-with-the-c-api-4caaff88463f#.7ejb8h7zk

Меня больше всего беспокоит то, что здесь сказано:
«Сборка огромна, даже для этого простого примера требуется 103 МБ. Большая часть этого предназначена для TensorFlow, поддержки CUDA и многочисленных зависимостей, которые мы никогда не используем. Это особенно верно, поскольку C++ API не поддерживает большую функциональность прямо сейчас, поскольку большая часть API TensorFlow предназначена только для Python. Вероятно, есть лучший способ подключения к TensorFlow (например, общая библиотека), но я еще не заработал».

Если есть лучший способ обойти связывание большой статической библиотеки, это будет здорово, особенно для целей прямого прохода/оценки, которые на самом деле не нуждаются в поддержке графического процессора.

Спасибо!

@mrry Как другие могут участвовать в этом? Как мы можем помочь запустить TensorFlow в Windows как можно скорее? По крайней мере, мы можем помочь с тестированием и отчетами об ошибках.

+1

Есть ли обновления на окнах? что нужно, чтобы он работал изначально, имея доступный графический процессор?

Нужна поддержка Windows!!!!
Может ли команда рассказать нам, пожалуйста, о оценках поддержки родной Windows?

Нет окон? Зачем? по крайней мере версии только для процессора?

Вот краткое изложение того, что, по моему мнению, происходит в этой проблеме поддержки Windows:

Tensorflow требует, чтобы Bazel собирался из исходного кода. Если я не ошибаюсь, Bazel — это система сборки, подобная GNU Make, но не компилятор.

Основываясь на том, что я увидел, бегло просматривая код, исходный код самого Tensorflow использует в основном стандартную библиотеку C++ для таких вещей, как многопоточность, поэтому не должно быть проблем с компиляцией в Windows, основные сторонние библиотеки, которые он использует, все имеют поддержку Windows.

Поэтому я думаю, что основная проблема заключается в отсутствии метода сборки для Windows, а не в самом исходном коде. Есть работы по использованию CMake для сборки вместо Bazel, но они еще не завершены. Если кто-то сможет перевести правила сборки Bazel на CMake, я думаю, мы сможем собрать его в Windows.

До стабильной поддержки Bazel для Windows еще далеко .

Пожалуйста, поправьте меня, если я ошибся здесь.

@eiva Если вам нужна поддержка только ЦП, вы можете запустить Tensorflow на виртуальной машине. Я запускал его на Ubuntu 14 на хосте с Windows 10 без проблем.

@rongjiecomputer Честно говоря, мне интересно, почему они вообще использовали Bazel...

@eiva Также есть готовый контейнер Docker, который вы можете использовать на хосте Windows. Работает из коробки. Просто не так уж весело работать с tensorflow без поддержки GPU. Для интересных вещей требуется как минимум один графический процессор. Конечно, вы можете запускать базовые вещи, такие как линейная или логистическая регрессия, без графического процессора. Но это просто не длинный костюм tensorflow. Он создан для задач глубокого обучения, для которых в основном требуется графический процессор.

@marklit Я уже использую его таким образом, но большая часть моего приложения работает в Windows, и большая часть разработки ведется в Windows ... Нелегко переключать ОС каждый раз, когда я делаю что-то с разными частями системы ...

@Лу Ронг
Ваше предположение верно!
https://www.quora.com/Why-did-Google-decide-to-use-Bazel-with-TensorFlow/answer/Derek-Murray-3

12 сентября 2016 г., 12:17, «Евгений Иванченко» [email protected]
написал:

@marklit https://github.com/marklit я уже использую его таким образом, но большинство
моего приложения, работающего в Windows, и большая часть разработки продолжается
windows ... Нелегко переключать ОС каждый раз, когда я что-то делаю с
разные части системы...


Вы получаете это, потому что подписаны на эту тему.
Ответьте на это письмо напрямую, просмотрите его на GitHub
https://github.com/tensorflow/tensorflow/issues/17#issuecomment-246239719 ,
или заглушить тему
https://github.com/notifications/unsubscribe-auth/AEBIBhhA-t1MrFnddm5k-wER0KAm_p30ks5qpNJTgaJpZM4GexU4
.

Спасибо за интерес к TensorFlow в Windows! Мы делаем успехи по двум основным направлениям:

  1. Адаптация файлов Bazel BUILD TensorFlow для работы в Windows. Возможно, вы видели несколько недавних запросов на вытягивание от @meteorcloudy в этом направлении (например, # 4449), и наш конечный план состоит в том, чтобы обеспечить полную поддержку построения TensorFlow с использованием Bazel в Windows.
  2. Изменение среды выполнения TensorFlow для сборки с помощью компилятора Visual C++ 2015. Я работал над этим, и разница между HEAD и моей рабочей веткой с каждым днем ​​становится все меньше. На данный момент я использую CMake для сборки TensorFlow с помощью Visual Studio/MSBuild, но я планирую переключиться на Bazel, когда файлы BUILD будут работать на разных платформах.

Мы ожидаем вскоре сделать объявление с бинарным пакетом PIP и инструкциями по сборке TensorFlow в Windows. Тем временем мы будем обновлять этот выпуск, когда у нас будут новости, чтобы поделиться.


Отвечая на конкретные вопросы от @kestrelm :

  1. В настоящее время я использую CMake для создания решения VS с несколькими проектами, и мы объединим его как часть пункта (2) выше.
  2. По крайней мере, мы можем сгенерировать DLL-расширение Python, содержащую среду выполнения и все ядра (эквивалент tensorflow/python/_pywrap_tensorflow.so ), и предоставить инструкции для создания статически связанного двоичного файла C++ (эквивалент tensorflow/cc/tutorials/example_trainer.cc ).
  3. Мы можем легко сделать версию среды выполнения с этими функциями (что-то вроде Android-подмножества ядер, связанных с выводом, в DLL за C API), хотя, вероятно, это не будет частью первоначального выпуска. Однако можно будет изменить файлы сборки, чтобы создать цель с этими свойствами, и я буду рад помочь любому, кто пытается это сделать.

Потрясающая работа, @mrry!

Мы ожидаем вскоре сделать объявление с бинарным пакетом PIP и инструкциями по сборке TensorFlow в Windows.

Можете ли вы дать приблизительные оценки того, когда будет это объявление? Я не могу ждать!

@mrry : Дерек, серьезное обновление. Есть ли у вас бинарная версия графического процессора (БЕТА) до того, как остальная часть структуры makefile/компилятора затвердеет? По крайней мере, люди могут попробовать API Python...

Уважаемые Гуру:

Я попытался собрать tensorflow из исходного кода в Windows 10. Он сообщает, что bazel уже поддерживается в Windows, хотя может быть нестабильным. Тем не менее, я получил рабочий.
Однако, когда я попытался создать тензорный поток, возникли две проблемы: во-первых, это указывает на то, что «bazel clean --expunge_async» не удалось с проблемой разрешения. Бьюсь об заклад, это не так серьезно. Следующая проблема немного критична, так как она блокирует сборку. он сообщает:

...
ИНФОРМАЦИЯ: Найдена 1 цель...
ИНФОРМАЦИЯ: запись объяснения перестроений в «файл журнала»
ОШИБКА: отсутствует входной файл '@local_config_cuda// cuda:lib64/libcublas.so '.
ОШИБКА: C:/tensorflow/tensorflow/tools/pip_package/ BUILD:23 :1: //tensorflow/tools/pip_package :build_pip_package : отсутствует входной файл '@local_config_cuda// cuda:lib64/libcublas.so '.
Цель //tensorflow/tools/pip_package :build_pip_package не удалось собрать
ОШИБКА: C:/tensorflow/tensorflow/tools/pip_package/ BUILD: 23 : 1 1 входной файл (файлы) не существует.
ИНФОРМАЦИЯ: Истекшее время: 34,644 с, критический путь: 1,52 с.

На самом деле в процессе настройки я намеренно отключил поддержку GPU, так почему он пытается загрузить динамическую библиотеку, связанную с CUDA?

Поскольку я отключил поддержку графического процессора, библиотеки-заглушки правильно создаются с нулевым размером и с расширением файла DLL. Однако, как и в сообщении об ошибке, я не знаю, откуда возникло требование загрузки библиотек, связанных с CUDA. Я проверил несколько файлов, но до сих пор не знаю. Между тем, я также думаю, что файл плохо написан, так как он должен искать файлы DLL, а не файлы SO. Однако я до сих пор понятия не имею.

У кого-нибудь есть идеи по этой проблеме? Большое спасибо.

Как вы, возможно, заметили после слияния PR # 4778, теперь у нас есть предварительная поддержка сборки TensorFlow в Windows с использованием CMake. Он поддерживает сборку версии TensorFlow только для ЦП для использования в обучающей программе примера C++ и пакета PIP для использования Python. Дополнительные сведения и инструкции о том, как собрать TensorFlow из исходников в Windows, см. в файле readme CMake .

Это код альфа-качества, и мы ожидаем, что в этой начальной версии будут ошибки. Если вы найдете его, поднимите новую проблему GitHub для конкретной проблемы.

Теперь наше внимание смещается на получение поддержки GPU для TensorFlow в Windows и переход на общую сборку на основе Bazel для Windows и Linux. Если у вас есть другие пожелания, пожалуйста, поднимите новую проблему GitHub.

Я использовал этот готовый проект https://github.com/shishaochen/TensorFlow-0.8-Win , но он не поддерживает GPU.

@mrry Привет, Дерек, ценю твой вклад в TensorFlow.
@cesardelgadof Привет, Цезарь, спасибо за информацию.

Тем не менее, я думаю, что раньше препятствием для сборки TensorFlow на платформе Windows была недоступность bazel в Windows. Поскольку теперь он доступен, хотя может быть нестабильным, поэтому, на мой взгляд, нам лучше попытаться решить проблему заранее при сборке TensorFlow с использованием bazel.

Я лично думаю, что ребята из Google, если у них есть план поддержки нативной сборки для Windows, они, вероятно, выберут bazel. И как только официальное решение будет доступно, я думаю, люди перейдут с cmake на bazel. Итак, если есть такой день, почему мы работаем вместе, чтобы этот день наступил раньше?

Тем не менее, я попробую версию cmake, и, надеюсь, кто-то еще попробует систему сборки bazel. Вероятно, мы сможем выяснить, откуда взялась неприятная ошибка, и найти плохо написанный файл конфигурации.

Спасибо за вас всех.

@mrry Спасибо за большой вклад! Я пытался следовать вашим инструкциям. Кажется, все работает безупречно (около 45 минут), пока не произошел сбой:

Целевой объект «BeforeGenerateProjectPriFile», указанный в атрибуте BeforeTargets в «C:\Program Files (x86)\MSBuild\Microsoft\NuGet\Microsoft.NuGet.targets (186,61)», не существует в проекте и будет игнорироваться.
Готово Строительный проект "H:\PycharmProjects\tensorflow\tensorflow\contrib\cmake\build\tf_python_build_pip_package.vcxproj" (цели по умолчанию) -- FAILED.

"H:\PycharmProjects\tensorflow\tensorflow\contrib\cmake\build\tf_python_build_pip_package.vcxproj" (цель по умолчанию) (1) ->
"H:\PycharmProjects\tensorflow\tensorflow\contrib\cmake\build\pywrap_tensorflow.vcxproj" (цель по умолчанию) (3) ->
"H:\PycharmProjects\tensorflow\tensorflow\contrib\cmake\build\tf_core_cpu.vcxproj" (цель по умолчанию) (4) ->
"H:\PycharmProjects\tensorflow\tensorflow\contrib\cmake\build\tf_core_framework.vcxproj" (цель по умолчанию) (5) ->
(цель CustomBuild) ->
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets(171,5): ошибка MSB6006: "cmd.exe" завершился с кодом 1. [H:\PycharmProjects \т
ensorflow\tensorflow\contrib\cmake\build\tf_core_framework.vcxproj]

30 Warning(s)
1 Error(s)

@laudney Спасибо, что попробовали, и мне жаль видеть, что вы получаете сообщение об ошибке! Так как у этой проблемы много подписчиков, я создал проблему #4798, чтобы отслеживать решение этой проблемы, поэтому давайте продолжим обсуждение там.

@mingyr Мы надеемся, что TensorFlow будет построен на Windows с помощью Bazel как можно скорее. @meteorcloudy проделал отличную работу, чтобы это произошло, и он только что отправил PR # 4796, который позволяет Bazel создавать //tensorflow/cc:tutorials_example_trainer на Windows. Мы постараемся объединить это в ближайшее время.

@mrry Спасибо за # 4798 , теперь он собирается нормально, также протестировал установку python whl и пока никаких проблем не обнаружено.

Надеюсь скоро увидеть тензорный поток в conda.

Используйте Tensorflow в виртуализированных средах, поскольку Docker/VirtualBox — очень плохое решение. Tensorflow должен работать в Windows изначально. (А так как большая часть кода написана на Python, не должно быть проблем с созданием дистрибутива для Windows.)

Всем привет! Как уже упоминал @mrry , я работаю над сборкой TensorFlow Windows с Bazel. После слияния PR #4796 и PR #4874 обучающий пример C++ теперь строится на Windows с Bazel 0.3.2 !

Вот краткая инструкция о том, как собрать TF с помощью Bazel в Windows:

  • Установите Bazel на Windows ( инструкция по установке )
  • Настройте среду, необходимую Bazel для сборки C++ с помощью MSVC.
  • Клонируйте репозиторий TF, запустите ./configure в MSYS
  • Выполнить bazel build -c opt --cpu=x64_windows_msvc --host_cpu=x64_windows_msvc //tensorflow/cc:tutorials_example_trainer --verbose_failures

Для удобства вы можете поместить параметры сборки в ~/.bazelrc , у меня так:

build -c opt
build --cpu=x64_windows_msvc --host_cpu=x64_windows_msvc
build --copt="/w"                  # Suppress some warning messages
build --experimental_ui            # Enable a nice UI 

Известная проблема заключается в том, что скрипт- оболочка Bazel MSVC не поддерживает python3 в Bazel 0.3.2, но это уже исправлено на странице https://github.com/bazelbuild/bazel/commit/ce5c33dd7e96aff0cf1eb993edd41a5fe8c423f2. Вы можете решить эту проблему, установив BAZEL_PYTHON в двоичный файл Python 2.7 или собрав Bazel из HEAD.

Сборка обучающего примера C++ с помощью Bazel на моем компьютере (Windows 7, ЦП 2,9 ГГц, 64 ГБ ОЗУ) занимает около 20 минут, инкрементная сборка после изменения некоторого исходного файла (например, array_ops.cc ) занимает около 1 минуты.

Я также добился определенного прогресса в создании пакета python PIP для Windows с помощью Bazel, я отправлю PR как можно скорее.

Пожалуйста, попробуйте собрать TensorFlow с Bazel в Windows и расскажите нам, что мы можем улучшить!

@meteorcloudy , привет, Юн:
Тренер примеров C++ должен быть создан с помощью предварительно созданного двоичного файла bazel, установленного в Windows, или я могу синхронизироваться с последней версией git bazel и использовать специально созданный bazel?

На самом деле я выбираю второй путь, использую клиентскую сборку bazel, однако она жалуется на следующее:

ОШИБКА: C:/tensorflow/tensorflow/core/ BUILD: 108 : 1: вывод «tensorflow/core/example/example.pb.h» не создан.
ОШИБКА: C:/tensorflow/tensorflow/core/ BUILD: 108 : 1: вывод «tensorflow/core/example/example_parser_configuration.pb.h» не создан.
ОШИБКА: C:/tensorflow/tensorflow/core/ BUILD: 108 : 1: вывод «tensorflow/core/example/example.pb.h» не создан.
ОШИБКА: C:/tensorflow/tensorflow/core/ BUILD: 108 : 1: вывод «tensorflow/core/example/feature.pb.h» не создан.
......

Процедуры для сборки я взял:
$ cd c:/tensorflow
$ export JAVA_HOME="$(ls -d C:/Program\ Files/Java/jdk* | sort | tail -n 1)"
$ экспорт BAZEL_SH=c:/tools/msys64/usr/bin/bash.exe
$ export BAZEL_VS="C:/Program Files (x86)/Microsoft Visual Studio 14.0"
$ экспорт BAZEL_PYTHON=C:/Python27/python.exe
$ export PATH=$PATH:/c/Python27:/c/Python27/Scripts:/c/tools/swigwin-3.0.10:/c/bazel/output

./настроить

bazel build -c opt --cpu=x64_windows_msvc --host_cpu=x64_windows_msvc //tensorflow/cc:tutorials_example_trainer --verbose_failures

Любое предложение?

Спасибо.

@meteorcloudy Привет Юн,

Я выполнил аналогичную процедуру, но получаю следующую ошибку:
cd C:/tools/msys64/var/tmp/Bazel/V1uFCi$H/execroot/tensorflow
bazel-out/host/bin/external/protobuf/protoc.exe --cpp_out=bazel-out/vc_14_0_x64-opt/genfiles/ --plugin=protoc-gen-grpc=bazel-out/host/bin/external/grpc /grpc_cpp_plugin.exe --grpc_out=bazel-out/vc_14_0_x64-opt/genfiles/ -I. -Iexternal/protobuf/src -Ibazel-out/vc_14_0_x64-opt/genfiles/external/protobuf/src tensorflow/core/debug/debug_service.proto: com.google.devtools.build.lib.shell.BadExitStatusException: Процесс завершен со статусом 1.
azel-out/vc_14_0_x64-opt/genfiles/external/protobuf/src: предупреждение: каталог не существует.

Я проверил папки и в protobuf нет каталога src. Также нет папки grpc в bazel_out/host/bin/external/ (поэтому нет файла grpc_cpp_plugin.exe).

за этой ошибкой следует куча ошибок, что файлы в tensorflow/core не создаются

Есть идеи, как это исправить?

Спасибо

@mingyr @karthiek Спасибо, что пытаетесь создать TF вместе с Bazel!
К сожалению, согласно http://ci.bazel.io/job/TensorFlow/ , сборка TF даже не работает в Linux с Bazel в HEAD с аналогичной ошибкой, указанной вами. Мы исправляем это, тем временем, вы можете попробовать еще раз с Bazel 0.3.2 ?

@meteorcloudy Привет Юн:

Что вы подразумеваете под «можете ли вы попробовать еще раз с Bazel 0.3.2»?

Вы имеете в виду официальный готовый двоичный файл Windows, или мы можем синхронизироваться с последней версией bazel и использовать мою сборку?

На самом деле я уже синхронизировался с последней версией bazel и использую свою сборку. Если вы укажете, что мне следует попробовать официальный готовый двоичный файл, чтобы узнать, не устранена ли проблема, пожалуйста, дайте мне знать.

BR

@mingyr Да, я имею в виду «официальный готовый двоичный файл». У меня такая же ошибка после синхронизации с HEAD.
См. https://github.com/bazelbuild/bazel/issues/1929 .

@meteorcloudy Привет, Юн

Спасибо за предложение. Я попытался использовать предварительно скомпилированный двоичный файл 0.3.2 и смог скомпилировать и сгенерировать файл tutorilas_example_trainer.exe.

@karthiek Так рада, что у тебя все получилось! Как долго это займет? Это быстрее, чем сборка CMake?

@meteorcloudy Это заняло около 15 минут (процессор Intel(R) Core(TM) i7-6700 с тактовой частотой 3,40 ГГц). Буквально вчера у меня возникла необходимость построить тензорный поток на окнах. Итак, я непосредственно попробовал последний метод, который вы предложили. Я не пытался собрать его с помощью CMake.

Привет, я пытался следовать подходу @meteorcloudy, но в итоге получил ошибки, как показано ниже. Может ли кто-нибудь помочь?

bazel build -c opt --cpu=x64_windows_msvc --host_cpu=x64_windows_msvc //tensorflow/cc:tutorials_example_trainer --verbose_failures
ИНФОРМАЦИЯ: проанализированная цель //tensorflow/cc:tutorials_example_trainer.
ИНФОРМАЦИЯ: Найдена 1 цель...
ОШИБКА: C:/Programming/tensorflow/tensorflow/core/ BUILD: 1064 : 1: выполнение genrule //tensorflow/ core: version_info_gen не удалось: bash.exe не удалось: ошибка при выполнении команды
cd C:/tools/msys64/var/tmp/Bazel/s5nfxnhX/execroot/tensorflow
УСТАНОВИТЬ ПУТЬ = C:\tools\msys64\usr\local\bin;C:\tools\msys64\usr\bin;C:\tools\msys64\usr\bin;C:\tools\msys64\opt\bin;C :\Windows\System32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\tools\msys64\usr\bin\site_perl;C:\ инструменты\msys64\usr\bin\vendor_perl;C:\tools\msys64\usr\bin\core_perl;C:\Program Files\Google;C:\WinPython-64bit-2.7.10.2\python-2.7.10.amd64; C:\WinPython-64bit-2.7.10.2\python-2.7.10.amd64\Scripts;C:\tools\swigwin-3.0.10;C:\Program Files\java\jdk1.8.0_102\bin
C:/tools/msys64/usr/bin/bash.exe -c source external/bazel_tools/tools/genrule/genrule-setup.sh; tensorflow/tools/git/gen_git_source.py --генерировать tensorflow/tools/git/gen/spec.json tensorflow/tools/git/gen/head tensorflow/tools/git/gen/branch_ref "bazel-out/vc_14_0_x64-opt/ genfiles/tensorflow/core/util/version_info.cc": com.google.devtools.build.lib.shell.BadExitStatusException: Процесс завершен со статусом 1
Traceback (последний последний вызов):
Файл "tensorflow/tools/git/gen_git_source.py", строка 258, в
генерировать (args.генерировать)
Файл "tensorflow/tools/git/gen_git_source.py", строка 210, в генерации
git_version = get_git_version (данные ["путь"])
Файл «tensorflow/tools/git/gen_git_source.py», строка 151, в get_git_version.
"--long", "--dirty", "--tags"]).strip()
Файл "C:\WinPython-64bit-2.7.10.2\python-2.7.10.amd64\lib\subprocess.py", строка 566, в check_output
процесс = Popen(stdout=PIPE, _popenargs, *_kwargs)
Файл "C:\WinPython-64bit-2.7.10.2\python-2.7.10.amd64\lib\subprocess.py", строка 710, в инициализации
ошибаться, ошибаться)
Файл "C:\WinPython-64bit-2.7.10.2\python-2.7.10.amd64\lib\subprocess.py", строка 958, в _execute_child
информация о запуске)
WindowsError: [Ошибка 2] Система не может найти указанный файл
ОШИБКА: C:/tools/msys64/var/tmp/Bazel/s5nfxnhX/external/jpeg_archive/ BUILD: 74 : 1: объявленный вывод «external/jpeg_archive/jconfig.h» не был создан genrule. Вероятно, это связано с тем, что genrule на самом деле не создавал этот вывод, или потому что вывод был каталогом, а genrule запускался удаленно (обратите внимание, что только содержимое объявленных выходных файлов копируется из genrule, запускаемых удаленно).
ОШИБКА: C:/tools/msys64/var/tmp/Bazel/s5nfxnhX/external/gif_archive/ BUILD: 35 : 1: объявленный вывод «external/gif_archive/windows/unistd.h» не был создан genrule. Вероятно, это связано с тем, что genrule на самом деле не создавал этот вывод, или потому что вывод был каталогом, а genrule запускался удаленно (обратите внимание, что только содержимое объявленных выходных файлов копируется из genrule, запускаемых удаленно).
Цель //tensorflow/cc:tutorials_example_trainer не удалось построить
ИНФОРМАЦИЯ: Истекшее время: 4,967 с, критический путь: 0,96 с.
FAILED: сборка НЕ ​​завершена успешно

@bssrdf ваши симптомы похожи на https://github.com/bazelbuild/bazel/issues/1463.
Это известная проблема bazel в Windows, которую мы ломаем, если ваша рабочая область не находится на диске C: .

Если это так, обходной путь состоит в том, чтобы создать соединение - если ваша проверка тензорного потока находится в d:\src\tensorflow , следующее должно работать

C:\> mklink /j d_src d:\src
C:\> cd c:\d_src\tensorflow
C:\D_SRC\TENSORFLOW> bazel build ...

См. https://github.com/bazelbuild/bazel/issues/1463#issuecomment -251967323
Извините за неудобства, мы исправим это как можно скорее.

@bssrdf хм, на второй взгляд, может быть, это не так - может быть, у вас нет git в PATH?

@meteorcloudy Привет, Юн:

Я также подтверждаю, что нет проблем с компиляцией обучающего примера C++ с использованием предварительно скомпилированного бинарного файла bazel версии 0.3.2.

Мой ноутбук старый, и в то же время он выполняет другие задачи, поэтому время компиляции - ерунда с точки зрения бенчмаркинга.

Спасибо за вашу работу и обратите внимание на компиляцию пакета python PIP в Windows.

BR

@mingyr Это здорово!
Но просто уведомление для всех, пример трейнера не может быть собран в TF HEAD, потому что мое исправление было отменено в be3bc472a52571a83f048479d6a4fa528b5a495e по какой-то причине.
Хорошая новость заключается в том, что сборка PIP-пакета Python с помощью Bazel уже близка! См. PR № 4942.

@dslomov спасибо за ответ. Мне действительно пришлось решить проблему рабочей области bazel non-c: drive, как вы предложили. Я установил git для Windows, и git можно увидеть в PATH на MSYS2.

Я только что перезапустил команду сборки bazel, и теперь она работает, как чудо. Я не знаю, что произошло вчера. В любом случае, это еще одно подтверждение успеха на Windows 10 home, VS 2015 Community Edition, предварительно собранном bazel 0.3.2 и Winpython-2.7.10.2.

Большое спасибо Юну за работу.

@meteorcloudy , возможно ли собрать версию GPU, следуя процедуре (конечно, с изменениями в сборке bazel)?

@mrry Привет, Дерек, спасибо за ваш вклад, но у меня проблема с тензорной доской, она не работает:

C:\Users\Cesar\Documents\Notebooks\DeepLearning>tensorboard --logdir='./my_graph/'
Traceback (most recent call last):
  File "c:\program files\anaconda3\lib\runpy.py", line 184, in _run_module_as_main
    "__main__", mod_spec)
  File "c:\program files\anaconda3\lib\runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "C:\Program Files\Anaconda3\Scripts\tensorboard.exe\__main__.py", line 5, in <module>
ImportError: No module named 'tensorflow.tensorboard'

@bssrdf Вероятно, нет, потому что код еще не поддерживает GPU в Windows. @mrry сделал всю работу по компиляции кода TF с помощью MSVC, и он сосредоточился на исправлении поддержки GPU.

Есть ли у нас какие-то обоснованные предположения о ETA для использования в производстве?

Поскольку это кажется актуальным для людей, использующих Bazel в Windows; Я создал шоколадный пакет, чтобы упростить установку. https://chocolatey.org/packages/bazel. Пожалуйста, попробуйте его, и если возникнут какие-либо проблемы (он _новый), напишите в твиттер или поднимите вопрос на bazelbuild/bazel.

Поддержка GPU отсутствует благодаря @mrry и @guschmue.
Инструкции будут обновляться в readme .

Кто-нибудь смог скомпилировать в Windows и создать пакет PIP? Спасибо. :)

master (66f979714c9a8582059f383ec1505d13c9e8c523) должен нормально собираться для Windows cpu и gpu. Инструкции находятся в tensorflow/contrib/cmake/README.md (пока используйте cmake 3.6).

Tensorboard не включен?, потому что он не работает:

C:\Users\Cesar\Documents\Notebooks\DeepLearning>tensorboard --logdir='./my_graph/'
Traceback (most recent call last):
  File "c:\program files\anaconda3\lib\runpy.py", line 184, in _run_module_as_main
    "__main__", mod_spec)
  File "c:\program files\anaconda3\lib\runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "C:\Program Files\Anaconda3\Scripts\tensorboard.exe\__main__.py", line 5, in <module>
ImportError: No module named 'tensorflow.tensorboard'

Некоторые модули Python отсутствуют в pip: примеры, некоторые из contrib и tensorboard, не копируются в колесо при сборке с помощью cmake.
Позвольте мне проверить, что это просто вопрос добавления его с опцией в tf_python.cmake или если есть сложности.

Я скомпилировал tensorflow для python в соответствии с инструкциями, но у меня возникает сбой из- cudnn при использовании tf.nn.conv2d на моем графическом процессоре.

Пример кода, который вызывает сбой,

import tensorflow as tf
import numpy as np
sess = tf.InteractiveSession()
image = tf.placeholder(tf.float32, shape=[None, 10, 10, 1], name='image')
kernel = tf.truncated_normal([5, 5, 1, 1], stddev=0.1)
conv = tf.nn.conv2d(image, kernel, strides=[1, 1, 1, 1], padding='SAME')
sess.run(tf.initialize_all_variables())
sess.run(conv, feed_dict={image: [np.zeros((10, 10, 1))]})

Это приводит к сбою процесса python и дает этот вывод в консоли jupyter.

WARNING:root:kernel 800a0f42-d62b-4128-a61a-ba64ee725ca8 restarted
I d:\tensorflow\tensorflow\tensorflow\stream_executor\dso_loader.cc:125] successfully opened CUDA library cublas64_80.dll locally
I d:\tensorflow\tensorflow\tensorflow\stream_executor\dso_loader.cc:125] successfully opened CUDA library cudnn64_5.dll locally
I d:\tensorflow\tensorflow\tensorflow\stream_executor\dso_loader.cc:125] successfully opened CUDA library cufft64_80.dll locally
I d:\tensorflow\tensorflow\tensorflow\stream_executor\dso_loader.cc:125] successfully opened CUDA library nvcuda.dll locally
I d:\tensorflow\tensorflow\tensorflow\stream_executor\dso_loader.cc:125] successfully opened CUDA library curand64_80.dll locally
I d:\tensorflow\tensorflow\tensorflow\core\common_runtime\gpu\gpu_device.cc:944] Found device 0 with properties:
name: GeForce GTX 970
major: 5 minor: 2 memoryClockRate (GHz) 1.3165
pciBusID 0000:01:00.0
Total memory: 4.00GiB
Free memory: 3.31GiB
I d:\tensorflow\tensorflow\tensorflow\core\common_runtime\gpu\gpu_device.cc:965] DMA: 0
I d:\tensorflow\tensorflow\tensorflow\core\common_runtime\gpu\gpu_device.cc:975] 0:   Y
I d:\tensorflow\tensorflow\tensorflow\core\common_runtime\gpu\gpu_device.cc:1034] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GTX 970, pci bus id: 0000:01:00.0)
E d:\tensorflow\tensorflow\tensorflow\core\common_runtime\gpu\gpu_device.cc:662] Could not identify NUMA node of /job:localhost/replica:0/task:0/gpu:0, defaulting to 0.  Your kernel may not have been built with NUMA support.
E d:\tensorflow\tensorflow\tensorflow\stream_executor\cuda\cuda_dnn.cc:385] could not create cudnn handle: CUDNN_STATUS_NOT_INITIALIZED
E d:\tensorflow\tensorflow\tensorflow\stream_executor\cuda\cuda_dnn.cc:392] error retrieving driver version: Permission denied: could not open driver version path for reading: /proc/driver/nvidia/version
E d:\tensorflow\tensorflow\tensorflow\stream_executor\cuda\cuda_dnn.cc:352] could not destroy cudnn handle: CUDNN_STATUS_BAD_PARAM
F d:\tensorflow\tensorflow\tensorflow\core\kernels\conv_ops.cc:532] Check failed: stream->parent()->GetConvolveAlgorithms(&algorithms)

Пробуя различные версии cudnn64_5.dll , я смог заставить код работать один раз и подтвердил, что используется графический процессор, но даже после того, как я попробовал все версии cudnn , которые я скачал, мне не повезло заставить его работать во второй раз.

попробовал ваш скрипт, у меня работает. Тестировали только с cudnn5.1, все что старше не знаю.
Я бы получил чистую установку cudnn5.1, собрал ее и убедился, что cudnn64_5.dll в PATH имеет версию 5.1.
Еще одна вещь, которую нужно проверить: ваша свободная память немного меньше, чем я ожидал - может быть, запущен еще один питон, на котором открыто устройство?

Я попытался выполнить чистую перестройку со свежим загруженным cudnn и PATH ( cudnn-8.0-windows10-x64-v5.1 ), но без сигары. cudnn64_5.dll из этой загрузки — «Версия файла»: 6.14.11.8000 и «Описание файла»: NVIDIA CUDA 80.0.29 CUDNN Library .

cublas64_80.dll из пути CUDA 8.0 имеет ту же «Версию файла», но «Описание файла»: NVIDIA CUDA 80.0.45 BLAS Library

cufft64_80.dll и curand64_80.dll также имеют совпадающие «Версии файлов», но 8.0.44 в «Описании файла».

Драйверы графического процессора, которые я установил, имеют версию 369.30 из последних драйверов CUDA, а nvcuda.dll в System32 имеют «Версия файла»: 6.14.13.6930 и «Описание файла»: NVIDIA CUDA 80.0.44 driver .

Я считаю, что низкая память устройства связана только с тем, что у меня 970, у которого всего 3,5 ГБ полезной памяти, а CUDA не любит использовать последние 0,5 ГБ.

У меня такая же версия cudnn, и она отлично работает для меня. В дереве tf есть куча тестов conv python, и все они проходят. Я в основном использую 970 для тестирования. В вашем журнале были указаны проблемы с инициализацией cudnn. Позвольте мне взглянуть на код инициализации.

Хорошо, проблема, похоже, в драйвере. Я могу успешно использовать cudnn и свертки каждый раз, когда я перезапускаю видеодрайвер (с помощью диспетчера устройств отключите, а затем включите). Однако после того, как я использовал его в одном процессе, любое будущее использование не инициализируется.

Кроме того, я думаю, что другие процессы имеют сбои, связанные с драйверами, после инициализации cudnn.


Обновление: я удалил и переустановил свой графический драйвер, и теперь один процесс (ядро jupyter) с cudnn работает правильно, но пока я не закрою это ядро, каждая попытка использовать cudnn в других ядрах приведет к тому же сбою. Если я перезапущу работающее ядро, я смогу запустить код в другом ядре без перезагрузки драйвера.

Он скомпилирован для меня, но мне пришлось добавить shell=True в строке 150 файла gen_git_source.py. В противном случае я бы получил ту же ошибку, что и в:
http://stackoverflow.com/questions/24306205/file-not-found-error-when-launching-a-subprocess

@ synap5e , если вы запустите это в обычном tf.Session(), второй экземпляр не будет работать, потому что tf управляет всей памятью на графическом процессоре. Вы можете изменить конфигурацию для Session() следующим образом:
конфигурация = tf.ConfigProto ()
config.gpu_options.per_process_gpu_memory_fraction = 0,4
с tf.Session(config=config) как sess:
...
с этим я могу запустить 2 скрипта в цикле, который попадает в cudnn. Это то же самое в линуксе.
Но в Windows он вылетает иначе - в Linux он получает CUDA_ERROR_OUT_OF_MEMORY, в Windows он получает CUDNN_STATUS_NOT_INITIALIZED. Собираюсь взглянуть на это.

Итак, проблема заключалась в том, что моя система использовала слишком много видеопамяти еще до инициализации тензорного потока. Я предполагаю, что материал драйвера просто уменьшал используемую память устройства, чтобы тензорный поток мог правильно инициализироваться. Спасибо!

Ребят, а на винде без МСВС можно собрать? Предполагается, что Windows 10 SDK содержит компилятор C++, разве этого недостаточно для выполнения задачи?

@zandaqo Вам нужен только автономный компилятор MSVC с Windows 10 SDK и CMake, поэтому нет необходимости устанавливать всю Visual Studio. Windows 10 SDK содержит dll, статические библиотеки, файлы заголовков и исходные коды для библиотек и некоторые полезные инструменты, но не содержит компилятора.

Привет!

Я новичок как в Python, так и в Tensorflow, но в прошлом я делал некоторые вещи MNIST. Я следовал инструкциям на странице tensorflow/contrib/cmake/README.md, и все сработало нормально, GPU тоже работает нормально. Tensorflow в Windows, похоже, ломается в некоторых местах, как и ожидалось, и я просто хочу проверить, правильно ли я понимаю поломку.

Я пытался следовать https://www.tensorflow.org/versions/r0.11/tutorials/mnist/beginners/index.html , и это не работает, так как этот путь импорта (tensorflow.examples.tutorials.mnist) не существует. В конечном итоге это связано с тем, что tf.contrib не включен в пакет pip, верно?

Просто из любопытства я сделал что-то довольно ужасное: я скопировал содержимое репозитория tensorflow поверх расположения библиотеки в site-packages\tensorflow, что, как я ожидал, приведет к поломке многих вещей. Вот как это ломается:

  File "C:\Program Files\Anaconda3\lib\site-packages\tensorflow\contrib\framework\python\ops\variables.py", line 23, in <module>
    from tensorflow.contrib.framework.python.ops import gen_variable_ops
ImportError: cannot import name 'gen_variable_ops'

Я нигде не смог найти определение gen_variable_ops, но в документации сказано, что tf.load_op_library() в настоящее время не реализовано. Итак, где-то еще реализован gen_variable_ops , который нужно загрузить с помощью tf.load_op_library() . Итак, проблема заключается в отсутствии tf.load_op_library, верно?

Мне удалось успешно собрать пакет pip по пути cmake и установить его с pip install tensorflow-0.11.0rc1_cmake_experimental-py3-none-any.whl , который сообщил об успешной установке. Однако, когда я пытаюсь импортировать тензорный поток, я получаю следующие ошибки:

>>> import tensorflow as tf
Traceback (most recent call last):
  File "C:\Users\Tester\AppData\Local\Programs\Python\Python35\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 18, in swig_import_helper
    return importlib.import_module(mname)
  File "C:\Users\Tester\AppData\Local\Programs\Python\Python35\lib\importlib\__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 986, in _gcd_import
  File "<frozen importlib._bootstrap>", line 969, in _find_and_load
  File "<frozen importlib._bootstrap>", line 958, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 666, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 577, in module_from_spec
  File "<frozen importlib._bootstrap_external>", line 906, in create_module
  File "<frozen importlib._bootstrap>", line 222, in _call_with_frames_removed
ImportError: DLL load failed: The specified module could not be found.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\Tester\AppData\Local\Programs\Python\Python35\lib\site-packages\tensorflow\python\__init__.py", line 54, in <module>
    from tensorflow.python import pywrap_tensorflow
  File "C:\Users\Tester\AppData\Local\Programs\Python\Python35\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 21, in <module>
    _pywrap_tensorflow = swig_import_helper()
  File "C:\Users\Tester\AppData\Local\Programs\Python\Python35\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 20, in swig_import_helper
    return importlib.import_module('_pywrap_tensorflow')
  File "C:\Users\Tester\AppData\Local\Programs\Python\Python35\lib\importlib\__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
ImportError: No module named '_pywrap_tensorflow'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\Tester\AppData\Local\Programs\Python\Python35\lib\site-packages\tensorflow\__init__.py", line 23, in <module>
    from tensorflow.python import *
  File "C:\Users\Tester\AppData\Local\Programs\Python\Python35\lib\site-packages\tensorflow\python\__init__.py", line 60, in <module>
    raise ImportError(msg)
ImportError: Traceback (most recent call last):
  File "C:\Users\Tester\AppData\Local\Programs\Python\Python35\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 18, in swig_import_helper
    return importlib.import_module(mname)
  File "C:\Users\Tester\AppData\Local\Programs\Python\Python35\lib\importlib\__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 986, in _gcd_import
  File "<frozen importlib._bootstrap>", line 969, in _find_and_load
  File "<frozen importlib._bootstrap>", line 958, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 666, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 577, in module_from_spec
  File "<frozen importlib._bootstrap_external>", line 906, in create_module
  File "<frozen importlib._bootstrap>", line 222, in _call_with_frames_removed
ImportError: DLL load failed: The specified module could not be found.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\Tester\AppData\Local\Programs\Python\Python35\lib\site-packages\tensorflow\python\__init__.py", line 54, in <module>
    from tensorflow.python import pywrap_tensorflow
  File "C:\Users\Tester\AppData\Local\Programs\Python\Python35\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 21, in <module>
    _pywrap_tensorflow = swig_import_helper()
  File "C:\Users\Tester\AppData\Local\Programs\Python\Python35\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 20, in swig_import_helper
    return importlib.import_module('_pywrap_tensorflow')
  File "C:\Users\Tester\AppData\Local\Programs\Python\Python35\lib\importlib\__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
ImportError: No module named '_pywrap_tensorflow'


Error importing tensorflow.  Unless you are using bazel,
you should not try to import tensorflow from its source directory;
please exit the tensorflow source tree, and relaunch your python interpreter
from there.

Я пропустил здесь какую-то зависимость или что-то не так со сборкой/установкой?

@zandaqo , у меня возникла эта проблема, когда я впервые запустил tensorflow в Windows. Вам просто нужно скомпилировать примеры и добавить папку с скомпилированными примерами в свой путь. Когда вы скомпилируете примеры кода, он также скомпилирует некоторые библиотеки DLL, необходимые для Tensorflow.

@ErivaldoJunior Под компиляцией примеров вы имеете в виду следующее: MSBuild /p:Configuration=Release tf_tutorials_example_trainer.vcxproj ? Я сделал это перед компиляцией пакета pip. Он компилируется в .\Release , это папка, которую нужно добавить в путь? Я только что попытался добавить его, но пока безуспешно.

Я вижу файлы с именами pywrap_tensor , упомянутые в ошибках в этой папке .\Release , возможно, ручное копирование их куда-нибудь может помочь Python их увидеть. Хотя не уверен, где.

@zandaqo , верно. Я просто добавляю эту папку Release в свой путь к Windows, и это сработало. Однако я проверил, запустив python my_tensorflow_script.py из окна CMD. Я не знаю, сработает ли это, если вы используете какую-то IDE или iPython.

@ErivaldoJunior Спасибо, вы были правы насчет отсутствующих библиотек DLL, хотя в моем случае оказалось, что zlib.dll отсутствовали как в пакете, так и в папке .\Release . Я вручную скопировал zlib.dll в папку, как было предложено здесь, и теперь импорт работает.

Мне удалось построить тензорный поток! Но cmake 3.3.1 вызывает ошибку сборки, 3.6.3 работает нормально.

Хорошо знать! Мы приветствуем PR с соответствующей минимальной версией
оператор в файле cmakelist.

В субботу, 5 ноября 2016 г., Такахиро Кубо, [email protected]
написал:

Мне удалось построить тензорный поток! Но cmake 3.3.1 вызывает ошибку сборки,
3.6.3 работает нормально.


Вы получаете это, потому что вы прокомментировали.
Ответьте на это письмо напрямую, просмотрите его на GitHub
https://github.com/tensorflow/tensorflow/issues/17#issuecomment-258649999 ,
или заглушить тему
https://github.com/notifications/unsubscribe-auth/AAjO_Ys4MI03pcc3tCR_BzsqIXFrQTTcks5q7RVRgaJpZM4GexU4
.

@martinwicke , так как здесь кажется, что минимальная известная рабочая версия Cmake — 3.5. Должен ли я изменить минимальное требование на 3.5 и обновить файл readme для минимального 3.5 до 3.6?

Приятно видеть, что TensorFlow теперь может работать в Windows с графическим процессором. Планируется ли версия, которую не нужно устанавливать из исходников? И если да, то какое ETA по этому поводу? Было бы здорово, если бы процесс установки был таким же простым, как в Linux, я использую TensorFlow в Linux без проблем и хотел бы сделать то же самое в Windows, но реквизиты и процесс установки, задокументированные в файле readme, в настоящее время выглядят немного громоздкими для тех, кто из нас, у которых мало времени...

Привет ребят! С выпуском Bazel 0.4.0 пакет TensorFlow PIP теперь можно собирать с помощью Bazel в Windows.
Благодаря вкладу @petemounce вы можете легко установить Bazel с помощью choco install bazel --version 0.4.0 .

@gunan уже создал для него задание ci: http://ci.tensorflow.org/job/tensorflow-pr-win-bazel/
В основном, мы используем этот скрипт . Таким образом, при правильном изменении переменных среды (если ваши установки Visual Studio, Python 3 или msys не находятся в стандартных местах), вы также сможете собрать пакет PIP с помощью Bazel!

Обновление: я бы рекомендовал запускать команды в скрипте вручную, если у вас возникли проблемы с запуском напрямую.

@meteorcloudy Спасибо за обновление!
Сборка с базелом у меня не сработала. Я получаю ОШИБКУ: CreateFile (C:\tmp\Bazel\44EoGNou\install)
Любой способ отладить это? У меня локализована винда (русская), может в этом причина

Полный журнал. Запуск в PowerShell от имени администратора:

C:\libs\tensorflow>c:\tools\msys64\usr\bin\bash -l C:\libs\tensorflow/tensorflow/tools/ci_build/windows/cpu/pip/build_tf_windows.sh
+ set -e
++ dirname 'C:\libs\tensorflow/tensorflow/tools/ci_build/windows/cpu/pip/build_tf_windows.sh'
+ script_dir='C:\libs\tensorflow/tensorflow/tools/ci_build/windows/cpu/pip'
+ cd 'C:\libs\tensorflow/'
+ export TMPDIR=C:/tmp
+ TMPDIR=C:/tmp
+ export BAZEL_SH=C:/tools/msys64/usr/bin/bash
+ BAZEL_SH=C:/tools/msys64/usr/bin/bash
+ export 'PYTHON_BIN_PATH=C:\tools\Anaconda3/python'
+ PYTHON_BIN_PATH='C:\tools\Anaconda3/python'
+ export 'BAZEL_PYTHON=C:\tools\Anaconda3/python'
+ BAZEL_PYTHON='C:\tools\Anaconda3/python'
+ export 'BAZEL_VS=C:/Program Files (x86)/Microsoft Visual Studio 14.0'
+ BAZEL_VS='C:/Program Files (x86)/Microsoft Visual Studio 14.0'
+ export 'PATH=/c/tools/bazel:/c/Program Files/Anaconda3:/usr/local/bin:/usr/bin:/bin:/opt/bin:/c/Windows/System32:/c/Windows:/c/Windows/System32/Wbem:/c/Windows/System32/WindowsPowerShell/v1.0/'
+ PATH='/c/tools/bazel:/c/Program Files/Anaconda3:/usr/local/bin:/usr/bin:/bin:/opt/bin:/c/Windows/System32:/c/Windows:/c/Windows/System32/Wbem:/c/Windows/System32/WindowsPowerShell/v1.0/'
+ bazel clean
Extracting Bazel installation...
ERROR: CreateFile(C:\tmp\Bazel\44EoGNou\install): ▒▒ ▒▒▒▒▒▒▒ ▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒ ▒▒▒▒.
 (2)
.....................................................................................................................................................................................................................................................................................................................................
INFO: Starting clean (this may take a while). Consider using --expunge_async if the clean takes more than several minutes.
++ bazel info output_base
+ output_base=C:/tmp/Bazel/44EoGNou
+ bazel shutdown
+ rm -rf C:/tmp/Bazel/44EoGNou
rm: невозможно удалить 'C:/tmp/Bazel/44EoGNou/server/jvm.out': Device or resource busy

@KhabarlakKonstantin Это ( ERROR: CreateFile(C:\tmp\Bazel\44EoGNou\install) ) bazelbuild/bazel#1744, я думаю. Это происходит только в первый раз после установки bazel. Никаких последствий вроде бы нет.

@KhabarlakKonstantin Как указал @petemounce , вы можете спокойно игнорировать эту ошибку. И вы также можете пропустить rm -rf C:/tmp/Bazel/44EoGNou , если вас блокирует ошибка Device or resource busy . Я предполагаю, что это потому, что он пытался удалить jvm.out до полного завершения работы jvm после вызова bazel shutdown .

@petemounce @meteorcloudy Спасибо за помощь
Проблема в том, что он не начинает строиться. Я закомментировал bazel shutdown , и теперь он идет немного дальше, но все равно вылетает.

INFO: Starting clean (this may take a while). Consider using --expunge_async if the clean takes more than several minutes.
++ bazel info output_base
+ output_base=C:/tmp/Bazel/44EoGNou
+ echo ''
+ ./configure
/c/libs/tensorflow /c/libs/tensorflow
Found possible Python library paths:
  C:\Program Files\Anaconda3\lib\site-packages
  C:\Program Files\Anaconda3
Please input the desired Python library path to use.  Default is [C:\Program Files\Anaconda3\lib\site-packages]
Using python library path: C:\Program Files\Anaconda3\lib\site-packages
Junction created for util\python\python_include <<===>> C:\Program Files\Anaconda3\include
Junction created for util\python\python_lib <<===>> C:\Program Files\Anaconda3\lib\site-packages
Junction created for third_party\py\numpy\numpy_include <<===>> C:\Program Files\Anaconda3\lib\site-packages\numpy\core\include

Здесь больше нет вывода

@KhabarlakKonstantin Кажется, конфигурация OpenCL просто добавлена ​​в ./configure , но не отключена по умолчанию в Windows, поэтому запустите этот скрипт вручную или добавьте export TF_NEED_OPENCL=0 перед echo "" | ./configure

pcloudy@PCLOUDY1-W MSYS ~/workspace/tensorflow
$ ./configure
~/workspace/tensorflow ~/workspace/tensorflow
Please specify the location of python. [Default is /c/Program Files/Anaconda3/python]:
Found possible Python library paths:
  C:\Program Files\Anaconda3\lib\site-packages
  C:\Program Files\Anaconda3
Please input the desired Python library path to use.  Default is [C:\Program Files\Anaconda3\lib\site-packages]

Using python library path: C:\Program Files\Anaconda3\lib\site-packages
Junction created for util\python\python_include <<===>> C:\Program Files\Anaconda3\include
Junction created for util\python\python_lib <<===>> C:\Program Files\Anaconda3\lib\site-packages
Junction created for third_party\py\numpy\numpy_include <<===>> C:\Program Files\Anaconda3\lib\site-packages\numpy\core\include
Do you wish to build TensorFlow with OpenCL support? [y/N] n
No OpenCL support will be enabled for TensorFlow
Configuration finished

У кого-нибудь еще есть эти ошибки с Pragma (игнорируйте pywrap one)?

Сборка с графическим процессором и всеми спецификациями в соответствии с readme.

@Carmezim , у меня это сработало. Я не получил ни одной из этих ошибок.

У меня есть pr, чтобы исправить это здесь: https://github.com/tensorflow/tensorflow/pull/5421

@guschmue Хорошо ! Спасибо за быстрый ответ

После исправления _Pragma вот что я получаю в том же файле:

C:/tensorflow/tensorflow/core/kernels/parameterized_truncated_normal_op_gpu.cu.cc(168): error : more than
one operator "/" matches these operands: [C:\tensorflow\tensorflow\contrib\cmake\build\tf_core_gpu_kernels.v
cxproj]

5421 и это исправит.

Могу ли я построить с поддержкой графического процессора, используя bazel?

@ edwin100394 edwin100394 пока нет поддержки графического процессора в Windows с использованием bazel.
Мы все еще работаем над этим.

В понедельник, 7 ноября 2016 г., в 21:33, [email protected]
написал:

Могу ли я построить с поддержкой графического процессора, используя bazel?


Вы получаете это, потому что вас упомянули.
Ответьте на это письмо напрямую, просмотрите его на GitHub
https://github.com/tensorflow/tensorflow/issues/17#issuecomment-259049695 ,
или заглушить тему
https://github.com/notifications/unsubscribe-auth/AHlCOXNRNoMFmnSPfnkTMLsRHcIcl9TXks5q8AmigaJpZM4GexU4
.

@meteorcloudy Добавление export TF_NEED_OPENCL=0 помогло мне продвинуться немного дальше

Теперь я получаю другую ошибку:

ERROR: C:/libs/tensorflow/tensorflow/core/BUILD:1115:1: Executing genrule //tensorflow/core:version_info_gen failed: bash failed: error executing command
  cd C:/tmp/Bazel/44EoGNou/execroot/tensorflow
  SET PATH=C:\tools;C:\tools\Anaconda;C:\tools\msys64\usr\local\bin;C:\tools\msys64\usr\bin;C:\tools\msys64\usr\bin;C:\tools\msys64\opt\bin;C:\Windows\System32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\tools\msys64\usr\bin\site_perl;C:\tools\msys64\usr\bin\vendor_perl;C:\tools\msys64\usr\bin\core_perl
  C:/tools/msys64/usr/bin/bash -c source external/bazel_tools/tools/genrule/genrule-setup.sh; tensorflow/tools/git/gen_git_source.py --generate tensorflow/tools/git/gen/spec.json tensorflow/tools/git/gen/head tensorflow/tools/git/gen/branch_ref "bazel-out/vc_14_0_x64-py3-opt/genfiles/tensorflow/core/util/version_info.cc": com.google.devtools.build.lib.shell.BadExitStatusException: Process exited with status 1
Traceback (most recent call last):
  File "tensorflow/tools/git/gen_git_source.py", line 260, in <module>
    generate(args.generate)
  File "tensorflow/tools/git/gen_git_source.py", line 212, in generate
    git_version = get_git_version(data["path"])
  File "tensorflow/tools/git/gen_git_source.py", line 152, in get_git_version
    str("--work-tree=" + git_base_path), "describe", "--long", "--dirty", "--tags"
  File "C:\tools\Anaconda\lib\subprocess.py", line 626, in check_output
    **kwargs).stdout
  File "C:\tools\Anaconda\lib\subprocess.py", line 693, in run
    with Popen(*popenargs, **kwargs) as process:
  File "C:\tools\Anaconda\lib\subprocess.py", line 947, in __init__
    restore_signals, start_new_session)
  File "C:\tools\Anaconda\lib\subprocess.py", line 1224, in _execute_child
    startupinfo)
FileNotFoundError: [WinError 2] The system cannot find the file specified
Target //tensorflow/tools/pip_package:build_pip_package failed to build
INFO: Elapsed time: 10.997s, Critical Path: 3.44s
FAILED: Build did NOT complete successfully

Я начал с нуля и собрал базель из исходников. Теперь он строится почти до конца

В конце происходит сбой во время ссылки:

ERROR: C:/libs/tensorflow/tensorflow/python/BUILD:1907:1: Linking of rule '//tensorflow/python:_pywrap_tensorflow.so' failed: msvc_link.bat failed: error executing command
  cd C:/tmp/Bazel/44EoGNou/execroot/tensorflow
  SET PATH=external/local_config_cc/wrapper/bin
  external/local_config_cc/wrapper/bin/msvc_link.bat /DLL /WHOLEARCHIVE -pthread -m64 -Xcompilation-mode=opt -Wl,@bazel-out/vc_14_0_x64-py3-opt/bin/tensorflow/python/_pywrap_tensorflow.so-2.params: com.google.devtools.build.lib.shell.BadExitStatusException: Process exited with status 1169
Warning: Unmatched arguments: -ldl -lm -ldl -lm
Warning: Unmatched arguments: -pthread
libversion_lib.a(version_info.o) : error LNK2005: "char const * __cdecl tf_compiler_version(void)" (?tf_compiler_version@@YAPEBDXZ) already defined in libframework_internal.lo(version_info.o)
libversion_lib.a(version_info.o) : error LNK2005: "char const * __cdecl tf_git_version(void)" (?tf_git_version@@YAPEBDXZ) already defined in libframework_internal.lo(version_info.o)
   Creating library bazel-out/vc_14_0_x64-py3-opt/bin/tensorflow/python/_pywrap_tensorflow.lib and object bazel-out/vc_14_0_x64-py3-opt/bin/tensorflow/python/_pywrap_tensorflow.exp
bazel-out/vc_14_0_x64-py3-opt/bin/tensorflow/python/_pywrap_tensorflow.so : fatal error LNK1169: one or more multiply defined symbols found
ERROR: C:/libs/tensorflow/tensorflow/python/BUILD:639:1: output 'tensorflow/python/gen_control_flow_ops_py_wrappers_cc.exe' was not created
ERROR: C:/libs/tensorflow/tensorflow/python/BUILD:698:1: output 'tensorflow/python/gen_resource_variable_ops_py_wrappers_cc.exe' was not created
Target //tensorflow/tools/pip_package:build_pip_package failed to build

Привет, ребята, теперь, когда реализована элементарная поддержка Windows, я собираюсь заблокировать эту проблему для новых комментариев, но оставлю ее открытой до тех пор, пока у нас не будет стабильной версии. Идти вперед:

  • Если у вас есть проблема, откройте новую проблему с TensorFlow, чтобы описать свою проблему, и заполните стандартный шаблон проблемы. Это поможет нам отслеживать и назначать оставшуюся работу, которую мы должны выполнить, чтобы выпустить TensorFlow-on-Windows.
  • Мы продолжим использовать этот выпуск для (редких) объявлений о поддержке Windows, поэтому вы можете продолжать подписываться на выпуск, чтобы получать новости с низким трафиком об улучшениях TensorFlow-on-Windows.

Еще раз спасибо за интерес к TensorFlow-on-Windows, а теперь мы вернемся к работе!

Сегодня мы объявили о встроенной поддержке Windows в TensorFlow 0.12 с пакетами для Python 3.5. Если вы установили 64-битную версию Python 3.5 (с Python.org или Anaconda), вы можете установить TensorFlow с помощью одной команды:

C:\> pip install tensorflow

Для поддержки графического процессора, если у вас установлена ​​CUDA 8.0, вместо этого вы можете установить следующий пакет:

C:\> pip install tensorflow-gpu

Теперь, когда Windows является поддерживаемой конфигурацией, я собираюсь закрыть этот вопрос; пожалуйста, откройте новую проблему, если у вас есть проблемы с этими пакетами. Между пакетом Windows и другими платформами все еще есть некоторые расхождения, которые изложены в примечаниях к выпуску . В течение следующих нескольких недель мы будем работать над устранением этих пробелов.

Спасибо за интерес к TensorFlow для Windows!

Была ли эта страница полезной?
0 / 5 - 0 рейтинги