Tensorflow: Assistance et documentation Windows

Créé le 9 nov. 2015  ·  180Commentaires  ·  Source: tensorflow/tensorflow

J'étais ravi de voir tensorflow, mais comme de nombreux autres utilisateurs, nous sommes sous Windows, ce serait bien de voir ce support se produire. Accepterez-vous les contributions au port Windows ?

Dans l'intervalle, Microsoft a récemment publié sa boîte à outils Deep Learning qui s'adapte à plusieurs machines avec des GPU pour Linux et Windows. https://github.com/Microsoft/CNTK

Commentaire le plus utile

Merci pour tout l'intérêt que vous portez à TensorFlow sous Windows ! Nous progressons sur deux fronts principaux :

  1. Adaptation des fichiers Bazel BUILD de TensorFlow pour qu'ils fonctionnent sous Windows. Vous avez peut-être vu des demandes d'extraction récentes de @meteorcloudy dans cette direction (comme # 4449), et notre plan éventuel est d'avoir un support complet pour la construction de TensorFlow, en utilisant Bazel, sur Windows.
  2. Modification de l'environnement d'exécution TensorFlow pour générer avec le compilateur Visual C++ 2015. J'ai travaillé sur cet effort, et le diff entre HEAD et ma branche de travail se réduit chaque jour. Pour l'instant, j'utilise CMake pour créer TensorFlow à l'aide de Visual Studio/MSBuild, mais je prévois de passer à Bazel lorsque les fichiers BUILD fonctionneront sur plusieurs plates-formes.

Nous prévoyons de faire une annonce prochainement, avec un package PIP binaire et des instructions pour créer TensorFlow sous Windows. En attendant, nous mettrons à jour ce numéro lorsque nous aurons des nouvelles à partager.


Répondre aux questions spécifiques de @kestrelm :

  1. J'utilise actuellement CMake pour générer une solution VS avec plusieurs projets, et nous fusionnerons cela dans le cadre du point (2) ci-dessus.
  2. À tout le moins, nous pouvons générer une DLL d'extension Python contenant le runtime et tous les noyaux (l'équivalent de tensorflow/python/_pywrap_tensorflow.so ), et fournir des instructions pour construire un binaire C++ lié statiquement (l'équivalent de tensorflow/cc/tutorials/example_trainer.cc ).
  3. Nous pouvons facilement créer une version du runtime avec ces fonctionnalités (quelque chose comme le sous-ensemble Android de noyaux liés à l'inférence dans une DLL derrière l'API C), bien qu'il ne fasse probablement pas partie de la version initiale. Il sera cependant possible de modifier les fichiers de construction pour créer une cible possédant ces propriétés, et je serai heureux d'aider quiconque essaie de le faire.

Tous les 180 commentaires

Je pense que c'est une excellente suggestion !

Idem, j'ai été un peu déçu de ne voir aucune mention de Windows dans la page de téléchargement et d'installation.

Quelqu'un a-t-il une idée des principales incompatibilités/hébergements ? S'agit-il principalement de problèmes de chemins de fichiers, etc.?

Il est construit avec Bazel, qui ne prend en charge que linux/mac, mais la bonne nouvelle est que la prise en charge de Windows pour bazel semble être terminée d'ici la fin de cette année.

:pouces vers le haut:

Vous pouvez déjà utiliser TensorFlow sur une machine Windows en utilisant Docker.
Les détails sont dans ce fil.
https://github.com/tensorflow/tensorflow/issues/42

Je souhaite utiliser TensorFlow sur Windows sans Docker, afin d'utiliser le calcul GPU. L'utilisation de Docker dans ce cas n'utilise pas un conteneur Windows, mais une machine virtuelle Linux sur Hyper-V ou VirtualBox, et donc le GPU ne sera pas traversé.

:+1:

google, donnez-nous le support Windows, s'il vous plaît !

+1/0.0

+1

Oui, le support Windows serait super sympa.

+1
+1
+1

Oui s'il vous plaît

J'adorerais utiliser TensorFlow sous Windows (natif, pas dans une machine virtuelle).

Je vais voir si Continuum peut fournir un package conda pour tensorflow.

À en juger par l'utilisation de bazel dans la documentation, je suppose qu'il s'agit d'attendre que bazel prenne en charge Windows. Y a-t-il quelque chose de spécifique à Tensorflow qui devrait être résolu pour que Windows soit pris en charge, ou est-ce juste bazel?

Une question que j'ai est de savoir quand le support Bazel arrivera réellement sur Windows. En regardant le référentiel Bazel, il est indiqué qu'ils prévoient de prendre en charge Android dans Windows, mais je n'ai vu aucune référence à la création (ce que je suppose) de packages natifs.

Voici le bogue que nous utilisons pour suivre la prise en charge de Bazel pour Windows : https://github.com/bazelbuild/bazel/issues/276. Il y a un mois, @dslomov a réussi à faire démarrer Bazel sur Windows . Le plan est de terminer le support de Windows d'ici la fin de cette année.

@davidzchen Je travaillais en fait avec ce référentiel plus tôt cet après-midi pour essayer de l'essayer sans trop de chance, je pourrais jouer un peu plus avec lui pour voir si je peux le faire démarrer avec succès.

+1 support natif sur Windows devrait être disponible

+1

ou peut-être pourrions-nous le porter vers un système de construction plus raisonnable. peut-être cmake.

@ahmadia avez-vous des conseils sur la façon d'installer tensorflow à l'aide de conda ?

En ce moment, nous sommes dans le même bateau que tout le monde car il n'y a pas de port de TensorFlow vers Windows. Si quelqu'un peut mettre en place un port Windows, je serai heureux d'aider à la construction/au déploiement du binaire. Quelqu'un a déjà mis au point une recette pour OS X/Linux disponible avec conda install -c memex tensorflow .

+1 pour ça

+1

+1
aussi le support de cmake serait génial

J'ai rédigé un article avec des instructions et des captures d'écran pour faire fonctionner TensorFlow sur une machine Windows à l'aide de Docker ici en utilisant les conseils du numéro 42 si cela peut être utile à tout le monde.

Bien que je ne sache toujours pas comment je peux tirer parti de mon GPU si TensorFlow s'exécute dans une machine virtuelle sur ma machine Windows.

+1 le support Windows natif serait extrêmement utile

+1

Je veux avoir une version de TensorFlow pour Windows 7, si vous en avez, veuillez envoyer mon e-mail.
Mon adresse email : [email protected].
Merci!

+1

La prise en charge de Windows est un peu un effort dramatique. Peut-être que supporter Windows uniquement pour un compilateur vraiment standard (gcc/tdm-gcc/mingwpy) et sur un Python moderne (3.4 ?) serait une cible beaucoup plus facile ?

Peut-être que l'utilisation de l'interface Clang avec VC++ CodeGen serait la voie la plus rapide pour obtenir des versions Windows fonctionnelles -> Clang avec Microsoft CodeGen dans VS 2015 Update 1 . Le projet a été conçu pour fournir une chaîne d'outils fonctionnant de manière cohérente pour les versions multiplateformes de code ciblant principalement Windows, néanmoins le scénario dans lequel le code * nix est compilé sur Windows pourrait être tout aussi intéressant. L'équipe MSFT C++ déclare que le code qu'ils écrivent est contribué au projet LLVM, il devrait donc permettre un travail rapide et conjoint pour obtenir un bon support multiplateforme.

+1

+1

+1

+1

+1

+1

+1

+1 . C'est le premier package Python dont je me souviens ne pas fonctionner sous Windows. Cela me semble étrange, car je crois comprendre que les pilotes de NVIDIA ont toujours été meilleurs sous Windows que Linux, et j'ai une GTX 970 qui s'ennuie ces jours-ci.

J'ai porté la plupart du tensorflow c++ vers une version Windows utilisant vc 2013. jusqu'à présent, la plupart des codes compilés et liés utilisent mon propre fichier sources. le plus grand défi pour moi de contourner est le suivant: il utilise une variable statique pour enregistrer op et kernel. Je les construis en tant que bibliothèque statique et le lien vers l'application ignorera ces variables statiques. Je dois utiliser un stub.cpp dans le dossier de l'application pour inclure les ops et les noyaux utilisés.

@ yuanhua8 avez-vous une chance de pousser vos modifications vers un dépôt github ? BTW, j'ai résolu le problème d'enregistrement statique dans caffe en utilisant dumpin pour générer un en-tête qui force le symbole à aimer. Voir https://github.com/BVLC/caffe/pull/2816 et https://github.com/willyd/caffe/tree/msvc pour plus de détails.

J'espère que Tensorflow natif pour Windows sera bientôt prêt, il faudra peut-être attendre que bazel pour Windows soit stable, ravi d'essayer le cours Deep Learning de Google et Udacity !

Pour votre information, la prise en charge de Bazel par Windows est actuellement l'une de nos principales priorités . Restez à l'écoute.

Pareil ici, j'ai commencé le cours de deep learning proposé par Google et là je suis bloqué car je suis sous Windows.
Quand doit-on s'attendre à une prise en charge de Windows ?

J'ai remarqué que de nombreuses personnes rencontraient un problème lors de l'exécution sous Windows, j'ai donc écrit rapidement comment le configurer sous Windows à l'aide de Vagrant et Docker :

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

@umarniz Merci pour le guide. Cependant, je pense que ce que la plupart des gens s'attendent à voir ici, c'est que TensorFlow s'exécute nativement sur Windows en raison de la prise en charge du GPU . Cela ne fonctionne malheureusement pas avec Docker à ma connaissance ni aucune autre solution utilisant la virtualisation...

@SeveQ Je suis entièrement d'accord et je préfère personnellement utiliser Linux pour toutes mes expériences ML en raison de la facilité de configuration de plusieurs environnements de programmation uniques. Ce guide était destiné à exécuter le matériel de cours de Google, car les ensembles de formation et les exemples dont ils disposent sont destinés aux débutants avec des ensembles de données plus petits qui devraient également pouvoir s'exécuter dans un environnement CPU uniquement.

@umarniz D'accord , je ne voulais pas dénigrer vos efforts. Définitivement pas! Vous avez fait un excellent travail d'écriture! Merci encore!

D'ailleurs, pour ne citer que ça... l'exemple du Deep MNIST, qui n'est certes déjà plus aussi simple, prend plusieurs heures sur mon CPU alors que mon GPU (GTX 980Ti) s'y précipite en quelques secondes tout au plus. Sur un Ubuntu natif qui est. J'en ai un installé sur une clé USB. Cela fonctionne, mais le double démarrage peut être assez lourd et un énorme facteur de démotivation. D'autant plus qu'un Windows en hibernation sur un système UEFI peut être assez pointilleux lorsqu'il s'agit d'accéder à des données sur des partitions NTFS depuis Linux...

Bien sûr, je suis tout à fait d'accord que Linux (Ubuntu) est le meilleur système d'exploitation pour les tâches de ML, car c'est celui que la plupart des gens utilisent, et non sans raison. Mais il a tout de même ses inconvénients pour les passionnés comme moi qui font non seulement du ML pour gagner leur vie mais aussi en tant qu'amateurs, et qui ont en parallèle d'autres hobbies qui reposent sur Windows... comme le gaming par exemple.

Je suppose que ce sont des problèmes du premier monde que j'aimerais absolument voir résolus néanmoins.

@SeveQ Je ne l'ai pas pris comme ça non plus :)

Je suis d'accord avec le fait que le double démarrage est pénible, j'ai dû passer complètement à Ubuntu pendant quelques mois, sinon cela devient assez fastidieux à changer, mais j'aime la puissance que donne le shell bash pour travailler avec de grands ensembles de données.

Je pense que je vais voir ce que je peux faire pour ajouter moi-même la prise en charge de Windows pour TensorFlow.

+1

@umarniz Ça sonne bien. Je n'ai pas le temps en ce moment de m'y consacrer également, malheureusement. D'autres priorités comme l'obtention d'un diplôme... La prise en charge de Windows pour TensorFlow serait d'une grande aide dans ce domaine. Je suis diplômé MSc., ingénieur système, spécialisé dans, qui aurait cru, l'apprentissage automatique...

Une mise à jour pour ceci

Je fais un portage du code c++ dans notre branche interne. Désolé, je ne peux pas publier de retour car cela dépend de notre branche de code. Trouvez un écart entre c++ et Python. Mais le moteur de base fonctionne pour moi dans notre environnement Windows/Vc.
Hy

Envoyé de mon iPhone

Le 30 janvier 2016, à 2 h 46, datashinobi [email protected] a écrit :

Une mise à jour pour ceci


Répondez directement à cet e-mail ou consultez-le sur GitHub.

Pour tous ceux qui souhaitent utiliser Tensorflow et peuvent renoncer à la prise en charge du GPU, voici un article de blog sur l'installation de Tensorflow avec la prise en charge des ordinateurs portables jupyter pour Windows avec Docker.

Une mise à jour sur la prise en charge de Bazel par Windows : l'ensemble initial de correctifs permettant à Bazel de fonctionner sous Windows a été fusionné (voir bazelbuild/bazel#276), et @dslomov a réussi à faire démarrer Bazel sur Windows .

Nous prévoyons d'avoir un support expérimental pour Windows dans Bazel 0.3 . Si vous souhaitez suivre nos progrès, consultez les problèmes marqués "Windows" sur le suivi des problèmes de Bazel.

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

Impossible de trouver l'image 'b.gcr.io/tensorflow/t ensorflow:latest ' localement

docker : réponse d'erreur du démon : impossible d'envoyer un ping au point de terminaison du registre https://bg
cr.io/v0/
Échec de la tentative de ping v2 avec erreur : obtenez https://b.gcr.io/v2/ : composez le tcp 64.233.188
.82:443 : expiration du délai d'E/S

Des nouvelles concernant la possibilité d'utiliser TensorFlow sous Windows, sans Docker ?
Serait-il difficile d'offrir un processus de construction CMake qui fonctionne à la fois pour Linux et Windows (création d'un projet MVS) ?

