Tensorflow: Soporte y documentación de Windows

Creado en 9 nov. 2015  ·  180Comentarios  ·  Fuente: tensorflow/tensorflow

Estaba emocionado de ver tensorflow, pero como muchos otros usuarios, estamos en Windows, sería bueno ver este soporte. ¿Aceptará contribuciones de puerto de Windows?

Mientras tanto, Microsoft lanzó recientemente su kit de herramientas de aprendizaje profundo que escala en múltiples máquinas con GPU para Linux y Windows. https://github.com/Microsoft/CNTK

Comentario más útil

¡Gracias por todo el interés en TensorFlow en Windows! Estamos progresando en dos frentes principales:

  1. Adaptación de los archivos BUILD de Bazel de TensorFlow para que funcionen en Windows. Es posible que haya visto algunas solicitudes de extracción recientes de @meteorcloudy en esa dirección (como #4449), y nuestro plan eventual es tener soporte completo para construir TensorFlow, usando Bazel, en Windows.
  2. Modificación del tiempo de ejecución de TensorFlow para compilar con el compilador de Visual C++ 2015. He estado trabajando en este esfuerzo y la diferencia entre HEAD y mi rama de trabajo es cada vez menor. Por ahora, uso CMake para compilar TensorFlow con Visual Studio/MSBuild, pero planeo cambiar a Bazel cuando los archivos BUILD funcionen en varias plataformas.

Esperamos hacer un anuncio pronto, con un paquete PIP binario e instrucciones para compilar TensorFlow en Windows. Mientras tanto, actualizaremos este número cuando tengamos noticias para compartir.


Respondiendo a las preguntas específicas de @kestrelm :

  1. Actualmente estoy usando CMake para generar una solución VS con varios proyectos, y lo fusionaremos como parte del elemento (2) anterior.
  2. Como mínimo, podemos generar una DLL de extensión de Python que contenga el tiempo de ejecución y todos los núcleos (el equivalente a tensorflow/python/_pywrap_tensorflow.so ), y proporcionar instrucciones para construir un binario de C++ enlazado estáticamente (el equivalente a tensorflow/cc/tutorials/example_trainer.cc ).
  3. Podemos crear fácilmente una versión del tiempo de ejecución con esas funciones (algo así como el subconjunto de Android de núcleos relacionados con la inferencia en un archivo DLL detrás de la API de C), aunque probablemente no sea parte del lanzamiento inicial. Sin embargo, será posible modificar los archivos de compilación para crear un objetivo que tenga estas propiedades, y estaré encantado de ayudar a cualquiera que intente hacerlo.

Todos 180 comentarios

Creo que es una gran sugerencia!

Lo mismo, me decepcionó un poco no ver ninguna mención de Windows en la página de descarga e instalación.

¿Alguien tiene una idea de cuáles son las principales incompatibilidades/adaptaciones? ¿Es principalmente problemas con rutas de archivos, etc.?

Está construido con Bazel, que solo es compatible con linux/mac, pero la buena noticia es que el soporte de Windows para bazel parece estar fuera de servicio a finales de este año.

:Pulgares hacia arriba:

Ya puede usar TensorFlow en una máquina con Windows usando Docker.
Los detalles están en este hilo.
https://github.com/tensorflow/tensorflow/issues/42

Me gustaría usar TensorFlow en Windows sin Docker para poder usar la computación GPU. Usar Docker en este caso no es usar un contenedor de Windows, sino una máquina virtual Linux en Hyper-V o VirtualBox, por lo que no se pasará la GPU.

:+1:

google, danos soporte de windows, por favor!

+1/0.0

+1

Sí, el soporte de Windows sería muy bueno.

+1
+1
+1

sí por favor

Me encantaría usar TensorFlow en Windows (nativo, no en una máquina virtual).

Veré si Continuum puede proporcionar un paquete conda para tensorflow.

A juzgar por el uso de bazel en la documentación, asumo que es cuestión de esperar a que bazel sea compatible con Windows. ¿Hay algo específico de Tensorflow que deba abordarse para que Windows sea compatible, o es solo bazel?

Una pregunta que tengo es cuándo llegará realmente el soporte de Bazel a Windows. Mirando el repositorio de Bazel, dice que planean admitir Android en Windows, pero no vi ninguna referencia a la creación (lo que supongo que son) paquetes nativos.

Aquí está el error que estamos usando para rastrear el soporte de Bazel para Windows: https://github.com/bazelbuild/bazel/issues/276. Hace un mes, @dslomov logró que Bazel se iniciara solo en Windows . El plan es finalizar el soporte de Windows a finales de este año.

@davidzchen De hecho, estaba trabajando con ese repositorio esta tarde para intentarlo sin mucha suerte, podría jugar un poco más para ver si puedo hacer que se inicie con éxito.

+1 soporte nativo en Windows debería estar disponible

+1

o tal vez podríamos portarlo a un sistema de compilación más razonable. tal vez cmake.

@ahmadia , ¿tiene algún consejo sobre cómo instalar tensorflow usando conda?

En este momento estamos en el mismo barco que todos los demás porque no hay un puerto de TensorFlow para Windows. Si alguien puede armar un puerto de Windows, estaré feliz de ayudar con la compilación/implementación binaria. Alguien ya ha elaborado una receta para OS X/Linux disponible con conda install -c memex tensorflow .

+1 por esto

+1

+1
también el apoyo de cmake sería genial

Preparé un artículo con instrucciones y capturas de pantalla para hacer que TensorFlow funcione en una máquina con Windows usando Docker aquí usando los consejos del problema 42 si es útil para alguien.

Aunque todavía no estoy seguro de cómo puedo aprovechar mi GPU si TensorFlow se ejecuta en una VM en mi máquina con Windows.

+1 soporte nativo de Windows sería extremadamente útil

+1

Quiero tener una versión de TensorFlow para Windows 7, si la tiene, envíe mi correo electrónico.
Mi dirección de correo electrónico: [email protected].
¡Gracias!

+1

El soporte de Windows es un esfuerzo un poco dramático. ¿Tal vez admitir Windows solo para un compilador verdaderamente estándar (gcc / tdm-gcc / mingwpy) y en un Python moderno (¿3.4?) sería un objetivo mucho más fácil?

Tal vez usar la interfaz de Clang con VC++ CodeGen sería la forma más rápida de hacer funcionar las compilaciones de Windows -> Clang con Microsoft CodeGen en VS 2015 Update 1 . Project fue diseñado para proporcionar una cadena de herramientas que funcione de manera consistente para compilaciones de código multiplataforma dirigidas principalmente a Windows, sin embargo, el escenario en el que el código * nix se compila en Windows podría ser igualmente interesante. El equipo de MSFT C ++ afirma que el código que escriben se contribuye al proyecto LLVM, por lo que debería permitir un trabajo rápido y conjunto para obtener un buen soporte multiplataforma.

+1

+1

+1

+1

+1

+1

+1

+1 Este es el primer paquete de Python que recuerdo que no funciona en Windows. Me parece extraño, ya que tengo entendido que los controladores de NVIDIA siempre han sido mejores en Windows que en Linux, y tengo una GTX 970 que se siente aburrida en estos días.

He portado la mayor parte de tensorflow c ++ a una compilación de Windows use vc 2013. Hasta ahora, la mayoría de los códigos compilados y vinculados usan mi propio archivo de fuentes. el mayor desafío para mí es que: usa una variable estática para registrar op y kernel. Los construyo como biblioteca estática y el enlace de la aplicación omitirá esas variables estáticas. Tengo que usar un stub.cpp en la carpeta de la aplicación para incluir operaciones y kernels usados.

@ yuanhua8 , ¿hay alguna posibilidad de que envíes tus cambios a un repositorio de github? Por cierto, resolví el problema del registro estático en caffe usando dumpin para generar un encabezado que obliga a que le gusten los símbolos. Consulte https://github.com/BVLC/caffe/pull/2816 y https://github.com/willyd/caffe/tree/msvc para obtener más detalles.

Espero que Tensorflow nativo para Windows esté listo pronto, es posible que tenga que esperar hasta que bazel para Windows esté estable, ¡encantado de probar el curso de aprendizaje profundo de Google y Udacity!

Para su información, el soporte de Windows para Bazel es actualmente una de nuestras principales prioridades . Manténganse al tanto.

Lo mismo aquí, comencé el curso de aprendizaje profundo ofrecido por Google y aquí estoy atascado porque estoy ejecutando Windows.
¿Cuándo deberíamos esperar soporte para Windows?

Me di cuenta de que muchas personas tenían problemas para ejecutar esto en Windows, así que escribí rápidamente sobre cómo configurarlo en Windows usando Vagrant y Docker:

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

@umarniz Gracias por la guía. Sin embargo, creo que lo que la mayoría de la gente aquí espera ver es que TensorFlow se ejecute de forma nativa en Windows debido a la compatibilidad con GPU . Desafortunadamente, que yo sepa, no funciona con Docker ni con ninguna otra solución que use virtualización ...

@SeveQ Estoy completamente de acuerdo y personalmente prefiero usar Linux para todos mis experimentos de ML debido a la facilidad de configurar múltiples entornos de programación únicos. Esta guía estaba destinada a ejecutar el material del curso de Google, ya que los conjuntos de capacitación y los ejemplos que tienen son para principiantes con conjuntos de datos más pequeños que también deberían poder ejecutarse en un entorno solo de CPU.

@umarniz Muy bien, no fue mi intención denigrar tu esfuerzo. ¡Definitivamente no! ¡Hiciste un gran trabajo escribiendo eso! ¡Gracias de nuevo!

Por cierto, solo por mencionar esto... el ejemplo de Deep MNIST, que ciertamente ya no es tan simple, toma varias horas en mi CPU mientras que mi GPU (GTX 980Ti) lo hace en unos pocos segundos como máximo. En un Ubuntu nativo que es. Tengo uno configurado en una memoria USB. Funciona, sin embargo, el arranque dual puede ser bastante engorroso y un gran factor desmotivador. Más aún, dado que un Windows hibernado en un sistema UEFI puede ser bastante exigente cuando se trata de acceder a datos en particiones NTFS desde Linux...

Claro, estoy totalmente de acuerdo en que Linux (Ubuntu) es el mejor sistema operativo para tareas de ML porque es el que usa la mayoría de la gente, y no sin razón. Pero aún tiene sus desventajas para los entusiastas como yo que no solo se ganan la vida con ML sino también como aficionados, y que tienen otros pasatiempos paralelos que dependen de Windows... como los juegos, por ejemplo.

Supongo que son algunos de los problemas del primer mundo que me encantaría ver resueltos.

@SeveQ Yo tampoco lo tomé de esa manera :)