J'ai écrit des instructions pour installer tensorflow sur une machine virtuelle CentOS. Si vous rencontrez des difficultés pour travailler avec Docker, cela pourrait être votre solution.

Les gars, si vous installez bash sur Windows à l'aide du nouvel aperçu du développeur, tensorflow s'installe et fonctionne un peu. Vous pouvez donc l'utiliser pour l'exécuter sur Windows sans utiliser docker. (Et cela améliorerait probablement le bash pour Windows car plus de gens l'utilisent.)

C'est fantastique.
L'utilisation de bash sous Windows était mon plus grand espoir d'utiliser tensorflow sous Windows.

La plus grande question est de savoir si vous pouvez utiliser les pilotes GPU ?

C'est la principale raison pour laquelle les gens demandent une installation native de tensorflow dans Windows. Sinon, la prise en charge du processeur est parfaite via docker ou une machine virtuelle Linux

Je n'en ai aucune connaissance, mais nous devrions demander à l'équipe Windows à ce sujet.
Les gens ont fait fonctionner des programmes GUI à travers Windows mais cela n'utilise pas le processeur
GPU donc je pense qu'il n'a pas accès actuellement
Le 19 avril 2016 à 17h37, "hayder78" [email protected] a écrit :

C'est fantastique.
L'utilisation de bash sous Windows était mon plus grand espoir d'utiliser tensorflow sous Windows.

La plus grande question est de savoir si vous pouvez utiliser les pilotes GPU ?

C'est la principale raison pour laquelle les gens demandent une installation native de tensorflow
dans les fenêtres. Sinon, le support du processeur est très bien via docker ou Linux
machine virtuelle


Vous recevez ceci parce que vous avez commenté.
Répondez directement à cet e-mail ou consultez-le sur GitHub
https://github.com/tensorflow/tensorflow/issues/17#issuecomment -212156142

Ouais. J'ai lu que les programmes GUI exécutés via bash dans Windows utiliseront un pilote GPU générique. Ce qui signifie qu'il n'utilise pas les pilotes nvidia.

Prions pour que Google travaille sur un tensorflow sous Windows sous le capot.

Je pense que bash pour Windows a besoin de temps pour être suffisamment mature et sans bogue. En attendant, VM et docker seront probablement un meilleur choix.

Je fais maintenant un choix entre tensorflow et CNTK.

+1 pour le support natif de Windows, y compris le GPU.

Le lien pour suivre les problèmes Windows de Bazel fourni par @davidzchen ne fonctionne pas, le bon est https://github.com/bazelbuild/bazel/labels/category%3A%20windows

(Je sais que tout le monde espère le support natif de Windows + GPU, j'attends aussi, mais nous devons attendre que Bazel pour Windows soit stable, aider aux tests et contribuer à Bazel accélérera probablement le processus)

un autre +1 pour Windows avec prise en charge GPU. Bien que TF semblait une meilleure option, j'ai dû passer à Theano en raison du manque de prise en charge du GPU sur Windows. Ce serait bien s'il y avait une mention sur la feuille de route de TF indiquant si le support sera disponible dans les futures versions, car cela aidera à la prise de décision de nombreux chercheurs.

+1

+1

Une nouvelle intéressante : @shanselman a écrit un article de blog sur l'exécution de TensorFlow sur Bash pour Windows.

Nous avons toujours l'intention de fournir un support Windows de première classe, mais les utilisateurs aventureux pourraient trouver que c'est un bon moyen de démarrer entre-temps.

@mrry Salut Derek Murray,
Je suis heureux d'apprendre de votre part - en tant qu'ingénieur logiciel Google - que vous avez l'intention de fournir un support Windows natif pour tensorflow. Faites-vous partie de l'équipe de développeurs tensorflow de Google ?

Au moins j'ai un espoir maintenant.

Une estimation approximative quand sera une version bêta ?

Un autre +1, très intéressé de voir cela se produire. Si et quand Bazel s'exécute réellement sur Windows, TF compilera-t-il réellement sur la plate-forme ? Ou existe-t-il également d'autres problèmes de portabilité, par exemple le réseau, les appels de système de fichiers ?

+1

Les amis, pourriez-vous s'il vous plaît utiliser les réactions GitHub plutôt que d'écrire "+1" dans un nouveau message ? À l'heure actuelle, il produit beaucoup de spam pour les personnes qui se sont abonnées aux mises à jour de ce fil. Merci!

+1 pour les réactions GitHub !

Eh bien, bazel semble fonctionner la plupart du temps sur Windows maintenant, à part quelques erreurs de nom (caractères illégaux ou commandes très longues). Il y a certainement des problèmes pour obtenir un tensorflow Windows fonctionnel autre que le simple fait d'avoir un bazel fonctionnel. Toutes les erreurs que j'ai eues jusqu'à présent sont du type :
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.
Je suppose donc que les règles de construction doivent d'abord être mises à jour pour Windows.

La feuille de route officielle de tensorflow :
https://github.com/tensorflow/tensorflow/blob/master/tensorflow/g3doc/resources/roadmap.md

Le support de Windows fait partie de la feuille de route du futur proche qui est ciblée pour les prochains mois !

@Sabrewarrior J'ai essayé de construire le tensorflow sur Windows en utilisant bazel, mais le fichier de configuration donne juste quelques erreurs. Je me demande si vous avez modifié ou ajouté des parties de ce fichier pour qu'elles soient prises en charge sur Windows

@Fhrozen https://github.com/Sabrewarrior/tensorflow/blob/test/tf_win_env.txt
Ce sont mes packages installés lorsque j'ai exécuté configure sans aucun changement. Je l'exécute sur msys2 avec python 2.7 sur une machine Windows 10.

@Sabrewarrior merci pour la réponse. Je l'ai vérifié, les espaces dans le nom du dossier étaient mon problème.
Maintenant, j'ai cette erreur sur la version cuda.

`Veuillez spécifier quel gcc nvcc doit utiliser comme compilateur hôte. [La valeur par défaut est /mingw64/bin/gcc] :
Veuillez spécifier la version du SDK Cuda que vous souhaitez utiliser, par exemple 7.0. [Laisser vide pour utiliser le système par défaut] : 7.5
Veuillez spécifier l'emplacement où la boîte à outils CUDA 7.5 est installée. Reportez-vous au fichier README.md pour plus de détails. [La valeur par défaut est /usr/local/cuda] : C:/CUDA/v7.5
Veuillez spécifier la version de Cudnn que vous souhaitez utiliser. [Laisser vide pour utiliser le système par défaut] : 4.0.7
Veuillez spécifier l'emplacement où la bibliothèque cuDNN 4.0.7 est installée. Reportez-vous au fichier README.md pour plus de détails. [La valeur par défaut est C:/CUDA/v7.5] : cuda/
Veuillez spécifier une liste de capacités de calcul Cuda séparées par des virgules avec lesquelles vous souhaitez créer.
Vous pouvez trouver la capacité de calcul de votre appareil sur : https://developer.nvidia.com/cuda-gpus.
Veuillez noter que chaque capacité de calcul supplémentaire augmente considérablement votre temps de génération et votre taille binaire.

La configuration de Cuda inclut
Configurer 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 : 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.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 : fallo 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 : terminer avec le statut 255 ; abandon
`

@Fhrozen AFAIK, vous ne pouvez pas utiliser gcc comme compilateur pour CUDA sous Windows. Seul le compilateur Visual C++ est pris en charge par CUDA sous Windows ( voir ici ).

+1

DE NOUVEAU! MERCI DE NE PAS FAIRE DE _+1_ COMMENTAIRES INUTILES ! UTILISEZ LES RÉACTIONS GITHUB À LA PLACE !

+1

stop +1!!!

Je répète, arrêtez +1 pour $%{^¥ ! Quiconque commente +1 après ceci est un idiot ! :-P Utilisez les réactions de Github, merde !

Quelqu'un pourrait-il me donner une sorte de statut de modérateur ? Je voudrais nettoyer ce problème des commentaires +1 inutiles.

Bonjour l'équipe. J'essaie de comprendre quel travail doit être fait pour pouvoir utiliser TensorFlow sous Windows (10, je suppose) avec le support GPU via CUDA. D'après ce que je sais jusqu'à présent, cela exclut Docker car Docker ne peut pas accéder au GPU de l'hôte et signifie que nous devons utiliser le cl.exe de Visual Studio (ce que Bazel pour Windows utilise).

À partir de là, est-ce seulement Bazel pour Windows qui doit progresser ? Est-ce la seule dépendance insatisfaite ici ? Heureux d'être corrigé sur n'importe quel point.

Si je veux activer le Bash sous Windows, je dois vérifier le sous-système Windows pour Linux (bêta) , n'est-ce pas ? Mais je ne trouve pas ce menu dans la boîte de dialogue Fonctionnalités de Windows. Je suis le guide ici et ici .
Dois-je cocher la case Hyper-V dans la boîte de dialogue Fonctionnalités Windows ?
J'ai également activé le mode développeur dans les paramètres.

Il semble que je doive abandonner ces fonctionnalités de Windows beta bash et utiliser Docker à contrecœur ?

@ off99555 Vous êtes Windows 10 devrait avoir la dernière version de prévisualisation (Fast Ring). Vérifiez votre build, s'il est inférieur à ~14000, alors vous n'avez pas encore cette fonctionnalité. (Cette mise à jour sera GA le 2 août)

Bonjour,

Pour la prise en charge de Tensorflow Windows, allons-nous pouvoir créer des binaires Windows qui ne sont pas des binaires msys2 ? Cela a du sens car il serait possible d'effectuer un déploiement réel sur la plupart des machines des utilisateurs.

Si ce n'est pas possible, pouvons-nous avoir un moyen de simplement déployer une version simplifiée de la passe de prédiction/passe avant de la bibliothèque à cette fin ? Je peux très bien m'entraîner sur Linux, mais pour le processus de prédiction proprement dit, j'aimerais pouvoir déployer sur une machine Windows normale sans msys2. Est-ce sur la feuille de route ?

Si vous regardez ce que fait CNTK :
https://github.com/Microsoft/CNTK/wiki/Native-Evaluation-Interface

Ils ont un moyen beaucoup plus simple d'effectuer une évaluation/prédiction à l'aide d'une DLL simplifiée. Pouvons-nous avoir quelque chose comme ça dans Tensorflow également pour Windows (et d'autres plates-formes, je peux imaginer, le trouveront très utile).

Merci!

Je ne comprends pas pourquoi vous avez ajouté la prise en charge de Mac OS et non de Windows. Vous ne pouvez pas utiliser le GPU CUDA normal sur la plupart des Mac. C'est une plate-forme inutile pour la formation en apprentissage en profondeur

L'équipe peut-elle nous dire s'il vous plaît des estimations pour le support Windows natif ?

@mrry y travaille activement et peut fournir plus de mises à jour à ce sujet si vous avez des questions spécifiques.

@aselle Merci pour la mise à jour utile, très appréciée !

@mrry Bonjour, comment les spécificités de l'implémentation de Windows vont-elles être déployées ?

1) Aurons-nous (idéalement) une solution VS2015 que nous pourrons construire avec nos applications/outils ? Une méthode cmake qui génère la solution VS fonctionne également.

2) S'agira-t-il d'une bibliothèque liée statiquement ou dynamiquement ?

3) Y aura-t-il un module/une bibliothèque de passage/d'évaluation légers que nous pourrons utiliser pour le déploiement avec nos outils/applications ?

La ressource actuelle que j'ai pu trouver concernant le déploiement de tensorflow avec une application autonome C++ est ici :
https://medium.com/jim-fleming/loading-a-tensorflow-graph-with-the-c-api-4caaff88463f#.7ejb8h7zk

Ma principale préoccupation est ce qui est indiqué ici:
"La construction est énorme, atteignant 103 Mo, même pour cet exemple simple. Une grande partie de cela concerne TensorFlow, la prise en charge de CUDA et de nombreuses dépendances que nous n'utilisons jamais. Cela est particulièrement vrai car l'API C++ ne prend pas en charge beaucoup de fonctionnalités pour le moment, car une grande partie de l'API TensorFlow est uniquement Python. Il existe probablement un meilleur moyen de se connecter à TensorFlow (par exemple, une bibliothèque partagée), mais je ne l'ai pas encore fait fonctionner.

S'il existe un meilleur moyen de contourner la liaison d'une grande bibliothèque statique, ce sera formidable, en particulier aux fins d'une passe/évaluation en avant qui n'a pas vraiment besoin du support GPU.

Merci!

@mrry Comment les autres peuvent-ils s'impliquer là-dedans ? Comment pouvons-nous vous aider à faire fonctionner TensorFlow sous Windows dès que possible ? Au moins, nous pouvons aider avec les tests et les rapports de bogues.