Estoy de acuerdo con que el arranque dual es una molestia, tuve que cambiarme completamente a Ubuntu durante unos meses; de lo contrario, se vuelve bastante engorroso cambiar, pero me encanta el poder que brinda bash shell para trabajar con grandes conjuntos de datos.

Creo que veré qué puedo hacer para ayudar a agregar soporte de Windows para TensorFlow.

+1

@umarniz Suena bien. No tengo tiempo ahora mismo para dedicarme también a esto, lamentablemente. Otras prioridades como graduarse... El soporte de Windows para TensorFlow sería de gran ayuda en este asunto. Me estoy graduando como MSc., ingeniero de sistemas, especializándome en, quién lo hubiera dicho, aprendizaje automático...

Algún avance en esto

Hago un puerto del código c++ en nuestra rama interna. Lo sentimos, no se puede volver a publicar ya que depende de nuestra rama de código. Encuentre alguna brecha entre c ++ y Python. Pero el motor central funciona para mí en nuestro entorno de Windows/Vc.
hola

Enviado desde mi iPhone

El 30 de enero de 2016, a las 2:46 a. m., datashinobi [email protected] escribió:

Algún avance en esto


Responda a este correo electrónico directamente o véalo en GitHub.

Para todos aquellos que quieran usar Tensorflow y puedan entregar la compatibilidad con GPU, aquí hay una publicación de blog sobre la instalación de Tensorflow con compatibilidad con jupyter notebook para Windows con Docker.