+1

Des mises à jour sur windows ? qu'est-ce qui est nécessaire pour le faire fonctionner nativement avec un GPU disponible également ?

Nous avons besoin du support Windows !!!!
L'équipe peut-elle nous dire s'il vous plaît des estimations pour le support Windows natif ?

Pas de fenêtres ? Pourquoi? au moins les versions CPU uniquement ?

Voici un résumé de ce que je pense qui se passe dans ce problème de support Windows :

Tensorflow nécessite que Bazel soit construit à partir des sources. Si je ne me trompe pas, Bazel est un système de construction comme GNU Make, mais pas un compilateur.

D'après ce que j'ai vu en parcourant brièvement le code, le code source de Tensorflow lui-même utilise principalement la bibliothèque C++ standard pour des choses comme le threading, il ne devrait donc pas y avoir de problème à compiler sous Windows, les bibliothèques tierces essentielles qu'il utilise ont toutes un support Windows.

Par conséquent, je pense que le principal problème réside dans le manque de méthode de construction pour Windows plutôt que dans le code source lui-même. Il y a des travaux sur l'utilisation de CMake pour construire au lieu de Bazel mais pas encore terminés. Si quelqu'un peut traduire les règles de construction de Bazel en CMake, je pense que nous pourrons le construire sur Windows.

La prise en charge stable de Bazel pour Windows a encore un long chemin à parcourir .

Veuillez me corriger si j'ai fait une erreur ici.

@eiva Si vous souhaitez une prise en charge uniquement du processeur, vous pouvez exécuter Tensorflow dans une machine virtuelle. Je l'ai exécuté sur Ubuntu 14 sur un hôte Windows 10 sans problème.

@rongjiecomputer Je me demande honnêtement pourquoi ils ont utilisé Bazel du tout...

@eiva Il existe également un conteneur Docker prêt à l'emploi que vous pouvez utiliser sur un hôte Windows. Fonctionne hors de la boîte. Ce n'est tout simplement pas très amusant de travailler avec tensorflow sans support GPU. Pour les trucs sympas, au moins un seul GPU est requis. Vous pouvez bien sûr exécuter des éléments de base comme la régression linéaire ou logistique sans GPU. Mais ce n'est tout simplement pas le costume long de tensorflow. Il est conçu pour les tâches d'apprentissage en profondeur qui nécessitent essentiellement un GPU.

@marklit je l'utilise déjà de cette façon, mais la plupart de mon application s'exécute sur Windows, et la plupart du développement se passe sur Windows... Ce n'est pas facile de changer d'OS chaque fois que je fais quelque chose avec différentes parties du système...

@Loo Rong
Votre spéculation est juste!
https://www.quora.com/Why-did-Google-decide-to-use-Bazel-with-TensorFlow/answer/Derek-Murray-3

Le 12 septembre 2016 à 12h17, "Eugene Ivanchenko" [email protected]
a écrit:

@marklit https://github.com/marklit je l'utilise déjà de cette façon, mais la plupart
de mon application s'exécutant sur Windows, et la majeure partie du développement est en cours
Windows... Ce n'est pas facile de changer de système d'exploitation à chaque fois que je fais quelque chose avec
différentes parties du système...


Vous recevez ceci parce que vous êtes abonné à ce fil.
Répondez directement à cet e-mail, consultez-le sur GitHub
https://github.com/tensorflow/tensorflow/issues/17#issuecomment -246239719,
ou couper le fil
https://github.com/notifications/unsubscribe-auth/AEBIBhhA-t1MrFnddm5k-wER0KAm_p30ks5qpNJTgaJpZM4GexU4
.