Una actualización del soporte de Windows para Bazel: el conjunto inicial de parches para que Bazel funcione en Windows se fusionó (ver bazelbuild/bazel#276), y @dslomov pudo hacer que Bazel se inicie en Windows .

Estamos planeando tener soporte experimental para Windows en Bazel 0.3 . Si desea seguir nuestro progreso, consulte los problemas con la etiqueta "Windows" en el rastreador de problemas de Bazel.

C:\Usuarios\Escritorio>docker run -it b.gcr.io/tensorflow/tensorflow

No se puede encontrar la imagen 'b.gcr.io/tensorflow/t ensorflow:latest ' localmente

ventana acoplable: Respuesta de error del daemon: no se puede hacer ping al punto final del registro https://bg
cr.io/v0/
El intento de ping v2 falló con el error: obtenga https://b.gcr.io/v2/ : marque tcp 64.233.188
.82:443: tiempo de espera de E/S

¿Alguna noticia sobre poder usar TensorFlow en Windows, sin Docker?
¿Qué tan difícil sería ofrecer un proceso de compilación CMake que funcione tanto para Linux como para Windows (creando un proyecto MVS)?

Escribí instrucciones para instalar tensorflow en una máquina virtual CentOS. Si tiene problemas para trabajar con Docker, esta podría ser su solución.

Chicos, si instalan bash en Windows usando el nuevo tensorflow de vista previa para desarrolladores, se instala y funciona. Entonces puede usarlo para ejecutarlo en Windows sin usar la ventana acoplable. (Y probablemente mejoraría el bash para Windows porque más personas lo están usando).

Eso es fantástico.
Usar bash en Windows era mi mayor esperanza de usar tensorflow en Windows.

La pregunta más importante es si puede usar los controladores de GPU.

Esa es la razón principal por la que las personas solicitan una instalación nativa de tensorflow en Windows. De lo contrario, el soporte de la CPU está bien a través de la ventana acoplable o la máquina virtual Linux

No tengo conocimiento de eso, pero deberíamos preguntarle al equipo de Windows sobre eso.
La gente ha logrado que los programas GUI funcionen a través de Windows, pero no usan CPU.
GPU, así que creo que actualmente no tiene acceso
El 19 de abril de 2016 a las 5:37 p. m., "hayder78" [email protected] escribió:

Eso es fantástico.
Usar bash en Windows era mi mayor esperanza de usar tensorflow en Windows.

La pregunta más importante es si puede usar los controladores de GPU.

Esa es la razón principal por la que las personas solicitan una instalación nativa de tensorflow
en ventanas De lo contrario, el soporte de la CPU está bien a través de Docker o Linux
máquina virtual


Estás recibiendo esto porque comentaste.
Responda a este correo electrónico directamente o véalo en GitHub
https://github.com/tensorflow/tensorflow/issues/17#issuecomment-212156142

Si. Leí que los programas de GUI que se ejecutan a través de bash en Windows usarán un controlador de GPU genérico. Lo que significa que no utiliza los controladores de nvidia.

Oremos para que Google esté trabajando en un tensorflow en Windows bajo el capó.

Creo que bash para Windows necesita tiempo para ser lo suficientemente maduro y libre de errores. Mientras tanto, probablemente VM y Docker sean una mejor opción.

Ahora estoy eligiendo entre tensorflow y CNTK.

+1 para soporte nativo de Windows, incluida GPU.

El enlace para seguir los problemas de Windows de Bazel proporcionado por @davidzchen no funciona, el correcto es https://github.com/bazelbuild/bazel/labels/category%3A%20windows

(Sé que todos esperan soporte nativo de Windows + GPU, yo también estoy esperando, pero tenemos que esperar hasta que Bazel para Windows se estabilice, ayudar en las pruebas y contribuir a Bazel probablemente acelerará el proceso)

otro +1 para Windows con soporte para GPU. Aunque TF parecía una mejor opción, tuve que cambiar a Theano como resultado de la falta de compatibilidad con GPU en Windows. Sería bueno si hay una mención en la hoja de ruta de TF sobre si el soporte estará disponible en versiones futuras, ya que ayudará con la toma de decisiones de muchos investigadores.

+1

+1

Una noticia interesante: @shanselman escribió una publicación de blog sobre cómo ejecutar TensorFlow en Bash para Windows.

Todavía tenemos la intención de proporcionar soporte de Windows de primera clase, pero los usuarios aventureros pueden encontrar esta una buena manera de comenzar mientras tanto.

@mrry Hola Derek Murray,
Me complace saber de usted, como ingeniero de software de Google, que tiene la intención de proporcionar un soporte nativo de Windows para tensorflow. ¿Eres parte del equipo de desarrolladores de tensorflow en Google?

Al menos ahora tengo una esperanza.

¿Alguna estimación aproximada de cuándo habrá una versión beta?

Otro +1, muy interesado en ver que esto suceda. Si Bazel realmente se ejecuta en Windows, ¿se compilará TF en la plataforma? ¿O también hay otros problemas de portabilidad, por ejemplo, red, llamadas al sistema de archivos?

+1

Amigos, ¿podrían usar las reacciones de GitHub en lugar de escribir "+1" en un mensaje nuevo? En este momento, produce mucho spam para las personas que se suscribieron a las actualizaciones en este hilo. ¡Gracias!

¡+1 para las reacciones de GitHub!

Bueno, bazel parece funcionar la mayor parte del tiempo en Windows ahora, además de algunos errores de nombre (caracteres ilegales o comandos muy largos). Definitivamente, hay problemas para obtener un flujo de tensor de Windows que funcione, además de tener un bazel que funcione. Todos los errores que tengo hasta ahora son del tipo:
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.
Así que supongo que las reglas de compilación deben actualizarse primero para Windows.

La hoja de ruta oficial de tensorflow:
https://github.com/tensorflow/tensorflow/blob/master/tensorflow/g3doc/resources/roadmap.md

¡El soporte de Windows es parte de la hoja de ruta del futuro cercano que está prevista para los próximos meses!

@Sabrewarrior Traté de construir el tensorflow en Windows usando bazel, pero el archivo de configuración solo da algunos errores. Me pregunto si cambió o agregó algunas partes en ese archivo para que sea compatible con Windows.

@Fhrozen https://github.com/Sabrewarrior/tensorflow/blob/test/tf_win_env.txt
Estos son mis paquetes instalados cuando ejecuté configure sin ningún cambio. Estoy ejecutando esto en msys2 con python 2.7 en una máquina con Windows 10.

@Sabrewarrior gracias por la respuesta. Lo comprobé, eran los espacios en el nombre de la carpeta mi problema.
Ahora tengo este error en la versión cuda.

`Por favor, especifique qué gcc nvcc debe usar como compilador de host. [El valor predeterminado es /mingw64/bin/gcc]:
Especifique la versión del SDK de Cuda que desea utilizar, por ejemplo, 7.0. [Dejar en blanco para usar el valor predeterminado del sistema]: 7.5
Especifique la ubicación donde está instalado el kit de herramientas CUDA 7.5. Consulte README.md para obtener más detalles. [El valor predeterminado es /usr/local/cuda]: C:/CUDA/v7.5
Especifique la versión de Cudnn que desea utilizar. [Dejar en blanco para usar el valor predeterminado del sistema]: 4.0.7
Especifique la ubicación donde está instalada la biblioteca cuDNN 4.0.7. Consulte README.md para obtener más detalles. [El valor predeterminado es C:/CUDA/v7.5]: cuda/
Especifique una lista de las capacidades informáticas de Cuda separadas por comas con las que desea construir.
Puede encontrar la capacidad informática de su dispositivo en: https://developer.nvidia.com/cuda-gpus.
Tenga en cuenta que cada capacidad informática adicional aumenta significativamente el tiempo de compilación y el tamaño binario.

Configurar Cuda incluir
Configuración de Cuda
ln: fallo al crear el enlace simbólico '../../../third_party/gpus/cuda/extras/visual_studio_integration/MSBuildExtensions/CUDA': No such file or directory
ln: fallo al crear el enlace simbólico '../../../third_party/gpus/cuda/extras/visual_studio_integration/MSBuildExtensions/7.5.props': No such file or directory
ln: falla al crear el enlace simbólico '../../../third_party/gpus/cuda/extras/visual_studio_integration/MSBuildExtensions/CUDA': No such file or directory
ln: falla al crear el enlace simbólico '../../../third_party/gpus/cuda/extras/visual_studio_integration/MSBuildExtensions/7.5.targets': No such file or directory
ln: fallo al crear el enlace simbólico '../../../third_party/gpus/cuda/extras/visual_studio_integration/MSBuildExtensions/CUDA': No such file or directory
ln: falla al crear el enlace simbólico '../../../third_party/gpus/cuda/extras/visual_studio_integration/MSBuildExtensions/7.5.xml': No such file or directory
xargs: bash: terminar con estado 255; abortar
`

@Fhrozen AFAIK, no puede usar gcc como compilador para CUDA en Windows. Solo Visual C++ Compiler es compatible con CUDA en Windows ( consulte aquí ).

+1

¡OTRA VEZ! ¡POR FAVOR NO HAGAN _+1_ COMENTARIOS INÚTILES! ¡UTILICE LAS REACCIONES DE GITHUB EN SU LUGAR!

+1

detener +1!!!

Repito, deja +1 por el bien de $%{^¥. ¡Cualquiera que comente +1 después de esto es un idiota! :-P ¡Usa las reacciones de Github, maldita sea!

¿Alguien podría darme algún tipo de estado de moderador? Me gustaría limpiar este problema de comentarios +1 inútiles.

Hola, equipo. Estoy tratando de entender qué trabajo se debe hacer para poder usar TensorFlow en Windows (10, supongo) con soporte de GPU a través de CUDA. Por lo que sé hasta ahora, eso descarta a Docker porque Docker no puede acceder a la GPU del host y significa que debemos usar cl.exe de Visual Studio (que es lo que usa Bazel para Windows).

A partir de eso, ¿es solo Bazel para Windows lo que necesita progresar? ¿Es esa la única dependencia insatisfecha aquí? Feliz de ser corregido en cualquier punto.

Si quiero activar Bash en Windows, necesito verificar el Subsistema de Windows para Linux (Beta) , ¿verdad? Pero no puedo encontrar este menú en el cuadro de diálogo Características de Windows. Estoy siguiendo la guía aquí y aquí .
¿Debo marcar la casilla de verificación Hyper-V en el cuadro de diálogo Características de Windows?
También he activado el modo Desarrollador en la configuración.

¿Parece que necesito abandonar estas funciones de Windows beta bash y usar Docker de mala gana?

@off99555 Su Windows 10 debe tener la versión preliminar más reciente (Fast Ring). Verifique su compilación, si es inferior a ~ 14000, entonces aún no tiene esta función. (Esta actualización será GA el 2 de agosto)

Hola,

Para la compatibilidad con Tensorflow Windows, ¿podremos crear binarios de Windows que no sean binarios msys2? Esto tiene sentido ya que sería posible realizar una implementación real en la mayoría de las máquinas de los usuarios.

Si esto no es posible, ¿podemos tener una forma de implementar una versión simplificada del pase de predicción/pase de avance de la biblioteca para este propósito? Puedo entrenar en Linux muy bien, pero para el proceso de predicción real, me gustaría poder implementarlo en una caja normal de Windows sin msys2. ¿Está esto en la hoja de ruta?

Si miras lo que está haciendo CNTK:
https://github.com/Microsoft/CNTK/wiki/Native-Evaluation-Interface

Tienen una manera mucho más fácil de hacer evaluación/predicción usando una DLL simplificada. ¿Podemos tener algo como esto en Tensorflow también para Windows (y otras plataformas que puedo imaginar lo encontrarán muy útil)?

¡Gracias!

No entiendo por qué se agrega soporte para Mac OS y no para Windows. No puede usar la GPU CUDA normal en la mayoría de las Mac. Es una plataforma inútil para el entrenamiento de aprendizaje profundo.

¿Puede el equipo informarnos sobre las estimaciones para el soporte nativo de Windows?

@mrry está trabajando activamente en esto y puede proporcionar más actualizaciones al respecto si tiene preguntas específicas.

@aselle ¡ Gracias por la útil actualización, muy apreciada!

@mrry Hola, ¿cómo se implementarán los detalles de la implementación de Windows?

1) ¿Tendremos (idealmente) una solución VS2015 que podamos construir con nuestras aplicaciones/herramientas? Un método cmake que genera la solución VS también funciona.

2) ¿Va a ser una biblioteca vinculada estática o dinámicamente?

3) ¿Habrá una biblioteca/módulo de evaluación/paso directo ligero que podamos usar para la implementación con nuestras herramientas/aplicaciones?

El recurso actual que pude encontrar con respecto a la implementación de tensorflow con una aplicación independiente de C++ está aquí:
https://medium.com/jim-fleming/loading-a-tensorflow-graph-with-the-c-api-4caaff88463f#.7ejb8h7zk

Mi principal preocupación es lo que se afirma aquí:
"La compilación es enorme, con 103 MB, incluso para este ejemplo simple. Gran parte de esto es para TensorFlow, compatibilidad con CUDA y numerosas dependencias que nunca usamos. Esto es especialmente cierto porque la API de C++ no admite muchas funciones en este momento, como una gran parte de la API de TensorFlow es solo de Python. Probablemente haya una mejor manera de vincular a TensorFlow (por ejemplo, una biblioteca compartida), pero aún no lo he hecho funcionar".

Si hay una mejor manera de evitar la vinculación de una gran biblioteca estática, será excelente, especialmente para los fines de una aprobación/evaluación hacia adelante que realmente no necesita soporte de GPU.

¡Gracias!

@mrry ¿Cómo pueden otros involucrarse en esto? ¿Cómo podemos ayudar a que TensorFlow se ejecute en Windows lo antes posible? Al menos podemos ayudar con las pruebas y el informe de errores.

+1

¿Alguna actualización en Windows? ¿Qué se necesita para que funcione de forma nativa con GPU disponible también?

¡Necesitamos soporte de Windows!
¿Puede el equipo informarnos sobre las estimaciones para el soporte nativo de Windows?

¿Sin ventanas? ¿Por qué? al menos versiones solo de CPU?

Aquí hay un resumen de lo que creo que está sucediendo en este problema de soporte de Windows:

Tensorflow requiere que Bazel compile desde la fuente. Si no me equivoco, Bazel es un sistema de compilación como GNU Make, pero no un compilador.

Según lo que vi cuando escaneé brevemente el código, el código fuente de Tensorflow utiliza principalmente la biblioteca estándar de C++ para cosas como la creación de subprocesos, por lo que no debería ser un problema compilar en Windows, las bibliotecas de terceros esenciales que utiliza tienen soporte para Windows.

Por lo tanto, creo que el problema principal radica en la falta de un método de compilación para Windows en lugar del código fuente en sí. Hay trabajos sobre el uso de CMake para compilar en lugar de Bazel, pero aún no están completos. Si alguien puede traducir las reglas de construcción de Bazel a las de CMake, creo que podremos construirlo en Windows.

El soporte estable de Bazel para Windows aún tiene un largo camino por recorrer .

Por favor corrígeme si cometí un error aquí.

@eiva Si desea soporte solo para CPU, puede ejecutar Tensorflow en una máquina virtual. Lo ejecuté en Ubuntu 14 en un host de Windows 10 sin problemas.

@rongjiecomputer Honestamente me pregunto por qué usaron a Bazel...

@eiva También hay un contenedor Docker listo para usar que puede usar en un host de Windows. Funciona fuera de la caja. Simplemente no es tan divertido trabajar con tensorflow sin soporte de GPU. Para las cosas geniales, al menos una sola GPU es un requisito. Por supuesto, puede ejecutar cosas básicas como regresión lineal o logística sin una GPU. Pero ese no es el traje largo de tensorflow. Está hecho para tareas de aprendizaje profundo que básicamente requieren una GPU.

@marklit ya lo uso de esta manera, pero la mayor parte de mi aplicación se ejecuta en Windows, y la mayor parte del desarrollo se realiza en Windows... No es fácil cambiar de sistema operativo cada vez que hago algo con diferentes partes del sistema...

@Loo Rong
¡Tu especulación es correcta!
https://www.quora.com/¿Por qué-Google-decidió-usar-Bazel-con-TensorFlow/answer/Derek-Murray-3?

El 12 de septiembre de 2016 a las 12:17 p. m., "Eugene Ivanchenko" [email protected]
escribió:

@marklit https://github.com/marklit ya lo uso de esta manera, pero la mayoría
de mi aplicación se ejecuta en Windows, y la mayor parte del desarrollo está en marcha
ventanas... No es fácil cambiar de sistema operativo cada vez que hago algo con
diferentes partes del sistema...


Estás recibiendo esto porque estás suscrito a este hilo.
Responda a este correo electrónico directamente, véalo en GitHub
https://github.com/tensorflow/tensorflow/issues/17#issuecomment-246239719 ,
o silenciar el hilo
https://github.com/notifications/unsubscribe-auth/AEBIBhhA-t1MrFnddm5k-wER0KAm_p30ks5qpNJTgaJpZM4GexU4
.