Merci pour tout l'intérêt que vous portez à TensorFlow sous Windows ! Nous progressons sur deux fronts principaux :

  1. Adaptation des fichiers Bazel BUILD de TensorFlow pour qu'ils fonctionnent sous Windows. Vous avez peut-être vu des demandes d'extraction récentes de @meteorcloudy dans cette direction (comme # 4449), et notre plan éventuel est d'avoir un support complet pour la construction de TensorFlow, en utilisant Bazel, sur Windows.
  2. Modification de l'environnement d'exécution TensorFlow pour générer avec le compilateur Visual C++ 2015. J'ai travaillé sur cet effort, et le diff entre HEAD et ma branche de travail se réduit chaque jour. Pour l'instant, j'utilise CMake pour créer TensorFlow à l'aide de Visual Studio/MSBuild, mais je prévois de passer à Bazel lorsque les fichiers BUILD fonctionneront sur plusieurs plates-formes.

Nous prévoyons de faire une annonce prochainement, avec un package PIP binaire et des instructions pour créer TensorFlow sous Windows. En attendant, nous mettrons à jour ce numéro lorsque nous aurons des nouvelles à partager.


Répondre aux questions spécifiques de @kestrelm :

  1. J'utilise actuellement CMake pour générer une solution VS avec plusieurs projets, et nous fusionnerons cela dans le cadre du point (2) ci-dessus.
  2. À tout le moins, nous pouvons générer une DLL d'extension Python contenant le runtime et tous les noyaux (l'équivalent de tensorflow/python/_pywrap_tensorflow.so ), et fournir des instructions pour construire un binaire C++ lié statiquement (l'équivalent de tensorflow/cc/tutorials/example_trainer.cc ).
  3. Nous pouvons facilement créer une version du runtime avec ces fonctionnalités (quelque chose comme le sous-ensemble Android de noyaux liés à l'inférence dans une DLL derrière l'API C), bien qu'il ne fasse probablement pas partie de la version initiale. Il sera cependant possible de modifier les fichiers de construction pour créer une cible possédant ces propriétés, et je serai heureux d'aider quiconque essaie de le faire.

Super travail, @mrry !

Nous prévoyons de faire une annonce prochainement, avec un package PIP binaire et des instructions pour créer TensorFlow sous Windows

Pouvez-vous donner une estimation approximative de la date à laquelle cette annonce aura lieu ? Je ne peux pas attendre !

@mrry : Derek, bonne mise à jour. Avez-vous une version binaire du GPU (BETA) avant que le reste du framework makefile/compilateur ne se solidifie ? Au moins, les gens pourraient essayer contre l'API Python ...

Chers gourous :

J'ai essayé de construire tensorflow à partir du code source sur Windows 10. Il signale que bazel est déjà pris en charge sur Windows bien qu'il ne soit peut-être pas stable. Néanmoins, j'en ai un qui fonctionne.
Cependant, lorsque j'ai essayé de construire tensorflow, il y a deux problèmes, d'abord cela indique que "bazel clean --expunge_async" a échoué avec un problème d'autorisation. Je parie que ce n'est pas si grave. Le problème suivant est un peu vital puisqu'il bloque le build. il rapporte :

...
INFO : 1 cible trouvée...
INFO : Écrire une explication des reconstructions dans le "fichier journal"
ERREUR : fichier d'entrée manquant '@local_config_cuda// cuda:lib64/libcublas.so '.
ERREUR : C:/tensorflow/tensorflow/tools/pip_package/ BUILD:23 :1 : //tensorflow/tools/pip_package :build_pip_package : fichier d'entrée manquant '@local_config_cuda// cuda:lib64/libcublas.so '.
Cible //tensorflow/tools/pip_package :build_pip_package n'a pas pu être construit
ERREUR : C:/tensorflow/tensorflow/tools/pip_package/ BUILD:23 : 1 1 fichier(s) d'entrée n'existe pas.
INFO : Temps écoulé : 34.644s, Chemin critique : 1.52s

En fait, pendant le processus de configuration, j'ai délibérément désactivé le support GPU, alors pourquoi essaie-t-il de charger la bibliothèque dynamique liée à CUDA ?

Depuis que je désactive la prise en charge du GPU, les bibliothèques de stub sont correctement créées avec une taille nulle et avec l'extension de fichier DLL. Cependant, comme dans le message d'erreur, je ne sais pas d'où vient l'exigence de charger les bibliothèques liées à CUDA. J'ai vérifié plusieurs fichiers mais je n'ai toujours aucune idée. En attendant, je pense aussi que le fichier est mal écrit, car il devrait rechercher des fichiers DLL à la place des fichiers SO. Cependant je n'ai toujours aucune idée.

Quelqu'un a une idée sur ce problème ? Merci beaucoup.

Comme vous l'avez peut-être vu avec le PR #4778 fusionné, nous avons maintenant un support préliminaire pour la construction de TensorFlow sur Windows à l'aide de CMake. Il prend en charge la création d'une version CPU uniquement de TensorFlow à utiliser dans le programme d'entraînement d'exemple C++ et un package PIP à utiliser en Python. Pour plus de détails et d'instructions sur la création de TensorFlow à partir de la source sous Windows, consultez le fichier CMake readme .

Il s'agit d'un code de qualité alpha, et nous nous attendons à ce qu'il y ait des bogues dans cette version initiale. Si vous en trouvez un, veuillez créer un nouveau problème GitHub pour le problème spécifique.

Notre objectif est désormais d'obtenir la prise en charge GPU de TensorFlow sous Windows et de passer à une version commune basée sur Bazel pour Windows et Linux. Si vous avez d'autres demandes de fonctionnalités, veuillez soulever un nouveau problème GitHub.

J'utilisais ce projet prédéfini https://github.com/shishaochen/TensorFlow-0.8-Win , mais il ne prend pas en charge le GPU.

@mrry Bonjour, Derek, merci pour votre contribution à TensorFlow.
@cesardelgadof Salut, Cesar, merci pour tes informations.

Cependant, je pense que l'obstacle qui entravait auparavant la construction de TensorFlow sur la plate-forme Windows est l'indisponibilité de bazel sur Windows. Depuis maintenant, il est disponible, même s'il n'est peut-être pas stable, donc à mon avis, nous ferions mieux d'essayer de résoudre le problème lors de la construction de TensorFlow à l'aide de bazel.

Personnellement, je pense que les gars de Google, s'ils ont l'intention de prendre en charge la construction native sur Windows, ils choisiront probablement Bazel. Et une fois la solution officielle disponible, je suppose que les gens passeront de cmake à bazel. Donc s'il y a un tel jour, pourquoi nous travaillons ensemble pour que le jour arrive plus tôt ?

Néanmoins, je vais essayer la version cmake, et j'espère que quelqu'un d'autre essaiera également le système de construction bazel. Nous pouvons probablement comprendre d'où vient la mauvaise erreur et localiser le fichier de configuration mal écrit.

Merci pour vous tous.

@mrry Merci pour la contribution majeure ! J'ai essayé de suivre vos instructions. Tous semblent fonctionner parfaitement (pendant environ 45 minutes) jusqu'à ce qu'il échoue avec :

La cible "BeforeGenerateProjectPriFile" répertoriée dans un attribut BeforeTargets dans "C:\Program Files (x86)\MSBuild\Microsoft\NuGet\Microsoft.NuGet.targets (186,61)" n'existe pas dans le projet et sera ignorée.
Projet de construction terminé "H:\PycharmProjects\tensorflow\tensorflow\contrib\cmake\build\tf_python_build_pip_package.vcxproj" (cibles par défaut) - ÉCHEC.

"H:\PycharmProjects\tensorflow\tensorflow\contrib\cmake\build\tf_python_build_pip_package.vcxproj" (cible par défaut) (1) ->
"H:\PycharmProjects\tensorflow\tensorflow\contrib\cmake\build\pywrap_tensorflow.vcxproj" (cible par défaut) (3) ->
"H:\PycharmProjects\tensorflow\tensorflow\contrib\cmake\build\tf_core_cpu.vcxproj" (cible par défaut) (4) ->
"H:\PycharmProjects\tensorflow\tensorflow\contrib\cmake\build\tf_core_framework.vcxproj" (cible par défaut) (5) ->
(cible CustomBuild) ->
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets(171,5) : erreur MSB6006 : "cmd.exe" s'est terminé avec le code 1. [H:\PycharmProjects \t
ensorflow\tensorflow\contrib\cmake\build\tf_core_framework.vcxproj]

30 Warning(s)
1 Error(s)

@laudney Merci d'avoir essayé, et je suis désolé de voir que vous obtenez une erreur ! Étant donné que ce numéro compte de nombreux abonnés, j'ai créé le numéro 4798 pour suivre le correctif de ce problème, alors poursuivons la discussion là-bas.

@mingyr Nous espérons que TensorFlow sera construit sur Windows avec Bazel dès que possible. @meteorcloudy a fait un travail remarquable pour que cela se produise, et il vient d'envoyer le PR #4796, qui permet à Bazel de construire //tensorflow/cc:tutorials_example_trainer sur Windows. Nous nous efforcerons de fusionner cela bientôt.

@mrry Merci pour # 4798, il se construit maintenant correctement, a également testé l'installation de python whl et aucun problème n'a été trouvé jusqu'à présent.

J'espère voir bientôt tensorflow dans conda.

Utilisez Tensorflow sur des environnements virtualisés car Docker/VirtualBox est une très mauvaise solution. Tensorflow devrait fonctionner sur Windows de manière native. (Et puisque le plus est codé en Python ne devrait pas poser de problème créer une distribution pour Windows.)

Salut à tous! Comme mentionné par @mrry , je travaille sur la construction de TensorFlow Windows avec Bazel. Avec PR #4796 et PR #4874 fusionnés, l'exemple d'entraînement C++ s'appuie désormais sur Windows avec Bazel 0.3.2 !

Voici une brève instruction sur la façon de créer TF avec Bazel sous Windows :

  • Installez Bazel sur Windows ( instructions d'installation )
  • Configurer l'environnement dont Bazel a besoin pour créer du C++ avec MSVC
  • Clone TF repository, exécutez ./configure dans MSYS
  • Courez bazel build -c opt --cpu=x64_windows_msvc --host_cpu=x64_windows_msvc //tensorflow/cc:tutorials_example_trainer --verbose_failures

Pour plus de commodité, vous pouvez mettre les options de construction dans ~/.bazelrc , la mienne ressemble à :

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 problème connu est que le script wrapper MSVC de Bazel ne prend pas en charge python3 dans Bazel 0.3.2, mais il a déjà été corrigé sur https://github.com/bazelbuild/bazel/commit/ce5c33dd7e96aff0cf1eb993edd41a5fe8c423f2. Vous pouvez le résoudre en définissant BAZEL_PYTHON sur un binaire python 2.7 ou en construisant Bazel à partir de HEAD.

Construire l'exemple d'entraînement C++ avec Bazel prend environ 20 minutes sur ma machine (Windows 7, CPU 2,9 GHz, RAM 64 Go), une construction incrémentielle après avoir modifié un fichier source (c'est-à-dire array_ops.cc ) prend environ 1 minute.

Je fais également des progrès sur la construction du package python PIP sur Windows avec Bazel, j'enverrai un PR dès que possible.

Veuillez essayer de créer TensorFlow avec Bazel sous Windows et dites-nous ce que nous pourrions améliorer !

@meteorcloudy , Salut Yun :
L'exemple d'entraînement C++ doit être construit par le binaire bazel pré-construit installé sur Windows, ou puis-je synchroniser avec la dernière version git de bazel et utiliser le bazel personnalisé ?

En fait, je choisis la deuxième méthode, utiliser le client build bazel, cependant, il se plaint comme suit :

ERREUR : C:/tensorflow/tensorflow/core/ BUILD:108 :1 : la sortie 'tensorflow/core/exampl e/example.pb.h' n'a pas été créée.
ERREUR : C:/tensorflow/tensorflow/core/ BUILD:108 :1 : la sortie 'tensorflow/core/exampl e/example_parser_configuration.pb.h' n'a pas été créée.
ERREUR : C:/tensorflow/tensorflow/core/ BUILD:108 :1 : la sortie 'tensorflow/core/exampl e/example.pb.h' n'a pas été créée.
ERREUR : C:/tensorflow/tensorflow/core/ BUILD:108 :1 : la sortie 'tensorflow/core/exampl e/feature.pb.h' n'a pas été créée.
......

Procédures pour la construction que j'ai prises :
$ cd c:/tensorflow
$ export JAVA_HOME="$(ls -d C:/Program\ Files/Java/jdk* | sort | tail -n 1)"
$ export BAZEL_SH=c:/tools/msys64/usr/bin/bash.exe
$ export BAZEL_VS="C:/Program Files (x86)/Microsoft Visual Studio 14.0"
$ export BAZEL_PYTHON=C:/Python27/python.exe
$ export PATH=$PATH:/c/Python27:/c/Python27/Scripts:/c/tools/swigwin-3.0.10:/c/bazel/output

./configure

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

Toute suggestion?

Merci.

@meteorcloudy Salut Yun,

J'ai suivi une procédure similaire mais j'obtiens l'erreur suivante :
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 : processus terminé avec l'état 1.
azel-out/vc_14_0_x64-opt/genfiles/external/protobuf/src : avertissement : le répertoire n'existe pas.

J'ai vérifié les dossiers et il n'y a pas de répertoire src dans protobuf. De plus, il n'y a pas de dossier grpc dans bazel_out/host/bin/external/ (donc pas de fichier grpc_cpp_plugin.exe).

cette erreur est suivie d'un tas d'erreurs indiquant que les fichiers dans tensorflow/core ne sont pas créés

Toute idée de comment résoudre ce problème?

Merci

@mingyr @karthiek Merci d'avoir essayé de construire TF avec Bazel !
Malheureusement, selon http://ci.bazel.io/job/TensorFlow/ , la construction de TF échoue même sous Linux avec Bazel à HEAD avec une erreur similaire que vous avez donnée. Nous le réparons, en attendant, pouvez-vous réessayer avec Bazel 0.3.2 ?

@meteorcloudy Bonjour Yun :

Que voulez-vous dire par "pouvez-vous réessayer avec Bazel 0.3.2" ?

Vous voulez dire le binaire Windows officiel préconstruit, ou nous pouvons nous synchroniser avec la dernière version de bazel et utiliser ma version ?

En fait, je me synchronise déjà avec la dernière version de bazel et j'utilise ma version. Si vous indiquez que je devrais essayer le binaire précompilé officiel pour voir si le problème est toujours en suspens, merci de bien vouloir me le faire savoir.

BR

@mingyr Oui, je veux dire le "binaire officiel préconstruit". J'ai la même erreur après la synchronisation avec HEAD.
Veuillez consulter https://github.com/bazelbuild/bazel/issues/1929

@meteorcloudy Salut, Yun

Merci pour la suggestion. J'ai essayé d'utiliser le binaire pré-compilé 0.3.2 et j'ai pu compiler et générer le fichier tutorilas_example_trainer.exe.

@karthiek Je suis ravi que tu aies réussi ! Combien de temps at-il fallu? Est-ce plus rapide que la version CMake ?

@meteorcloudy Cela a pris environ 15 minutes (processeur Intel(R) Core(TM) i7-6700 à 3,40 GHz). C'est hier encore que j'ai eu la nécessité de créer un flux tenseur sur les fenêtres. Donc, j'ai directement essayé la dernière méthode que vous avez suggérée. Je n'ai pas essayé de le construire avec CMake.

Salut, j'ai essayé de suivre l'approche @meteorcloudy mais j'ai fini avec des erreurs comme ci-dessous. Quelqu'un pourrait-il aider?

bazel build -c opt --cpu=x64_windows_msvc --host_cpu=x64_windows_msvc //tensorflow/cc:tutorials_example_trainer --verbose_failures
INFO : Cible analysée //tensorflow/cc:tutorials_example_trainer.
INFO : 1 cible trouvée...
ERREUR : C:/Programming/tensorflow/tensorflow/core/ BUILD:1064 :1 : exécution de genrule //tensorflow/ core:version_info_gen a échoué : bash.exe a échoué : erreur lors de l'exécution de la commande
cd C:/tools/msys64/var/tmp/Bazel/s5nfxnhX/execroot/tensorflow
SET PATH=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:\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 --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 : processus terminé avec l'état 1
Traceback (dernier appel le plus récent) :
Fichier "tensorflow/tools/git/gen_git_source.py", ligne 258, dans
générer (args. générer)
Fichier "tensorflow/tools/git/gen_git_source.py", ligne 210, dans generate
git_version = get_git_version(data["path"])
Fichier "tensorflow/tools/git/gen_git_source.py", ligne 151, dans get_git_version
"--long", "--sale", "--tags"]).strip()
Fichier "C:\WinPython-64bit-2.7.10.2\python-2.7.10.amd64\lib\subprocess.py", ligne 566, dans check_output
process = Popen(stdout=PIPE, _popenargs, *_kwargs)
Fichier "C:\WinPython-64bit-2.7.10.2\python-2.7.10.amd64\lib\subprocess.py", ligne 710, dans init
erreur de lecture, erreur d'écriture)
Fichier "C:\WinPython-64bit-2.7.10.2\python-2.7.10.amd64\lib\subprocess.py", ligne 958, dans _execute_child
informations de démarrage)
Erreur Windows : [Erreur 2] Le système ne peut pas trouver le fichier spécifié
ERREUR : C:/tools/msys64/var/tmp/Bazel/s5nfxnhX/external/jpeg_archive/ BUILD:74 :1 : la sortie déclarée 'external/jpeg_archive/jconfig.h' n'a pas été créée par genrule. C'est probablement parce que la genrule n'a pas réellement créé cette sortie, ou parce que la sortie était un répertoire et que la genrule a été exécutée à distance (notez que seul le contenu des sorties de fichier déclarées est copié à partir des genrules exécutées à distance)
ERREUR : C:/tools/msys64/var/tmp/Bazel/s5nfxnhX/external/gif_archive/ BUILD:35 :1 : la sortie déclarée 'external/gif_archive/windows/unistd.h' n'a pas été créée par genrule. C'est probablement parce que la genrule n'a pas réellement créé cette sortie, ou parce que la sortie était un répertoire et que la genrule a été exécutée à distance (notez que seul le contenu des sorties de fichier déclarées est copié à partir des genrules exécutées à distance)
Échec de la construction de la cible //tensorflow/cc:tutorials_example_trainer
INFO : Temps écoulé : 4,967 s, chemin critique : 0,96 s
FAILED : la construction ne s'est PAS terminée avec succès

@bssrdf vos symptômes ressemblent à https://github.com/bazelbuild/bazel/issues/1463.
Il s'agit d'un problème connu de bazel sous Windows que nous cassons si votre espace de travail n'est pas sur le lecteur C: .

Si tel est le cas, la solution de contournement consiste à créer une jonction - si votre paiement tensorflow est dans d:\src\tensorflow , ce qui suit devrait fonctionner

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

Voir https://github.com/bazelbuild/bazel/issues/1463#issuecomment -251967323
Désolé pour le dérangement, nous corrigeons cela dès que possible.

@bssrdf hmm après un second coup d'œil, ce n'est peut-être pas le cas - se pourrait-il que vous n'ayez pas git dans PATH?

@meteorcloudy Salut, Yun :

Je confirme également qu'il n'y a aucun problème à compiler l'exemple d'entraînement C++ en utilisant la version binaire bazel pré-compilée 0.3.2.

Mon ordinateur portable est ancien et entre-temps, il exécute d'autres tâches, de sorte que le temps de compilation est un non-sens du point de vue de l'analyse comparative.

Merci pour votre travail et regardez loin pour compiler le package python PIP sous Windows

BR

@mingyr C'est super !
Mais juste une notification pour tout le monde, l'exemple de formateur n'est pas constructible sur TF HEAD, car mon correctif a été annulé à be3bc472a52571a83f048479d6a4fa528b5a495e pour une raison quelconque.
La bonne nouvelle est que la construction d'un package Python PIP avec Bazel est proche ! S'il vous plaît voir PR # 4942

@dslomov merci pour la réponse. J'ai dû résoudre le problème d'espace de travail bazel non-c: drive comme vous l'avez suggéré. J'ai installé git pour Windows et git peut être vu dans le PATH par MSYS2.

Je viens de relancer la commande bazel build et ça marche maintenant, comme un miracle. Je ne sais pas ce qui s'est passé hier. Quoi qu'il en soit, ce n'est qu'une autre confirmation du succès sur Windows 10 home, VS 2015 community edition, bazel 0.3.2 préconstruit et Winpython-2.7.10.2

Merci beaucoup pour le travail de Yun.

@meteorcloudy , est-il possible de construire la version GPU en suivant la procédure (avec des changements dans la construction bazel bien sûr) ?

@mrry Salut Derek, merci pour ta contribution, mais j'ai ce problème avec tensorboard, ça ne marche pas :

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 Probablement pas, car le code ne prend pas encore en charge le GPU sous Windows. @mrry a fait tout le travail de compilation du code TF avec MSVC, et il s'est concentré sur la correction de la prise en charge du GPU.

Avons-nous une sorte de supposition éclairée sur l'ETA pour une utilisation en production ?