¡Gracias por todo el interés en TensorFlow en Windows! Estamos progresando en dos frentes principales:

  1. Adaptación de los archivos BUILD de Bazel de TensorFlow para que funcionen en Windows. Es posible que haya visto algunas solicitudes de extracción recientes de @meteorcloudy en esa dirección (como #4449), y nuestro plan eventual es tener soporte completo para construir TensorFlow, usando Bazel, en Windows.
  2. Modificación del tiempo de ejecución de TensorFlow para compilar con el compilador de Visual C++ 2015. He estado trabajando en este esfuerzo y la diferencia entre HEAD y mi rama de trabajo es cada vez menor. Por ahora, uso CMake para compilar TensorFlow con Visual Studio/MSBuild, pero planeo cambiar a Bazel cuando los archivos BUILD funcionen en varias plataformas.

Esperamos hacer un anuncio pronto, con un paquete PIP binario e instrucciones para compilar TensorFlow en Windows. Mientras tanto, actualizaremos este número cuando tengamos noticias para compartir.


Respondiendo a las preguntas específicas de @kestrelm :

  1. Actualmente estoy usando CMake para generar una solución VS con varios proyectos, y lo fusionaremos como parte del elemento (2) anterior.
  2. Como mínimo, podemos generar una DLL de extensión de Python que contenga el tiempo de ejecución y todos los núcleos (el equivalente a tensorflow/python/_pywrap_tensorflow.so ), y proporcionar instrucciones para construir un binario de C++ enlazado estáticamente (el equivalente a tensorflow/cc/tutorials/example_trainer.cc ).
  3. Podemos crear fácilmente una versión del tiempo de ejecución con esas funciones (algo así como el subconjunto de Android de núcleos relacionados con la inferencia en un archivo DLL detrás de la API de C), aunque probablemente no sea parte del lanzamiento inicial. Sin embargo, será posible modificar los archivos de compilación para crear un objetivo que tenga estas propiedades, y estaré encantado de ayudar a cualquiera que intente hacerlo.

Impresionante trabajo, @mrry!

Esperamos hacer un anuncio pronto, con un paquete PIP binario e instrucciones para compilar TensorFlow en Windows.

¿Puede dar alguna estimación aproximada de cuándo será ese anuncio? ¡No puedo esperar!

@mrry : Derek, actualización sólida. ¿Tiene una versión de GPU binaria (BETA) antes de que se solidifique el resto del marco del compilador/makefile? Al menos la gente podría probar con la API de Python...

Queridos gurús:

Traté de compilar tensorflow a partir del código fuente en Windows 10. Informa que bazel ya es compatible con Windows, aunque es posible que no sea estable. Sin embargo, tengo uno que funciona.
Sin embargo, cuando traté de construir tensorflow, hay dos problemas, primero indica que "bazel clean --expurge_async" falló con un problema de permiso. Apuesto a que no es tan grave. El siguiente problema es un poco vital ya que bloquea la compilación. informa:

...
INFORMACIÓN: Encontrado 1 destino...
INFO: Explicación de escritura de reconstrucciones en 'archivo de registro'
ERROR: falta el archivo de entrada '@local_config_cuda// cuda:lib64/libcublas.so '.
ERROR: C:/tensorflow/tensorflow/tools/pip_package/ BUILD:23 :1: //tensorflow/tools/pip_ paquete:build_pip_package : falta el archivo de entrada '@local_config_cuda// cuda:lib64/libcublas.so '.
Destino //tensorflow/tools/pip_ paquete: build_pip_package no se pudo construir
ERROR: C:/tensorflow/tensorflow/tools/pip_package/ BUILD:23 :1 1 archivo(s) de entrada no existen.
INFORMACIÓN: Tiempo transcurrido: 34,644 s, ruta crítica: 1,52 s

En realidad, durante el proceso de configuración, deshabilité deliberadamente la compatibilidad con GPU, entonces, ¿por qué intenta cargar una biblioteca dinámica relacionada con CUDA?

Dado que desactivo la compatibilidad con GPU, las bibliotecas de código auxiliar se crean correctamente con tamaño cero y con la extensión de archivo DLL. Sin embargo, como en el mensaje de error, no sé dónde se originó el requisito de cargar bibliotecas relacionadas con CUDA. Revisé varios archivos pero todavía no tengo idea. Mientras tanto, también creo que el archivo está mal escrito, ya que debería buscar archivos DLL en lugar de archivos SO. Sin embargo, todavía no tengo ni idea.

¿Alguien tiene alguna idea de este problema? Muchas gracias.

Como habrás visto con PR #4778 fusionado, ahora tenemos soporte preliminar para construir TensorFlow en Windows usando CMake. Es compatible con la creación de una versión solo para CPU de TensorFlow para usar en el programa de entrenamiento de ejemplo de C++ y un paquete PIP para usar con Python. Para obtener más detalles e instrucciones sobre cómo compilar TensorFlow desde el código fuente en Windows, consulte el archivo Léame de CMake .

Este es un código de calidad alfa y esperamos que haya errores en esta versión inicial. Si encuentra uno, plantee un nuevo problema de GitHub para el problema específico.

Nuestro enfoque ahora cambia a obtener compatibilidad con GPU para TensorFlow en Windows y hacer la transición a una compilación común basada en Bazel para Windows y Linux. Si tiene otras solicitudes de funciones, plantee un nuevo problema de GitHub.

Estaba usando este proyecto precompilado https://github.com/shishaochen/TensorFlow-0.8-Win , pero no es compatible con GPU.

@mrry Hola, Derek, agradezco tu contribución a TensorFlow.
@cesardelgadof Hola Cesar, gracias por tu información.

Sin embargo, creo que el obstáculo anterior que dificultaba la compilación de TensorFlow en la plataforma Windows es la falta de disponibilidad de bazel en Windows. Dado que ahora está disponible, aunque puede que no sea estable, por lo que, en mi opinión, será mejor que intentemos resolver el problema que tenemos por delante cuando construyamos TensorFlow con bazel.

Personalmente, creo que los chicos de Google, si tienen el plan de admitir la compilación nativa en Windows, probablemente elegirán bazel. Y una vez que la solución oficial esté disponible, supongo que la gente cambiará de cmake a bazel. Entonces, si existe ese día, ¿por qué trabajamos juntos para que llegue temprano?

Sin embargo, probaré la versión cmake y, con suerte, alguien más también probará el sistema de compilación bazel. Probablemente podamos averiguar de dónde viene el desagradable error y localizar el archivo de configuración mal escrito.

Gracias por todos ustedes.

@mrry ¡ Gracias por la gran contribución! He intentado seguir tus instrucciones. Todo parece funcionar a la perfección (durante unos 45 minutos) hasta que falló con:

El destino "BeforeGenerateProjectPriFile" que aparece en un atributo BeforeTargets en "C:\Program Files (x86)\MSBuild\Microsoft\NuGet\Microsoft.NuGet.targets (186,61)" no existe en el proyecto y se ignorará.
Terminado Proyecto de construcción "H:\PycharmProjects\tensorflow\tensorflow\contrib\cmake\build\tf_python_build_pip_package.vcxproj" (objetivos predeterminados) -- FALLIDO.

"H:\PycharmProjects\tensorflow\tensorflow\contrib\cmake\build\tf_python_build_pip_package.vcxproj" (destino predeterminado) (1) ->
"H:\PycharmProjects\tensorflow\tensorflow\contrib\cmake\build\pywrap_tensorflow.vcxproj" (destino predeterminado) (3) ->
"H:\PycharmProjects\tensorflow\tensorflow\contrib\cmake\build\tf_core_cpu.vcxproj" (destino predeterminado) (4) ->
"H:\PycharmProjects\tensorflow\tensorflow\contrib\cmake\build\tf_core_framework.vcxproj" (objetivo predeterminado) (5) ->
(Objetivo de creación personalizada) ->
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets(171,5): error MSB6006: "cmd.exe" salió con el código 1. [H:\PycharmProjects \t
ensorflow\tensorflow\contrib\cmake\build\tf_core_framework.vcxproj]

30 Warning(s)
1 Error(s)

@laudney ¡ Gracias por intentarlo y lamento ver que recibe un error! Dado que este problema tiene muchos suscriptores, he creado el problema #4798 para rastrear la solución a este problema, así que continuemos la discusión allí.

@mingyr Esperamos que TensorFlow se desarrolle en Windows con Bazel lo antes posible. @meteorcloudy ha estado haciendo un trabajo excelente para que esto suceda y acaba de enviar el PR n.º 4796, que permite a Bazel compilar //tensorflow/cc:tutorials_example_trainer en Windows. Apuntaremos a fusionarlo pronto.

@mrry Gracias por #4798, ahora se compila correctamente, también probé la instalación de python whl y no se encontraron problemas hasta ahora.

Espero ver tensorflow en conda pronto.

Use Tensorflow en entornos virtualizados ya que Docker/VirtualBox es una solución muy mala. Tensorflow debería ejecutarse en Windows de forma nativa. (Y dado que la mayoría está codificado en Python, no debería ser un problema crear una distribución para Windows).

¡Hola a todos! Como mencionó @mrry , estoy trabajando en la compilación de TensorFlow Windows con Bazel. ¡Con PR #4796 y PR #4874 combinados, el entrenador de ejemplo de C++ ahora se basa en Windows con Bazel 0.3.2 !

Aquí hay una breve instrucción sobre cómo construir TF con Bazel en Windows:

  • Instale Bazel en Windows ( instrucciones de instalación )
  • Configure el entorno que Bazel necesita para compilar C++ con MSVC
  • Clonar repositorio TF, ejecutar ./configure en MSYS
  • Ejecutar bazel build -c opt --cpu=x64_windows_msvc --host_cpu=x64_windows_msvc //tensorflow/cc:tutorials_example_trainer --verbose_failures

Para mayor comodidad, puede poner las opciones de compilación en ~/.bazelrc , la mía es como:

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 

Un problema conocido es que el script contenedor de MSVC de Bazel no es compatible con python3 en Bazel 0.3.2, pero ya se solucionó en https://github.com/bazelbuild/bazel/commit/ce5c33dd7e96aff0cf1eb993edd41a5fe8c423f2. Puede resolverlo configurando BAZEL_PYTHON en un binario python 2.7 o construyendo Bazel desde HEAD.

Construir el entrenador de ejemplo de C++ con Bazel toma alrededor de 20 minutos en mi máquina (Windows 7, CPU 2.9GHz, RAM 64G), una construcción incremental después de cambiar algún archivo fuente (es decir array_ops.cc ) es alrededor de 1 minuto.

También estoy progresando en la creación del paquete PIP de Python en Windows con Bazel. Enviaré un PR lo antes posible.

Intente compilar TensorFlow con Bazel en Windows y díganos qué podemos mejorar.

@meteorcloudy , Hola, Yun:
El entrenador de ejemplo de C++ debe compilarse con el binario de bazel preconstruido instalado en Windows, ¿o podría sincronizarlo con la última versión de git de bazel y usar el bazel personalizado?

En realidad, elijo la segunda forma, uso el bazel de compilación del cliente, sin embargo, se queja de la siguiente manera:

ERROR: C:/tensorflow/tensorflow/core/ BUILD:108 :1: no se creó la salida 'tensorflow/core/example/example.pb.h'.
ERROR: C:/tensorflow/tensorflow/core/ BUILD:108 :1: no se creó la salida 'tensorflow/core/example/example_parser_configuration.pb.h'.
ERROR: C:/tensorflow/tensorflow/core/ BUILD:108 :1: no se creó la salida 'tensorflow/core/example/example.pb.h'.
ERROR: C:/tensorflow/tensorflow/core/ BUILD:108 :1: no se creó la salida 'tensorflow/core/exampl e/feature.pb.h'.
......

Procedimientos para la compilación que tomé:
$ cd c:/tensorflow
$ exportar JAVA_HOME="$(ls -d C:/Programa\Archivos/Java/jdk* | ordenar | cola -n 1)"
$ exportar BAZEL_SH=c:/herramientas/msys64/usr/bin/bash.exe
$ exportar BAZEL_VS="C:/Archivos de programa (x86)/Microsoft Visual Studio 14.0"
$ exportar BAZEL_PYTHON=C:/Python27/python.exe
$ exportar RUTA=$RUTA:/c/Python27:/c/Python27/Scripts:/c/herramientas/swigwin-3.0.10:/c/bazel/salida

./configurar

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

¿Cualquier sugerencia?

Gracias.

@meteorcloudy Hola Yun,

He seguido un procedimiento similar pero me sale el siguiente error:
cd C:/herramientas/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: proceso finalizado con estado 1.
azel-out/vc_14_0_x64-opt/genfiles/external/protobuf/src: advertencia: el directorio no existe.

Revisé las carpetas y no hay ningún directorio src en protobuf. Además, no hay una carpeta grpc en bazel_out/host/bin/external/ (así que no hay un archivo grpc_cpp_plugin.exe).

este error es seguido por un montón de errores que indican que los archivos en tensorflow/core no se crean

¿Alguna de idea de cómo arreglarlo?

Gracias

@mingyr @karthiek ¡ Gracias por intentar construir TF con Bazel!
Desafortunadamente, de acuerdo con http://ci.bazel.io/job/TensorFlow/ , la compilación de TF incluso falla en Linux con Bazel en HEAD con un error similar dado por usted. Lo estamos arreglando, mientras tanto, ¿puedes intentarlo de nuevo con Bazel 0.3.2 ?

@meteorcloudy Hola Yun:

¿Qué quieres decir con "puedes intentarlo de nuevo con Bazel 0.3.2"?

¿Te refieres al binario oficial precompilado de Windows, o podemos sincronizar con la última versión de bazel y usar mi compilación?

De hecho, ya me sincronicé con la última versión de bazel y uso mi compilación. Si indica que debo probar el binario precompilado oficial para ver si el problema aún está pendiente, hágamelo saber.

BR

@mingyr Sí, me refiero al "binario precompilado oficial". Tengo el mismo error después de sincronizar con HEAD.
Consulte https://github.com/bazelbuild/bazel/issues/1929

@meteorcloudy Hola, Yun

Gracias por la sugerencia. Intenté usar el binario precompilado 0.3.2 y pude compilar y generar el archivo tutorilas_example_trainer.exe.

@karthiek ¡Me alegro de que tengas éxito! ¿Cuánto tiempo tomó? ¿Es más rápido que la compilación de CMake?

@meteorcloudy Tomó alrededor de 15 minutos (CPU Intel(R) Core(TM) i7-6700 a 3,40 GHz). Es solo ayer que tuve la necesidad de construir un flujo de tensor en las ventanas. Entonces, probé directamente el último método que sugirió. No intenté construirlo usando CMake.

Hola, traté de seguir el enfoque de @meteorcloudy pero terminé con los siguientes errores. ¿Alguien podría ayudar?

bazel build -c opt --cpu=x64_windows_msvc --host_cpu=x64_windows_msvc //tensorflow/cc:tutorials_example_trainer --verbose_failures
INFORMACIÓN: objetivo analizado //tensorflow/cc:tutorials_example_trainer.
INFORMACIÓN: Encontrado 1 destino...
ERROR: C:/Programación/tensorflow/tensorflow/core/ BUILD:1064 :1: Ejecutando genrule //tensorflow/ core:version_info_gen falló: bash.exe falló: error al ejecutar el comando
cd C:/herramientas/msys64/var/tmp/Bazel/s5nfxnhX/execroot/tensorflow
ESTABLECER RUTA=C:\herramientas\msys64\usr\local\bin;C:\herramientas\msys64\usr\bin;C:\herramientas\msys64\usr\bin;C:\herramientas\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:\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:\herramientas\swigwin-3.0.10;C:\Archivos de programa\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 --generate 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: Proceso finalizado con estado 1
Rastreo (llamadas recientes más última):
Archivo "tensorflow/tools/git/gen_git_source.py", línea 258, en
generar(args.generar)
Archivo "tensorflow/tools/git/gen_git_source.py", línea 210, en generar
git_version = get_git_version(datos["ruta"])
Archivo "tensorflow/tools/git/gen_git_source.py", línea 151, en get_git_version
"--largo", "--sucio", "--etiquetas"]).strip()
Archivo "C:\WinPython-64bit-2.7.10.2\python-2.7.10.amd64\lib\subprocess.py", línea 566, en check_output
proceso = Popen(stdout=PIPE, _popenargs, *_kwargs)
Archivo "C:\WinPython-64bit-2.7.10.2\python-2.7.10.amd64\lib\subprocess.py", línea 710, en init
err leer, err escribir)
Archivo "C:\WinPython-64bit-2.7.10.2\python-2.7.10.amd64\lib\subprocess.py", línea 958, en _execute_child
información de inicio)
WindowsError: [Error 2] El sistema no puede encontrar el archivo especificado
ERROR: C:/tools/msys64/var/tmp/Bazel/s5nfxnhX/external/jpeg_archive/ BUILD:74 :1: la salida declarada 'external/jpeg_archive/jconfig.h' no fue creada por genrule. Esto probablemente se deba a que el genrule en realidad no creó esta salida, o porque el resultado era un directorio y el genrule se ejecutó de forma remota (tenga en cuenta que solo el contenido de las salidas de archivos declarados se copia desde las genrules ejecutadas de forma remota)
ERROR: C:/tools/msys64/var/tmp/Bazel/s5nfxnhX/external/gif_archive/ BUILD:35 :1: la salida declarada 'external/gif_archive/windows/unistd.h' no fue creada por genrule. Esto probablemente se deba a que el genrule en realidad no creó esta salida, o porque el resultado era un directorio y el genrule se ejecutó de forma remota (tenga en cuenta que solo el contenido de las salidas de archivos declarados se copia desde las genrules ejecutadas de forma remota)
Target //tensorflow/cc:tutorials_example_trainer no se pudo compilar
INFORMACIÓN: tiempo transcurrido: 4,967 s, ruta crítica: 0,96 s
ERROR: la compilación NO se completó con éxito