Comme cela semble pertinent pour les personnes ici utilisant Bazel sous Windows; J'ai créé un package chocolaté pour faciliter l'installation. https://chocolatey.org/packages/bazel. Veuillez l'essayer et s'il y a des problèmes (c'est _est_ nouveau), tweetez ou soulevez un problème sur bazelbuild/bazel.

Le support GPU est terminé grâce à @mrry et @guschmue.
Les instructions seront mises à jour sur readme .

Quelqu'un a-t-il pu compiler sous Windows et créer un package PIP ? Merci. :)

master (66f979714c9a8582059f383ec1505d13c9e8c523) devrait être correctement construit pour le processeur et le processeur graphique de Windows. Les instructions sont dans tensorflow/contrib/cmake/README.md (utilisez cmake 3.6 pour l'instant).

Tensorboard n'est pas inclus ?, car il ne fonctionne pas :

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'

Certains modules python manquent dans le pip : des exemples, certains de contrib et de tensorboard, ne sont pas copiés dans la roue lors de la construction avec cmake.
Permettez-moi de vérifier ce qu'il s'agit juste de l'ajouter avec une option à tf_python.cmake ou s'il y a des complications.

J'ai compilé tensorflow pour python conformément aux instructions, mais j'obtiens un plantage provenant de cudnn lors de l'utilisation tf.nn.conv2d sur mon GPU.

L'exemple de code qui provoque le crash est

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

Cela provoque le plantage du processus python et donne cette sortie dans la console 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)

En essayant différentes versions de cudnn64_5.dll , j'ai pu faire fonctionner le code une fois et confirmé que le GPU était utilisé, mais même après avoir essayé toutes les versions de cudnn que j'ai téléchargé, je n'ai pas eu de chance de le faire fonctionner une deuxième fois.

essayé votre script et cela fonctionne pour moi. Nous avons testé uniquement avec cudnn5.1, tout ce qui est plus ancien, je ne le sais pas.
J'obtiendrais une installation propre de cudnn5.1, je construirais avec cela et je m'assurerais que cudnn64_5.dll dans PATH est 5.1.
Une autre chose à vérifier : votre mémoire libre est un peu inférieure à ce à quoi je m'attendais - y a-t-il peut-être un autre python en cours d'exécution qui a ouvert l'appareil ?

J'ai essayé une reconstruction propre avec un cudnn frais téléchargé et sur le PATH ( cudnn-8.0-windows10-x64-v5.1 ) mais pas de cigare. cudnn64_5.dll de ce téléchargement est 'Version du fichier' : 6.14.11.8000 et a 'Description du fichier' : NVIDIA CUDA 80.0.29 CUDNN Library .

cublas64_80.dll du chemin CUDA 8.0 a la même 'Version du fichier' mais 'Description du fichier' : NVIDIA CUDA 80.0.45 BLAS Library

cufft64_80.dll et curand64_80.dll ont également des 'versions de fichier' correspondantes mais sont 8.0.44 dans 'Description de fichier'

Les pilotes GPU que j'ai installés sont la version 369.30 des derniers pilotes CUDA et nvcuda.dll dans System32 a 'File version' : 6.14.13.6930 et a 'File description' : NVIDIA CUDA 80.0.44 driver .

Je pense que la faible mémoire de l'appareil est simplement due au fait que j'ai un 970 qui ne dispose que de 3,5 Go de mémoire utile et que CUDA n'aime pas utiliser le dernier 0,5 Go.

J'ai la même version cudnn et ça marche bien pour moi. Il y a un tas de tests conv python dans l'arborescence tf et ils réussissent tous. J'utilise principalement un 970 pour les tests. Votre journal indiquait spécifiquement qu'il avait des problèmes lors de l'initialisation de cudnn. Permettez-moi de jeter un oeil au code d'initialisation.

OK, le problème semble être un pilote. Je peux utiliser avec succès cudnn et convolutions une fois à chaque fois que je redémarre le pilote vidéo (en utilisant le gestionnaire de périphériques, désactivez puis activez). Cependant, une fois que je l'ai utilisé dans un processus, aucune utilisation future ne s'initialise.

De plus, je pense que d'autres processus ont des plantages liés au pilote une fois que cudnn a été initialisé.


Mise à jour : j'ai désinstallé et réinstallé mon pilote graphique et maintenant je peux faire fonctionner correctement un processus (noyau jupyter) avec cudnn, mais jusqu'à ce que je ferme ce noyau, chaque tentative d'utilisation de cudnn dans d'autres noyaux rencontrera le même plantage. Si je redémarre le noyau de travail, je peux exécuter le code dans un noyau différent sans avoir à recharger le pilote.

Il a compilé pour moi, mais j'ai dû ajouter shell=True dans la ligne 150 du fichier gen_git_source.py. Sinon, j'obtiendrais la même erreur que celle indiquée dans:
http://stackoverflow.com/questions/24306205/file-not-found-error-when-launching-a-subprocess

@ synap5e si vous l'exécutez dans un tf.Session() normal, une deuxième instance ne fonctionnera pas car tf gère toute la mémoire sur le gpu. Vous pouvez modifier la configuration de Session() comme ceci :
config = tf.ConfigProto()
config.gpu_options.per_process_gpu_memory_fraction = 0,4
avec tf.Session(config=config) comme session :
...
avec cela, je peux exécuter 2 scripts dans une boucle qui frappent cudnn. C'est la même chose sous linux.
Mais il se bloque est différent sur Windows - sur Linux, il obtient CUDA_ERROR_OUT_OF_MEMORY, sur Windows, il obtient CUDNN_STATUS_NOT_INITIALIZED. Je vais jeter un oeil à ça.

Ah donc le problème était que mon système utilisait trop de mémoire vidéo avant même d'initialiser tensorflow. Je suppose que le pilote réduisait simplement la mémoire de l'appareil utilisé afin que tensorflow puisse s'initialiser correctement. Merci!

Les gars, est-il possible de construire sur Windows sans MSVS ? Le SDK Windows 10 est censé contenir le compilateur C++, cela ne suffirait-il pas à la tâche ?

@zandaqo Vous n'avez besoin que d' un compilateur MSVC autonome avec le SDK Windows 10 et CMake, il n'est donc pas nécessaire d'installer l'ensemble de Visual Studio. Le SDK Windows 10 contient des dll, des bibliothèques statiques, des fichiers d'en-tête et des codes sources pour les bibliothèques et certains outils utiles, mais il ne contient pas de compilateur.

Bonjour!

Je suis nouveau sur Python et Tensorflow, mais j'ai déjà fait des trucs MNIST dans le passé. J'ai suivi les instructions sur tensorflow/contrib/cmake/README.md, et cela a bien fonctionné, le GPU semble également fonctionner correctement. Tensorflow sur Windows semble se briser à certains endroits, comme prévu, et je veux juste vérifier si ma compréhension de la rupture est correcte.

J'ai essayé de suivre https://www.tensorflow.org/versions/r0.11/tutorials/mnist/beginners/index.html et cela ne fonctionne pas, car ce chemin d'importation (tensorflow.examples.tutorials.mnist) ne fonctionne pas exister. Cela est finalement dû au fait que tf.contrib n'est pas inclus dans le package pip, n'est-ce pas ?

Juste par curiosité, j'ai fait quelque chose d'assez horrible : j'ai copié le contenu du référentiel tensorflow sur l'emplacement de la bibliothèque sur site-packages\tensorflow, ce qui, je m'attendais à ce que beaucoup de choses se cassent. C'est comme ça que ça casse :

  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'

Je n'ai trouvé nulle part la définition de gen_variable_ops, mais la documentation indique que tf.load_op_library() n'est pas implémenté actuellement. Donc, gen_variable_ops est implémenté ailleurs, qui doit être chargé en utilisant tf.load_op_library() . Donc, le manque de tf.load_op_library est la cause du problème, n'est-ce pas ?

J'ai réussi à construire avec succès le paquet pip en suivant le chemin cmake et je l'ai installé avec pip install tensorflow-0.11.0rc1_cmake_experimental-py3-none-any.whl qui a signalé une installation réussie. Cependant, lorsque j'essaie d'importer tensorflow, j'obtiens les erreurs suivantes :

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

Ai-je manqué une dépendance ici ou quelque chose n'allait pas avec la construction/l'installation ?

@zandaqo , j'ai eu ce problème lors de la première exécution de tensorflow sous Windows. Il vous suffit de compiler les exemples et d'ajouter le dossier avec les exemples compilés à votre chemin. Lorsque vous compilez les exemples de codes, il compile également certaines DLL nécessaires à Tensorflow.