@bssrdf sus síntomas parecen similares a https://github.com/bazelbuild/bazel/issues/1463.
Es un problema conocido de bazel en Windows que rompemos si su espacio de trabajo no está en la unidad C: .

Si ese es el caso, la solución alternativa es crear una unión: si su pago de tensorflow está en d:\src\tensorflow lo siguiente debería funcionar

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

Consulte https://github.com/bazelbuild/bazel/issues/1463#issuecomment -251967323
Disculpe las molestias, estamos arreglando esto lo antes posible.

@bssrdf hmm en una segunda mirada, tal vez no lo sea, ¿podría ser que no tiene git en PATH?

@meteorcloudy Hola, Yun:

También confirmo que no hay ningún problema al compilar el entrenador de ejemplo de C++ usando la versión binaria bazel 0.3.2 precompilada.

Mi computadora portátil es vieja y, mientras tanto, ejecuta otras tareas, por lo que el tiempo de compilación no tiene sentido desde la perspectiva de la evaluación comparativa.

Gracias por su trabajo y mire lejos para compilar el paquete PIP de python en Windows

BR

@mingyr Eso es genial!
Pero solo una notificación para todos, el entrenador de ejemplo no se puede construir en TF HEAD, porque mi solución se revirtió en be3bc472a52571a83f048479d6a4fa528b5a495e por alguna razón.
¡La buena noticia es que la creación del paquete PIP de Python con Bazel está cerca! Por favor vea PR #4942

@dslomov gracias por la respuesta. Tuve que resolver el problema del espacio de trabajo de la unidad bazel non-c: como sugeriste. Instalé git para Windows y git se puede ver en la RUTA de MSYS2.

Acabo de reiniciar el comando de compilación bazel y ahora funciona, como un milagro. No sé qué pasó ayer. De todos modos, esta es solo otra confirmación del éxito en Windows 10 home, VS 2015 community edition, bazel 0.3.2 precompilado y Winpython-2.7.10.2

Muchas gracias por el trabajo de Yun.

@meteorcloudy , ¿es posible compilar la versión de GPU siguiendo el procedimiento (con cambios en la compilación de bazel, por supuesto)?

@mrry Hola Derek, gracias por tu contribución, pero tengo este problema con tensorboard, no funciona:

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 Probablemente no, porque el código aún no es compatible con GPU en Windows. @mrry hizo todo el trabajo de hacer que el código TF se compile con MSVC, y se ha centrado en corregir la compatibilidad con GPU.

¿Tenemos algún tipo de conjetura informada sobre ETA para uso en producción?

Dado que parece relevante para las personas aquí que usan Bazel en Windows; Creé un paquete de chocolate para facilitar la instalación. https://chocolatey.org/packages/bazel. Pruébelo y si hay algún problema (es _nuevo), envíe un tweet o plantee un problema en bazelbuild/bazel.

El soporte de GPU está disponible gracias a @mrry y @guschmue.
Las instrucciones se actualizarán en Léame .

¿Alguien ha podido compilar en Windows y crear un paquete PIP? Gracias. :)

master (66f979714c9a8582059f383ec1505d13c9e8c523) debería compilarse bien para Windows CPU y GPU. Las instrucciones están en tensorflow/contrib/cmake/README.md (usa cmake 3.6 por ahora).

¿Tensorboard no está incluido?, porque no funciona:

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'

Faltan algunos módulos de Python en el pip: los ejemplos, algunos de contrib y tensorboard, no se copian en la rueda cuando se construye con cmake.
Déjame verificar de qué se trata solo es cuestión de agregarlo con una opción a tf_python.cmake o si hay complicaciones.

Compilé tensorflow para python según las instrucciones, pero tengo un bloqueo que se origina en cudnn cuando uso tf.nn.conv2d en mi GPU.

El código de muestra que causa el bloqueo es

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))]})

Esto hace que el proceso de python se bloquee y da este resultado en la consola de 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)

Mientras probaba diferentes versiones de cudnn64_5.dll , pude hacer que el código funcionara una vez y confirmé que se estaba usando la GPU, pero incluso después de probar todas las versiones de cudnn descargado no he tenido suerte haciendo que funcione por segunda vez.

Probé tu script y me funciona. Probamos solo con cudnn5.1, todo lo anterior no lo sé.
Obtendría una instalación limpia de cudnn5.1, construiría con eso y me aseguraría de que cudnn64_5.dll en PATH sea 5.1.
Otra cosa para verificar: su memoria libre es un poco más baja de lo que esperaría. ¿Hay tal vez otro python en ejecución que tenga el dispositivo abierto?

Intenté una reconstrucción limpia con un cudnn nuevo descargado y en la RUTA ( cudnn-8.0-windows10-x64-v5.1 ) pero no cigarro. cudnn64_5.dll de esta descarga es 'Versión de archivo': 6.14.11.8000 y tiene 'Descripción de archivo': NVIDIA CUDA 80.0.29 CUDNN Library .

cublas64_80.dll de la ruta CUDA 8.0 tiene la misma 'Versión del archivo' pero 'Descripción del archivo': NVIDIA CUDA 80.0.45 BLAS Library

cufft64_80.dll y curand64_80.dll también tienen 'Versiones de archivo' coincidentes pero son 8.0.44 en 'Descripción de archivo'

Los controladores de GPU que he instalado son la versión 369.30 de los últimos controladores CUDA y nvcuda.dll en System32 tiene 'Versión de archivo': 6.14.13.6930 y tiene 'Descripción de archivo': NVIDIA CUDA 80.0.44 driver .

Creo que la poca memoria del dispositivo se debe a que tengo un 970 que solo tiene 3,5 GB de memoria útil y a CUDA no le gusta usar los últimos 0,5 GB.

Tengo la misma versión de cudnn y funciona bien para mí. Hay un montón de pruebas de conv python en el árbol tf y todas están pasando. Principalmente uso un 970 para probar. Su registro era específico de que tenía problemas para inicializar cudnn. Déjame echar un vistazo al código de inicio.

OK, el problema parece ser uno de los controladores. Puedo usar con éxito cudnn y convoluciones una vez cada vez que reinicio el controlador de video (usando el administrador de dispositivos para deshabilitar y luego habilitar). Sin embargo, una vez que lo he usado en un proceso, cualquier uso futuro no se inicializa.

Además, creo que otros procesos tienen fallas relacionadas con el controlador una vez que se ha inicializado cudnn.


Actualización: desinstalé y reinstalé mi controlador de gráficos y ahora puedo hacer que un proceso (kernel jupyter) con cudnn funcione correctamente, pero hasta que cierre ese kernel, cada intento de usar cudnn en otros kernels encontrará el mismo bloqueo. Si reinicio el kernel en funcionamiento, puedo ejecutar el código en un kernel diferente sin tener que volver a cargar el controlador.

Se compiló para mí, pero tuve que agregar shell=True en la línea 150 del archivo gen_git_source.py. De lo contrario, obtendría el mismo error que se muestra en:
http://stackoverflow.com/questions/24306205/file-not-found-error-when-launching-a-subprocess

@ synap5e si ejecuta esto en una tf.Session() normal, una segunda instancia no funcionará porque tf administra toda la memoria en la gpu. Puede cambiar la configuración de Session() de esta manera:
config = tf.ConfigProto()
config.gpu_options.per_process_gpu_memory_fraction = 0.4
con tf.Session(config=config) como sesión:
...
con eso puedo ejecutar 2 scripts en un bucle que llega a cudnn. Esto es lo mismo en Linux.
Pero falla es diferente en Windows: en Linux obtiene CUDA_ERROR_OUT_OF_MEMORY, en Windows obtiene CUDNN_STATUS_NOT_INITIALIZED. Voy a echar un vistazo a esto.

Ah, entonces el problema era que mi sistema estaba usando demasiada memoria de video incluso antes de inicializar tensorflow. Supongo que las cosas del controlador solo estaban reduciendo la memoria del dispositivo usado para que tensorflow pudiera inicializarse correctamente. ¡Gracias!

Chicos, ¿es posible construir en Windows sin MSVS? Se supone que el SDK de Windows 10 contiene el compilador de C++, ¿no sería suficiente para la tarea?

@zandaqo Solo necesita un compilador MSVC independiente con Windows 10 SDK y CMake, por lo que no es necesario instalar todo Visual Studio. Windows 10 SDK contiene dll, bibliotecas estáticas, archivos de encabezado y códigos fuente para las bibliotecas y algunas herramientas útiles, pero no contiene compilador.

¡Hola!

Soy nuevo en Python y Tensorflow, pero he hecho algunas cosas de MNIST en el pasado. Seguí las instrucciones en tensorflow/contrib/cmake/README.md, y funcionó bien, GPU parece estar funcionando bien también. Tensorflow en Windows parece estar fallando en algunos lugares, como se esperaba, y solo quiero verificar si mi comprensión de la falla es correcta.

Traté de seguir https://www.tensorflow.org/versions/r0.11/tutorials/mnist/beginners/index.html y no funciona, ya que esta ruta de importación (tensorflow.examples.tutorials.mnist) no funciona existe. En última instancia, esto se debe a que tf.contrib no están incluidos en el paquete pip, ¿verdad?

Solo por curiosidad, hice algo aparentemente bastante horrible: copié el contenido del repositorio de tensorflow sobre la ubicación de lib en site-packages\tensorflow, que esperaba que causara la ruptura de muchas cosas. Así es como se rompe:

  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'

No pude encontrar la definición de gen_variable_ops en ninguna parte, pero la documentación dice que tf.load_op_library() no está implementado actualmente. Entonces, gen_variable_ops se implementa en otro lugar, que debe cargarse usando tf.load_op_library() . Entonces, la falta de tf.load_op_library es lo que está causando el problema, ¿verdad?

Me las arreglé para compilar con éxito el paquete pip siguiendo la ruta cmake y lo instalé con pip install tensorflow-0.11.0rc1_cmake_experimental-py3-none-any.whl que informó una instalación exitosa. Sin embargo, cuando intento importar tensorflow, obtengo los siguientes errores:

>>> 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.

¿Me perdí alguna dependencia aquí o algo estaba mal con la compilación/instalación?

@zandaqo , tuve este problema cuando ejecuté tensorflow por primera vez en Windows. Solo necesita compilar los ejemplos y agregar la carpeta con los ejemplos compilados a su ruta. Cuando compile los códigos de muestra, también compilará algunas DLL necesarias para Tensorflow.