@ErivaldoJunior En compilant les exemples, voulez-vous dire ceci : MSBuild /p:Configuration=Release tf_tutorials_example_trainer.vcxproj ? Je l'ai fait avant de compiler le paquet pip. Il compile en .\Release , est-ce le dossier à ajouter au chemin ? Je viens d'essayer de l'ajouter, mais sans succès jusqu'à présent.

Je vois des fichiers nommés pywrap_tensor mentionnés dans les erreurs de ce dossier .\Release , peut-être que les copier manuellement quelque part pourrait aider Python à les voir. Je ne sais pas où cependant.

@zandaqo , c'est vrai. Je viens d'ajouter ce dossier Release à mon chemin Windows et cela a fonctionné. Cependant, j'ai testé en lançant python my_tensorflow_script.py depuis une fenêtre CMD. Je ne sais pas si cela fonctionne si vous utilisez une sorte d'IDE ou iPython.

@ErivaldoJunior Merci, vous aviez raison à propos des DLL manquantes, bien que dans mon cas, il s'est avéré qu'il manquait zlib.dll à la fois dans le package et dans le dossier .\Release . J'ai copié manuellement zlib.dll dans le dossier, comme cela a été suggéré ici et l'importation fonctionne maintenant.

J'ai réussi à construire le tensorflow ! Mais cmake 3.3.1 provoque une erreur de construction, 3.6.3 fonctionne bien.

Bon à savoir! Nous accueillerions favorablement un PR avec une version minimale appropriée
déclaration dans le fichier cmakelist.

Le samedi 5 novembre 2016, Takahiro Kubo [email protected]
a écrit:

J'ai réussi à construire le tensorflow ! Mais cmake 3.3.1 provoque une erreur de construction,
3.6.3 fonctionne bien.


Vous recevez ceci parce que vous avez commenté.
Répondez directement à cet e-mail, consultez-le sur GitHub
https://github.com/tensorflow/tensorflow/issues/17#issuecomment -258649999,
ou couper le fil
https://github.com/notifications/unsubscribe-auth/AAjO_Ys4MI03pcc3tCR_BzsqIXFrQTTcks5q7RVRgaJpZM4GexU4
.

@martinwicke car ici , il semble que la version minimale connue de Cmake soit 3.5. Dois-je changer l'exigence minimale en 3.5 et mettre à jour le fichier Lisez-moi pour un minimum de 3,5 à 3,6 ?

Ravi de voir que TensorFlow peut maintenant fonctionner sur Windows avec GPU maintenant. Existe-t-il des plans pour une version qui n'a pas besoin d'être installée à partir des sources ? Et si oui, une ETA à ce sujet ? Ce serait formidable si le processus d'installation était aussi simple que sur Linux, j'utilise TensorFlow sur Linux sans problème et j'aimerais le faire sur Windows, mais les conditions requises et le processus d'installation documentés dans le fichier readme semblent actuellement un peu encombrants pour ceux d'entre nous qui n'ont pas beaucoup de temps...

Salut les gars! Avec la sortie de Bazel 0.4.0 , le package TensorFlow PIP peut désormais être créé avec Bazel sous Windows.
Grâce à la contribution de @petemounce , vous pouvez utiliser choco install bazel --version 0.4.0 pour installer Bazel facilement.

@gunan a déjà mis en place un travail ci pour cela : http://ci.tensorflow.org/job/tensorflow-pr-win-bazel/
Fondamentalement, nous utilisons ce script . Ainsi, avec une modification appropriée des variables d'environnement (si vos installations de Visual Studio, Python 3 ou msys ne se trouvent pas aux emplacements standard), vous pourrez également créer le package PIP avec Bazel !

Mise à jour : je vous recommande d'exécuter manuellement les commandes du script si vous rencontrez des difficultés pour l'exécuter directement.

@meteorcloudy Merci pour la mise à jour !
Construire avec bazel n'a pas fonctionné pour moi. J'obtiens ERREUR : CreateFile(C:\tmp\Bazel\44EoGNou\install)
Un moyen de déboguer ça ? J'ai des fenêtres localisées (russe), c'est peut-être la cause

Journal complet. Exécution dans PowerShell en tant qu'administrateur :

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 C'est ( ERROR: CreateFile(C:\tmp\Bazel\44EoGNou\install) ) bazelbuild/bazel#1744 je pense. Cela ne se produit que la première fois après l'installation de Bazel. Il ne semble pas y avoir de répercussions.

@KhabarlakKonstantin Comme l'a souligné @petemounce , vous pouvez ignorer cette erreur en toute sécurité. Et vous pouvez également ignorer rm -rf C:/tmp/Bazel/44EoGNou si l'erreur Device or resource busy vous bloque. Je suppose que c'est parce qu'il a essayé de supprimer jvm.out avant l'arrêt complet de jvm après avoir appelé bazel shutdown .

@petemounce @meteorcloudy Merci pour l'aide
Le problème est qu'il ne démarre pas la construction. J'ai commenté bazel shutdown et ça va maintenant un peu plus loin, mais ça plante toujours

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

Plus de sortie ici

@KhabarlakKonstantin Il semble que la configuration OpenCL soit juste ajoutée dans ./configure mais pas désactivée par défaut sous Windows, veuillez donc exécuter manuellement ce script ou ajouter export TF_NEED_OPENCL=0 avant 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

Est-ce que quelqu'un d'autre a ces erreurs avec Pragma (ignorez pywrap one)?

Construire avec GPU et toutes les spécifications conformément au fichier readme.

@Carmezim , ça a bien fonctionné pour moi. Je n'ai eu aucune de ces erreurs.

J'ai un pr pour résoudre ce problème ici : https://github.com/tensorflow/tensorflow/pull/5421

@guschmue sympa ! Merci pour la réponse rapide

Après avoir corrigé _Pragma, voici ce que j'obtiens dans le même fichier :

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 corrigera également cela.

Puis-je construire avec le support GPU en utilisant bazel ?

@ edwin100394 pas encore de support GPU sur Windows utilisant bazel.
Nous y travaillons encore.

Le lundi 7 novembre 2016 à 21h33, edwin100394 [email protected]
a écrit:

Puis-je construire avec le support GPU en utilisant bazel ?


Vous recevez ceci parce que vous avez été mentionné.
Répondez directement à cet e-mail, consultez-le sur GitHub
https://github.com/tensorflow/tensorflow/issues/17#issuecomment -259049695,
ou couper le fil
https://github.com/notifications/unsubscribe-auth/AHlCOXNRNoMFmnSPfnkTMLsRHcIcl9TXks5q8AmigaJpZM4GexU4
.

@meteorcloudy L'ajout export TF_NEED_OPENCL=0 m'a aidé à aller un peu plus loin

Maintenant j'obtiens une autre erreur :

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

J'ai commencé à partir de zéro et j'ai construit bazel à partir de sources. Maintenant, il construit presque jusqu'à la fin

Il échoue au moment du lien à la fin :

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

Salut les gens, maintenant que la prise en charge rudimentaire de Windows est en place, je vais verrouiller ce problème pour de nouveaux commentaires, mais gardez-le ouvert jusqu'à ce que nous ayons une version stable. Aller de l'avant :

  • Si vous rencontrez un problème, veuillez ouvrir un nouveau problème avec TensorFlow pour décrire votre problème et remplir le modèle de problème standard. Cela nous aidera à suivre et à attribuer le travail restant à faire pour que TensorFlow-on-Windows soit publié.
  • Nous continuerons à utiliser ce problème pour les annonces (rares) concernant la prise en charge de Windows, vous pouvez donc continuer à vous abonner au problème pour un flux à faible trafic sur les améliorations apportées à TensorFlow-on-Windows.

Encore une fois, merci pour tout l'intérêt que vous portez à TensorFlow-on-Windows, et maintenant nous allons nous remettre au travail !

Aujourd'hui, nous avons annoncé la prise en charge native de Windows dans TensorFlow 0.12 , avec des packages pour Python 3.5. Si vous avez installé la version 64 bits de Python 3.5 (depuis Python.org ou Anaconda), vous pouvez installer TensorFlow avec une seule commande :

C:\> pip install tensorflow

Pour la prise en charge du GPU, si vous avez installé CUDA 8.0, vous pouvez installer le package suivant à la place :

C:\> pip install tensorflow-gpu

Maintenant que Windows est une configuration prise en charge, je vais fermer ce problème ; veuillez ouvrir un nouveau sujet si vous rencontrez des problèmes avec ces packages. Il existe encore des divergences entre le package Windows et les autres plates-formes, qui sont décrites dans les notes de version . Nous travaillerons au cours des prochaines semaines pour combler ces lacunes.

Merci pour tout l'intérêt que vous portez à TensorFlow sous Windows !

Cette page vous a été utile?
0 / 5 - 0 notes