@ErivaldoJunior Al compilar los ejemplos, ¿quieres decir esto: MSBuild /p:Configuration=Release tf_tutorials_example_trainer.vcxproj ? Lo hice antes de compilar el paquete pip. Se compila en .\Release , ¿es esa la carpeta para agregar a la ruta? Acabo de intentar agregarlo, pero sin suerte hasta ahora.

Veo archivos llamados pywrap_tensor mencionados en los errores en esa carpeta .\Release , tal vez copiarlos manualmente en algún lugar podría ayudar a Python a verlos. Aunque no estoy seguro de dónde.

@zandaqo , así es. Acabo de agregar esa carpeta de lanzamiento a mi ruta de Windows y funcionó. Sin embargo, probé iniciando python my_tensorflow_script.py desde una ventana de CMD. No sé si funciona si usas algún tipo de IDE o iPython.

@ErivaldoJunior Gracias, tenía razón sobre la falta de archivos DLL, aunque en mi caso resultó ser zlib.dll que faltaba tanto en el paquete como en la carpeta .\Release . Copié manualmente zlib.dll en la carpeta, como se sugirió aquí y la importación ahora funciona.

¡Tuve éxito al construir el tensorflow! Pero cmake 3.3.1 provoca un error de compilación, 3.6.3 funciona bien.

¡Bueno saber! Agradeceríamos un PR con una versión mínima adecuada
instrucción en el archivo cmakelist.

El sábado 5 de noviembre de 2016, Takahiro Kubo [email protected]
escribió:

¡Tuve éxito al construir el tensorflow! Pero cmake 3.3.1 provoca un error de compilación,
3.6.3 funciona bien.


Estás recibiendo esto porque comentaste.
Responda a este correo electrónico directamente, véalo en GitHub
https://github.com/tensorflow/tensorflow/issues/17#issuecomment-258649999 ,
o silenciar el hilo
https://github.com/notifications/unsubscribe-auth/AAjO_Ys4MI03pcc3tCR_BzsqIXFrQTTcks5q7RVRgaJpZM4GexU4
.

@martinwicke como aquí parece que la versión de trabajo mínima conocida de Cmake es 3.5. ¿Debo cambiar el requisito mínimo a 3.5 y actualizar el archivo Léame para un mínimo de 3.5 a 3.6?

Es bueno ver que TensorFlow ahora puede funcionar en Windows con GPU ahora. ¿Hay planes para una versión que no necesite instalarse desde las fuentes? Y si es así, ¿alguna ETA al respecto? Sería genial si el proceso de configuración fuera tan sencillo como en Linux. Estoy usando TensorFlow en Linux sin problemas y me gustaría hacerlo en Windows, pero los requisitos y el proceso de configuración documentados en el archivo Léame actualmente parecen un poco engorrosos para aquellos de los que no tenemos mucho tiempo...

¡Hola chicos! Con el lanzamiento de Bazel 0.4.0 , el paquete TensorFlow PIP ahora se puede compilar con Bazel en Windows.
Gracias a la contribución de @petemounce , puedes usar choco install bazel --version 0.4.0 para instalar Bazel fácilmente.

@gunan ya ha configurado un trabajo ci para ello: http://ci.tensorflow.org/job/tensorflow-pr-win-bazel/
Básicamente, estamos usando este script . Entonces, con la modificación adecuada de las variables de entorno (si sus instalaciones de Visual Studio, Python 3 o msys no están en los lugares estándar), ¡también podrá compilar el paquete PIP con Bazel!

Actualización: recomendaría ejecutar los comandos en el script manualmente si tiene problemas para ejecutarlo directamente.

@meteorcloudy ¡ Gracias por actualizar!
Construir con bazel no funcionó para mí. Me sale ERROR: CreateFile(C:\tmp\Bazel\44EoGNou\install)
¿Alguna forma de depurar eso? Tengo ventanas localizadas (ruso), tal vez esa sea la causa

Registro completo. Ejecutando en PowerShell como administrador:

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 Eso es ( ERROR: CreateFile(C:\tmp\Bazel\44EoGNou\install) ) bazelbuild/bazel#1744, creo. Solo sucede la primera vez después de instalar bazel. No parece haber ninguna repercusión.

@KhabarlakKonstantin Como señaló @petemounce , puede ignorar ese error con seguridad. Y también puede omitir rm -rf C:/tmp/Bazel/44EoGNou si el error Device or resource busy lo está bloqueando. Supongo que es porque intentó eliminar jvm.out antes de que jvm se apagara por completo después de invocar bazel shutdown .

@petemounce @meteorcloudy Gracias por la ayuda
El problema es que no empieza a construir. He comentado bazel shutdown y ahora va un poco más lejos, pero sigue fallando

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

No más salida aquí

@KhabarlakKonstantin Parece que la configuración de OpenCL se acaba de agregar a ./configure pero no está desactivada de forma predeterminada en Windows, así que ejecute manualmente ese script o agregue export TF_NEED_OPENCL=0 antes 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

¿Alguien más tiene estos errores con Pragma (ignore pywrap one)?

Construcción con GPU y todas las especificaciones de acuerdo con el archivo Léame.

@Carmezim , funcionó bien para mí. No obtuve ninguno de estos errores.

Tengo un pr para arreglar esto aquí: https://github.com/tensorflow/tensorflow/pull/5421

@guschmue Genial ! Gracias por la rápida respuesta

Después de arreglar _Pragma, esto es lo que obtengo en el mismo archivo:

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 también arreglará esto.

¿Puedo construir con soporte de GPU usando bazel?

@ edwin100394 todavía no hay compatibilidad con GPU en Windows usando bazel.
Todavía estamos trabajando en ello.

El lunes 7 de noviembre de 2016 a las 21:33, edwin100394 [email protected]
escribió:

¿Puedo construir con soporte de GPU usando bazel?


Estás recibiendo esto porque te mencionaron.
Responda a este correo electrónico directamente, véalo en GitHub
https://github.com/tensorflow/tensorflow/issues/17#issuecomment-259049695 ,
o silenciar el hilo
https://github.com/notifications/unsubscribe-auth/AHlCOXNRNoMFmnSPfnkTMLsRHcIcl9TXks5q8AmigaJpZM4GexU4
.

@meteorcloudy Agregar export TF_NEED_OPENCL=0 me ayudó a ir un poco más allá

Ahora estoy recibiendo otro error:

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

Empecé desde cero y construí bazel a partir de fuentes. Ahora se construye casi hasta el final

Falla en el momento del enlace al final:

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

Hola amigos, ahora que contamos con el soporte rudimentario de Windows, voy a bloquear este problema para recibir nuevos comentarios, pero mantenlo abierto hasta que tengamos una versión estable. Avanzando:

  • Si tiene un problema, abra un nuevo problema en TensorFlow para describirlo y complete la plantilla de problema estándar. Esto nos ayudará a rastrear y asignar el trabajo restante que tenemos que hacer para lanzar TensorFlow-on-Windows.
  • Continuaremos usando este número para anuncios (poco comunes) sobre la compatibilidad con Windows, por lo que puede continuar suscribiéndose al número para obtener una fuente de poco tráfico sobre mejoras en TensorFlow-on-Windows.

Una vez más, gracias por todo su interés en TensorFlow-on-Windows, ¡y ahora vamos a volver al trabajo!

Hoy anunciamos el soporte nativo de Windows en TensorFlow 0.12 , con paquetes para Python 3.5. Si ha instalado la versión de 64 bits de Python 3.5 (ya sea de Python.org o Anaconda), puede instalar TensorFlow con un solo comando:

C:\> pip install tensorflow

Para compatibilidad con GPU, si tiene instalado CUDA 8.0, puede instalar el siguiente paquete en su lugar:

C:\> pip install tensorflow-gpu

Ahora que Windows es una configuración compatible, voy a cerrar este problema; por favor abra un nuevo problema si tiene problemas con estos paquetes. Todavía hay algunas discrepancias entre el paquete de Windows y las otras plataformas, que se describen en las notas de la versión . Estaremos trabajando durante las próximas semanas para cerrar estas brechas.

¡Gracias por todo su interés en TensorFlow en Windows!

¿Fue útil esta página
0 / 5 - 0 calificaciones