Tensorflow: Suporte e documentação do Windows

Criado em 9 nov. 2015  ·  180Comentários  ·  Fonte: tensorflow/tensorflow

Eu estava animado para ver o tensorflow, mas como muitos outros usuários, estamos no Windows, seria bom ver esse suporte acontecer. Você aceitará contribuições de porta do Windows?

Enquanto isso, a Microsoft lançou recentemente seu kit de ferramentas Deep Learning, que é dimensionado em várias máquinas com GPUs para Linux e Windows. https://github.com/Microsoft/CNTK

Comentários muito úteis

Obrigado por todo o interesse no TensorFlow no Windows! Estamos progredindo em duas frentes principais:

  1. Adaptando os arquivos Bazel BUILD do TensorFlow para funcionar no Windows. Você pode ter visto algumas solicitações de pull recentes do @meteorcloudy nessa direção (como # 4449), e nosso plano final é ter suporte total para a criação do TensorFlow, usando o Bazel, no Windows.
  2. Modificando o runtime do TensorFlow para compilar com o compilador Visual C++ 2015. Eu tenho trabalhado nesse esforço, e a diferença entre HEAD e meu branch de trabalho está diminuindo a cada dia. Por enquanto, estou usando o CMake para compilar o TensorFlow usando o Visual Studio/MSBuild, mas pretendo mudar para o Bazel quando os arquivos BUILD funcionarem em várias plataformas.

Esperamos fazer um anúncio em breve, com um pacote PIP binário e instruções para criar o TensorFlow no Windows. Enquanto isso, atualizaremos esse problema quando tivermos novidades para compartilhar.


Respondendo às perguntas específicas de @kestrelm :

  1. Atualmente, estou usando o CMake para gerar uma solução VS com vários projetos e mesclaremos isso como parte do item (2) acima.
  2. No mínimo, podemos gerar uma DLL de extensão Python contendo o tempo de execução e todos os kernels (o equivalente a tensorflow/python/_pywrap_tensorflow.so ), e fornecer instruções para construir um binário C++ vinculado estaticamente (o equivalente a tensorflow/cc/tutorials/example_trainer.cc ).
  3. Podemos facilmente fazer uma versão do tempo de execução com esses recursos (algo como o subconjunto Android de kernels relacionados à inferência em uma DLL por trás da API C), embora provavelmente não faça parte da versão inicial. No entanto, será possível modificar os arquivos de compilação para criar um destino que tenha essas propriedades, e ficarei feliz em ajudar quem estiver tentando fazer isso.

Todos 180 comentários

Acho uma ótima sugestão!

Mesmo, fiquei meio desapontado por não ver nenhuma menção ao Windows na página de download e instalação.

Alguém tem ideia de quais são as principais incompatibilidades/acomodações? É principalmente problemas com caminhos de arquivos, etc?

Ele é construído com Bazel, que suporta apenas linux/mac, mas a boa notícia é que o suporte do Windows para bazel parece estar disponível até o final deste ano.

:afirmativo:

Você já pode usar o TensorFlow em uma máquina Windows usando o Docker.
Os detalhes estão neste tópico.
https://github.com/tensorflow/tensorflow/issues/42

Gostaria de usar o TensorFlow no Windows sem o Docker, para usar a computação da GPU. Usar o Docker neste caso não é usar um contêiner do Windows, mas uma máquina virtual Linux no Hyper-V ou VirtualBox e, portanto, a GPU não será passada.

:+1:

google, nos dê suporte ao windows, por favor!

+1/0.0

+1

Sim, o suporte do Windows seria super legal.

+1
+1
+1

sim por favor

Adoraria usar o TensorFlow no Windows (nativo, não em uma VM).

Vou dar uma olhada se o Continuum pode fornecer um pacote conda para o tensorflow.

A julgar pelo uso de bazel em toda a documentação, presumo que seja uma questão de esperar que o bazel suporte o Windows. Existe algo específico para o Tensorflow que precisa ser resolvido para que o Windows seja compatível ou é apenas o bazel?

Uma pergunta que tenho é quando o suporte do Bazel está realmente chegando ao Windows. Olhando para o repositório do Bazel, ele diz que eles planejam oferecer suporte ao Android no Windows, mas não vi nenhuma referência à criação (o que suponho que sejam) pacotes nativos.

Aqui está o bug que estamos usando para rastrear o suporte do Bazel para Windows: https://github.com/bazelbuild/bazel/issues/276. Há um mês, @dslomov conseguiu fazer com que o Bazel se auto-inicialize no Windows . O plano é terminar o suporte ao Windows até o final deste ano.

@davidzchen Eu estava realmente trabalhando com esse repositório no início desta tarde para tentar experimentá-lo sem muita sorte, posso brincar um pouco mais com ele para ver se consigo fazer o bootstrap com sucesso.

+1 suporte nativo no Windows deve estar disponível

+1

ou talvez pudéssemos portá-lo para um sistema de compilação mais razoável. talvez cmake.

@ahmadia você tem alguma dica de como instalar o tensorflow usando o conda?

No momento, estamos no mesmo barco que todo mundo porque não há porta do TensorFlow para Windows. Se alguém puder montar uma porta do Windows, ficarei feliz em ajudar com a compilação/implantação do binário. Alguém já preparou uma receita para OS X/Linux disponível com conda install -c memex tensorflow .

+1 para isso

+1

+1
também o suporte cmake seria ótimo

Eu montei um artigo com instruções e capturas de tela para fazer o TensorFlow funcionar em uma máquina Windows usando o Docker aqui usando as dicas do problema 42 , se for útil para alguém.

Embora eu ainda não tenha certeza de como posso aproveitar minha GPU, se o TensorFlow estiver sendo executado em uma VM na minha máquina Windows.

+1 suporte nativo do Windows seria extremamente útil

+1

Eu quero ter uma versão do TensorFlow para Windows 7, se você tiver, envie meu e-mail.
Meu endereço de e-mail: [email protected].
Obrigado!

+1

O suporte ao Windows é um esforço um pouco dramático. Talvez suportar o Windows apenas para um compilador verdadeiramente padrão (gcc / tdm-gcc / mingwpy) e em um Python moderno (3.4?) seria um alvo muito mais fácil?

Talvez usar o front-end Clang com VC++ CodeGen seja um caminho mais rápido para começar a trabalhar com compilações do Windows -> Clang com Microsoft CodeGen no VS 2015 Update 1 . O projeto foi projetado para fornecer uma cadeia de ferramentas de trabalho consistente para compilações de plataforma cruzada de código visando principalmente janelas, no entanto, o cenário em que o código *nix é compilado em janelas pode ser igualmente interessante. A equipe MSFT C++ afirma que o código que eles escrevem é contribuído de volta para o projeto LLVM, portanto, deve permitir um trabalho rápido e conjunto para obter um bom suporte entre plataformas.

+1

+1

+1

+1

+1

+1

+1

+1. Este é o primeiro pacote Python que me lembro de não funcionar no Windows. Parece estranho para mim, pois meu entendimento é que os drivers da NVIDIA sempre foram melhores no Windows do que no Linux, e eu tenho uma GTX 970 que está entediada nos dias de hoje.

Eu portei a maior parte do tensorflow c++ para uma compilação do windows use vc 2013. até agora, a maioria dos códigos compila e vincula usa meu próprio arquivo de fontes. o maior desafio para eu contornar é esse: usar variável estática para registrar op e kernel. Eu os construo como biblioteca estática e o link do aplicativo para ele ignorará essas variáveis ​​estáticas. Eu tenho que usar um stub.cpp na pasta app para incluir ops e kernels usados.

@yuanhua8 alguma chance de você enviar suas alterações para um repositório do github? BTW, resolvi a coisa do registro estático no caffe usando o dumpin para gerar um cabeçalho que força o gosto do símbolo. Consulte https://github.com/BVLC/caffe/pull/2816 e https://github.com/willyd/caffe/tree/msvc para obter detalhes.

Espero que o Tensorflow nativo para Windows esteja pronto em breve, talvez tenha que esperar até que o bazel para Windows esteja estável, empolgado para experimentar o curso Deep Learning do Google e da Udacity!

Para sua informação, o suporte do Windows para Bazel é atualmente uma de nossas principais prioridades . Fique ligado.

O mesmo aqui, comecei o curso de aprendizado profundo oferecido pelo Google e aqui estou preso porque estou executando o Windows.
Quando devemos esperar suporte para Windows?

Percebi que muitas pessoas enfrentam um problema ao executar isso no Windows, então fiz uma rápida redação sobre como configurá-lo no Windows usando o Vagrant e o Docker:

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

@umariz Obrigado pelo guia. No entanto, acho que o que a maioria das pessoas espera ver é o TensorFlow sendo executado nativamente no Windows por causa do suporte à GPU . Isso infelizmente não funciona com o Docker até onde eu sei nem com qualquer outra solução usando virtualização ...

@SeveQ Concordo plenamente e pessoalmente prefiro usar o Linux para todos os meus experimentos de ML devido à facilidade de configurar vários ambientes de programação exclusivos. Este guia foi feito para executar o material do curso do Google, pois os conjuntos de treinamento e os exemplos que eles têm são para iniciantes com conjuntos de dados menores que também devem ser executados em um ambiente somente de CPU.

@umarniz Tudo bem, não quis denegrir seu esforço. Definitivamente não! Você fez um ótimo trabalho escrevendo isso! Obrigado novamente!

A propósito, só para mencionar isso... o exemplo do Deep MNIST, que reconhecidamente já não é tão simples assim, leva várias horas na minha CPU enquanto minha GPU (GTX 980Ti) passa por ele em no máximo alguns segundos. Em um Ubuntu nativo que é. Eu tenho um configurado em um pendrive. Funciona, no entanto, a inicialização dupla pode ser bastante complicada e um grande fator de desmotivação. Ainda mais porque um Windows hibernado em um sistema UEFI pode ser bastante exigente quando se trata de acessar dados em partições NTFS do Linux ...

Claro, concordo totalmente que o Linux (Ubuntu) é o melhor sistema operacional para tarefas de ML porque é o que a maioria das pessoas usa, e não sem razão. Mas ainda tem suas desvantagens para pessoas entusiastas como eu, que não apenas fazem ML para viver, mas também como hobistas, e que têm outros hobbies em paralelo que dependem do Windows... como jogos, por exemplo.

Eu acho que são alguns problemas do primeiro mundo que eu adoraria ver resolvidos, no entanto.

@SeveQ Eu também não entendi assim :)

Eu concordo com o dual boot sendo uma dor, eu tive que mudar completamente para o Ubuntu por alguns meses, caso contrário, torna-se bastante complicado mudar, mas eu amo o poder que o shell bash oferece para trabalhar com grandes conjuntos de dados.

Acho que vou ver o que posso fazer para ajudar a adicionar suporte do Windows para o TensorFlow.

+1

@umariz Parece bom. Não tenho tempo agora para me dedicar também a isso, infelizmente. Outras prioridades, como a graduação... O suporte do Windows para o TensorFlow seria uma grande ajuda nesse assunto. Estou me formando como MSc., engenheiro de sistemas, especializado em, quem diria, aprendizado de máquina...

alguma atualização disso

Eu faço uma porta do código c++ em nosso branch interno. Desculpe, não posso publicar de volta, pois depende da nossa ramificação de código. Encontre alguma lacuna entre c++ e Python. Mas o mecanismo principal funciona para mim em nosso ambiente Windows/Vc.
H y

Enviado do meu iPhone

Em 30 de janeiro de 2016, às 2h46, datashinobi [email protected] escreveu:

alguma atualização disso


Responda a este e-mail diretamente ou visualize-o no GitHub.

Para todos aqueles que desejam usar o Tensorflow e podem render suporte a GPU, aqui está uma postagem no blog sobre como instalar o Tensorflow com suporte a notebook jupyter para Windows com Docker.

Uma atualização no suporte do Windows para Bazel: o conjunto inicial de patches para fazer o Bazel funcionar no Windows foi mesclado (consulte bazelbuild/bazel#276) e @dslomov conseguiu fazer com que o Bazel se auto- inicialize no Windows .

Estamos planejando ter suporte experimental para Windows no Bazel 0.3 . Se você quiser acompanhar nosso progresso, consulte os problemas marcados como "Windows" no rastreador de problemas do Bazel.

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

Não foi possível encontrar a imagem 'b.gcr.io/tensorflow/t ensorflow:latest ' localmente

docker: resposta de erro do daemon: não é possível pingar o ponto de extremidade do registro https://bg
cr.io/v0/
Falha na tentativa de ping v2 com erro: Get https://b.gcr.io/v2/ : dial tcp 64.233.188
.82:443: tempo limite de E/S

Alguma notícia sobre poder usar o TensorFlow no Windows, sem o Docker?
Quão difícil seria oferecer um processo de compilação do CMake que funcionasse tanto para Linux quanto para Windows (criando um projeto MVS)?

Eu escrevi instruções para instalar o tensorflow em uma máquina virtual CentOS. Se você está tendo problemas para trabalhar com o Docker, essa pode ser sua solução.

Pessoal, se você instalar o bash no Windows usando o novo tensorflow de visualização do desenvolvedor, instala e meio que funciona. Então você pode usar isso para executá-lo no Windows sem usar o docker. (E provavelmente melhoraria o bash para Windows porque mais pessoas o estão usando.)

Isso é fantástico.
Usar o bash no Windows era minha maior esperança de usar o tensorflow no Windows.

A maior questão é se você pode usar os drivers da GPU?

Essa é a principal razão pela qual as pessoas solicitam uma instalação nativa do tensorflow no Windows. Caso contrário, o suporte à CPU é bom por meio do docker ou da máquina virtual Linux

Não tenho conhecimento disso, mas devemos perguntar à equipe do Windows sobre isso.
As pessoas conseguiram programas GUI para trabalhar através do Windows, mas não usa CPU
GPU, então estou pensando que atualmente não tem acesso
Em 19 de abril de 2016 17:37, "hayder78" [email protected] escreveu:

Isso é fantástico.
Usar o bash no Windows era minha maior esperança de usar o tensorflow no Windows.

A maior questão é se você pode usar os drivers da GPU?

Essa é a principal razão pela qual as pessoas solicitam uma instalação nativa do tensorflow
em janelas. Caso contrário, o suporte à CPU é bom através do docker ou do Linux
máquina virtual


Você está recebendo isso porque comentou.
Responda a este e-mail diretamente ou visualize-o no GitHub
https://github.com/tensorflow/tensorflow/issues/17#issuecomment -212156142

Sim. Eu li que os programas GUI executados pelo bash no Windows usarão um driver de GPU genérico. O que significa que não usa os drivers da nvidia.

Vamos rezar para que o Google esteja trabalhando em um tensorflow no Windows sob o capô.

Eu acho que o bash para Windows precisa de tempo para ser maduro o suficiente e livre de bugs. Enquanto isso, provavelmente VM e docker serão uma escolha melhor.

Agora estou fazendo uma escolha entre tensorflow e CNTK.

+1 para suporte nativo do Windows, incluindo GPU.

O link para seguir os problemas do Windows do Bazel fornecido por @davidzchen não está funcionando, o correto é https://github.com/bazelbuild/bazel/labels/category%3A%20windows

(Eu sei que todo mundo está esperando por suporte nativo do Windows + GPU, estou esperando também, mas temos que esperar até que o Bazel para Windows fique estável, ajudar nos testes e contribuir com o Bazel provavelmente acelerará o processo)

outro +1 para Windows com suporte a GPU. Embora o TF parecesse uma opção melhor, tive que mudar para o Theano como resultado da falta de suporte de GPU no Windows. Será bom se houver uma menção no roteiro do TF sobre se o suporte estará disponível em versões futuras, pois ajudará na tomada de decisões de muitos pesquisadores.

+1

+1

Uma notícia interessante: @shanselman escreveu uma postagem no blog sobre a execução do TensorFlow no Bash para Windows.

Ainda pretendemos fornecer suporte ao Windows de primeira classe, mas os usuários aventureiros podem achar essa uma boa maneira de começar nesse meio tempo.

@mrry Olá Derek Murray,
Fico feliz em saber de você - como engenheiro de software do Google - que pretende fornecer um suporte nativo do Windows para o tensorflow. Você faz parte da equipe de desenvolvedores do tensorflow no Google?

Pelo menos eu tenho uma esperança agora.

Alguma estimativa aproximada de quando será uma versão beta?

Outro +1, muito interessado em ver isso acontecer. Se e quando o Bazel realmente for executado no Windows, o TF realmente compilará na plataforma? Ou existem outros problemas de portabilidade, por exemplo, rede, chamadas de sistema de arquivos?

+1

Pessoal, você poderia usar as reações do GitHub em vez de escrever "+1" em uma nova mensagem? No momento, ele produz muito spam para as pessoas que se inscreveram nas atualizações deste tópico. Obrigado!

+1 para reações do GitHub!

Bem, o bazel parece funcionar na maioria das vezes no Windows agora, além de alguns erros de nome (caracteres ilegais ou comandos muito longos). Definitivamente, há problemas para obter um tensorflow do Windows em funcionamento, além de apenas ter um bazel funcionando. Todos os erros que recebi até agora são do 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.
Então, estou supondo que as regras de compilação precisam ser atualizadas para o Windows primeiro.

O roteiro oficial do tensorflow:
https://github.com/tensorflow/tensorflow/blob/master/tensorflow/g3doc/resources/roadmap.md

O suporte ao Windows faz parte do roteiro para o futuro próximo que está previsto para os próximos meses!

@Sabrewarrior Tentei construir o tensorflow no windows usando o bazel, mas o arquivo configure apenas dá alguns erros. Gostaria de saber se você alterou ou adicionou algumas partes desse arquivo para serem suportadas no Windows

@Fhrozen https://github.com/Sabrewarrior/tensorflow/blob/test/tf_win_env.txt
Estes são meus pacotes instalados quando executei o configure sem nenhuma alteração. Estou executando isso em msys2 com python 2.7 em uma máquina Windows 10.

@Sababrewarrior obrigado pela resposta. Eu verifiquei, era os espaços no nome da pasta o meu problema.
Agora eu tenho esse erro na versão cuda.

`Por favor, especifique qual gcc nvcc deve usar como compilador de host. [O padrão é /mingw64/bin/gcc]:
Por favor, especifique a versão do Cuda SDK que você deseja usar, por exemplo, 7.0. [Deixe em branco para usar o padrão do sistema]: 7.5
Especifique o local onde o kit de ferramentas CUDA 7.5 está instalado. Consulte README.md para obter mais detalhes. [O padrão é /usr/local/cuda]: C:/CUDA/v7.5
Por favor, especifique a versão Cudnn que você deseja usar. [Deixe em branco para usar o padrão do sistema]: 4.0.7
Especifique o local onde a biblioteca cuDNN 4.0.7 está instalada. Consulte README.md para obter mais detalhes. [O padrão é C:/CUDA/v7.5]: cuda/
Especifique uma lista de recursos de computação Cuda separados por vírgula com os quais você deseja criar.
Você pode encontrar a capacidade de computação do seu dispositivo em: https://developer.nvidia.com/cuda-gpus.
Observe que cada recurso de computação adicional aumenta significativamente o tempo de compilação e o tamanho do binário.

Configurando o Cuda incluem
Configurando o Cuda
ln: vamos criar o enlace simbólico '../../../third_party/gpus/cuda/extras/visual_studio_integration/MSBuildExtensions/CUDA': No such file or directory
ln: vamos criar o enlace simbólico '../../../third_party/gpus/cuda/extras/visual_studio_integration/MSBuildExtensions/7.5.props': No such file or directory
ln: vamos criar o enlace simbólico '../../../third_party/gpus/cuda/extras/visual_studio_integration/MSBuildExtensions/CUDA': No such file or directory
ln: vamos criar o enlace simbólico '../../../third_party/gpus/cuda/extras/visual_studio_integration/MSBuildExtensions/7.5.targets': No such file or directory
ln: vamos criar o enlace simbólico '../../../third_party/gpus/cuda/extras/visual_studio_integration/MSBuildExtensions/CUDA': No such file or directory
ln: vamos criar o enlace simbólico '../../../third_party/gpus/cuda/extras/visual_studio_integration/MSBuildExtensions/7.5.xml': No such file or directory
xargs: bash: finalize com status 255; abortar
`

@Fhrozen AFAIK você não pode usar o gcc como compilador para CUDA no Windows. Somente o Visual C++ Compiler é suportado pelo CUDA no Windows ( veja aqui ).

+1

NOVAMENTE! POR FAVOR, NÃO FAÇA COMENTÁRIOS _+1_ INÚTEIS! USE AS REAÇÕES DO GITHUB EM VEZ!

+1

pare +1!!!

Repito, pare +1 por $%{^¥! Qualquer um que comentar +1 depois disso é um idiota! :-P Use reações do Github, caramba!

Alguém poderia me dar algum tipo de status de moderador? Eu gostaria de limpar este problema de comentários +1 inúteis.

Oi equipe. Estou tentando entender qual trabalho precisa ser feito para poder usar o TensorFlow no Windows (10, eu acho) com suporte a GPU via CUDA. Pelo que sei até agora, isso exclui o Docker porque o Docker não pode acessar a GPU do host e significa que devemos usar o cl.exe do Visual Studio (que é o que o Bazel para Windows usa).

A partir disso, é apenas o Bazel para Windows que precisa progredir? Essa é a única dependência insatisfeita aqui? Feliz por ser corrigido em qualquer ponto.

Se eu quiser ativar o Bash no Windows, preciso verificar o Windows Subsystem for Linux (Beta) certo? Mas não consigo encontrar este menu na caixa de diálogo Recursos do Windows. Estou seguindo o guia aqui e aqui .
Preciso marcar a caixa de seleção Hyper-V na caixa de diálogo Recursos do Windows?
Também já ativei o modo Desenvolvedor nas configurações.

Parece que eu preciso abandonar esses recursos do Windows beta bash e usar o Docker sem querer?

@ off99555 Você é o Windows 10 deve ter a versão de visualização mais recente (anel rápido). Verifique sua compilação, se for inferior a ~14000, então você ainda não tem esse recurso. (Esta atualização será GA 2 de agosto)

Olá,

Para suporte ao Tensorflow Windows, seremos capazes de criar binários do Windows que não são binários msys2? Isso faz sentido, pois seria possível fazer uma implantação real nas máquinas da maioria dos usuários.

Se isso não for possível, podemos ter uma maneira de implantar apenas uma versão simplificada da passagem de previsão/passagem de encaminhamento da biblioteca para essa finalidade? Posso treinar no Linux muito bem, mas para o processo de previsão real, gostaria de poder implantar em uma caixa Windows normal sem msys2. Isso está no roteiro?

Se você observar o que o CNTK está fazendo:
https://github.com/Microsoft/CNTK/wiki/Native-Evaluation-Interface

Eles têm uma maneira muito mais fácil de fazer avaliação/previsão usando uma DLL simplificada. Podemos ter algo assim no Tensorflow também para Windows (e outras plataformas que posso imaginar acharão muito útil).

Obrigado!

Não entendo por que você adicionou suporte para Mac OS e não para Windows. Você não pode usar a GPU CUDA normal na maioria dos Macs. É uma plataforma inútil para treinamento de aprendizado profundo

A equipe pode nos informar sobre as estimativas de suporte nativo do Windows?

@mrry está trabalhando ativamente nisso e pode fornecer mais atualizações sobre isso se você tiver perguntas específicas.

@aselle Obrigado pela atualização útil, muito apreciado!

@mrry Olá, como as especificações da implementação do Windows serão lançadas?

1) Teremos (idealmente) uma solução VS2015 que podemos construir com nossos aplicativos/ferramentas? Um método cmake que gera a solução VS também funciona.

2) Esta será uma biblioteca vinculada estaticamente ou dinamicamente?

3) Haverá um módulo/biblioteca de passagem/avaliação leve que possamos usar para implantação com nossas ferramentas/aplicativos?

O recurso atual que pude encontrar sobre a implantação do tensorflow com um aplicativo autônomo C++ está aqui:
https://medium.com/jim-fleming/loading-a-tensorflow-graph-with-the-c-api-4caaff88463f#.7ejb8h7zk

Minha principal preocupação é o que está declarado aqui:
"A compilação é enorme, chegando a 103 MB, mesmo para este exemplo simples. Muito disso é para TensorFlow, suporte CUDA e várias dependências que nunca usamos. Isso é especialmente verdadeiro porque a API C++ não suporta muitas funcionalidades no momento, como uma grande parte da API do TensorFlow é somente Python. Provavelmente há uma maneira melhor de vincular ao TensorFlow (por exemplo, biblioteca compartilhada), mas ainda não consegui fazê-lo funcionar."

Se houver uma maneira melhor de vincular uma grande biblioteca estática, isso será ótimo, especialmente para fins de aprovação/avaliação avançada que realmente não precisa de suporte de GPU.

Obrigado!

@mrry Como outras pessoas podem se envolver nisso? Como podemos ajudar a executar o TensorFlow no Windows o mais rápido possível? Pelo menos podemos ajudar com testes e relatórios de bugs.

+1

Alguma atualização no windows? o que é necessário para executá-lo nativamente com GPU disponível também?

Precisamos de suporte para windows!!!!
A equipe pode nos informar sobre as estimativas de suporte nativo do Windows?

Sem janelas? porque? pelo menos apenas versões de CPU?

Aqui está um resumo do que eu acho que está acontecendo neste problema de suporte do Windows:

O Tensorflow requer que o Bazel seja compilado a partir da fonte, se não me engano, o Bazel é um sistema de compilação como o GNU Make, mas não um compilador.

Com base no que vi ao examinar brevemente o código, o código-fonte do próprio Tensorflow usa principalmente a biblioteca C++ padrão para coisas como threading, portanto, não deve ser problema compilar no Windows, bibliotecas de terceiros essenciais que ele usa todas têm suporte ao Windows.

Portanto, acho que o principal problema está na falta de método de compilação para o Windows, em vez do próprio código-fonte. Existem trabalhos sobre o uso do CMake para compilar em vez do Bazel, mas ainda não concluídos. Se alguém puder traduzir as regras de compilação do Bazel para as do CMake, acho que poderemos construí-las no Windows.

O suporte estável do Bazel para Windows ainda tem um longo caminho a percorrer .

Por favor, corrija-me se eu errei aqui.

@eiva Se você deseja suporte apenas para CPU, pode executar o Tensorflow em uma máquina virtual. Eu o executei no Ubuntu 14 em um host Windows 10 sem problemas.

@rongjiecomputer Eu honestamente me pergunto por que eles usaram o Bazel ...

@eiva Há também um contêiner Docker pronto que você pode usar em um host Windows. Trabalha fora da caixa. Não é tão divertido trabalhar com tensorflow sem suporte a GPU. Para as coisas legais, pelo menos uma única GPU é um requisito. É claro que você pode executar coisas básicas como regressão linear ou logística sem uma GPU. Mas esse não é o traje longo do tensorflow. Ele é feito para tarefas de aprendizado profundo que basicamente exigem uma GPU.

@marklit eu já o uso dessa maneira, mas a maior parte do meu aplicativo é executado no Windows e a maior parte do desenvolvimento está acontecendo no Windows ... Não é fácil alternar o sistema operacional toda vez que faço algo com diferentes partes do sistema ...

@Loo Rong
Sua especulação está certa!
https://www.quora.com/Why-did-Google-decide-to-use-Bazel-with-TensorFlow/answer/Derek-Murray-3

Em 12 de setembro de 2016 12h17, "Eugene Ivanchenko" [email protected]
escrevi:

@marklit https://github.com/marklit eu já uso assim, mas a maioria
do meu aplicativo em execução no Windows, e a maior parte do desenvolvimento está acontecendo
windows... Não é fácil mudar de sistema operacional toda vez que faço algo com
diferentes partes do sistema...


Você está recebendo isso porque está inscrito neste tópico.
Responda a este e-mail diretamente, visualize-o no GitHub
https://github.com/tensorflow/tensorflow/issues/17#issuecomment -246239719,
ou silenciar o thread
https://github.com/notifications/unsubscribe-auth/AEBIBhhA-t1MrFnddm5k-wER0KAm_p30ks5qpNJTgaJpZM4GexU4
.

Obrigado por todo o interesse no TensorFlow no Windows! Estamos progredindo em duas frentes principais:

  1. Adaptando os arquivos Bazel BUILD do TensorFlow para funcionar no Windows. Você pode ter visto algumas solicitações de pull recentes do @meteorcloudy nessa direção (como # 4449), e nosso plano final é ter suporte total para a criação do TensorFlow, usando o Bazel, no Windows.
  2. Modificando o runtime do TensorFlow para compilar com o compilador Visual C++ 2015. Eu tenho trabalhado nesse esforço, e a diferença entre HEAD e meu branch de trabalho está diminuindo a cada dia. Por enquanto, estou usando o CMake para compilar o TensorFlow usando o Visual Studio/MSBuild, mas pretendo mudar para o Bazel quando os arquivos BUILD funcionarem em várias plataformas.

Esperamos fazer um anúncio em breve, com um pacote PIP binário e instruções para criar o TensorFlow no Windows. Enquanto isso, atualizaremos esse problema quando tivermos novidades para compartilhar.


Respondendo às perguntas específicas de @kestrelm :

  1. Atualmente, estou usando o CMake para gerar uma solução VS com vários projetos e mesclaremos isso como parte do item (2) acima.
  2. No mínimo, podemos gerar uma DLL de extensão Python contendo o tempo de execução e todos os kernels (o equivalente a tensorflow/python/_pywrap_tensorflow.so ), e fornecer instruções para construir um binário C++ vinculado estaticamente (o equivalente a tensorflow/cc/tutorials/example_trainer.cc ).
  3. Podemos facilmente fazer uma versão do tempo de execução com esses recursos (algo como o subconjunto Android de kernels relacionados à inferência em uma DLL por trás da API C), embora provavelmente não faça parte da versão inicial. No entanto, será possível modificar os arquivos de compilação para criar um destino que tenha essas propriedades, e ficarei feliz em ajudar quem estiver tentando fazer isso.

Trabalho incrível, @mrry!

Esperamos fazer um anúncio em breve, com um pacote PIP binário e instruções para criar o TensorFlow no Windows

Você pode dar alguma estimativa aproximada de quando esse anúncio será? Eu não posso esperar!

@mrry : Derek, atualização sólida. Você tem uma versão de GPU binária (BETA) antes que o restante do framework makefile/compiler se solidifique? Pelo menos as pessoas poderiam experimentar a API Python ...

Caros Gurus:

Eu tentei construir o tensorflow a partir do código-fonte no Windows 10. Ele relata que o bazel já é suportado no Windows, embora possa não ser estável. No entanto, eu tenho um trabalho.
No entanto, quando tentei construir o tensorflow, há dois problemas, primeiro indica que "bazel clean --expunge_async" falhou com problema de permissão. Aposto que não é tão grave. O próximo problema é um pouco vital, pois bloqueia a compilação. relata:

...
INFO: Encontrado 1 alvo...
INFO: Escrevendo explicação de reconstruções para 'logfile'
ERRO: falta o arquivo de entrada '@local_config_cuda// cuda:lib64/libcublas.so '.
ERRO: C:/tensorflow/tensorflow/tools/pip_package/ BUILD:23 :1: //tensorflow/tools/pip_ package:build_pip_package : faltando o arquivo de entrada '@local_config_cuda// cuda:lib64/libcublas.so '.
Destino //tensorflow/tools/pip_ package: build_pip_package falhou ao compilar
ERRO: C:/tensorflow/tensorflow/tools/pip_package/ BUILD:23 :1 1 arquivo(s) de entrada não existe(m).
INFO: Tempo decorrido: 34,644s, Caminho Crítico: 1,52s

Na verdade, durante o processo de configuração, desabilito deliberadamente o suporte à GPU, então por que ele tenta carregar a biblioteca dinâmica relacionada ao CUDA?

Como desabilito o suporte à GPU, as bibliotecas de stub são criadas corretamente com tamanho zero e com a extensão de arquivo DLL. No entanto, como na mensagem de erro, não sei de onde se originou o requisito de carregar bibliotecas relacionadas ao CUDA. Eu verifiquei vários arquivos, mas ainda não tenho idéia. Enquanto isso, também acho que o arquivo está mal escrito, pois deve procurar arquivos DLL em vez de arquivos SO. No entanto, ainda não tenho ideia.

Alguém tem alguma ideia para este problema? Muito obrigado.

Como você deve ter visto com a fusão do PR #4778, agora temos suporte preliminar para a criação do TensorFlow no Windows usando o CMake. Ele suporta a criação de uma versão do TensorFlow somente para CPU para uso no programa de treinamento de exemplo C++ e um pacote PIP para uso do Python. Para obter mais detalhes e instruções sobre como criar o TensorFlow a partir da origem no Windows, consulte o leia-me do CMake .

Este é um código de qualidade alfa, e esperamos que haja bugs nesta versão inicial. Se você encontrar um, levante um novo problema no GitHub para o problema específico.

Nosso foco agora muda para obter suporte de GPU para TensorFlow no Windows e fazer a transição para uma compilação comum baseada em Bazel para Windows e Linux. Se você tiver outras solicitações de recursos, levante um novo problema no GitHub.

Eu estava usando este projeto pré-construído https://github.com/shishaochen/TensorFlow-0.8-Win , mas ele não suporta GPU.

@mrry Olá, Derek, agradecemos sua contribuição ao TensorFlow.
@cesardelgadof Olá, Cesar, obrigado pelas informações.

No entanto, acho que o obstáculo anterior que impedia a criação do TensorFlow na plataforma Windows é a indisponibilidade do bazel no Windows. Como agora está disponível, embora possa não ser estável, então, na minha opinião, é melhor tentar resolver o problema à frente ao construir o TensorFlow usando o bazel.

Pessoalmente, acho que os caras do Google, se eles tiverem o plano de oferecer suporte à compilação nativa no Windows, provavelmente escolherão o bazel. E assim que a solução oficial estiver disponível, acho que as pessoas mudarão de cmake para bazel. Então, se existe um dia assim, por que trabalhamos juntos para que o dia chegue mais cedo?

No entanto, tentarei a versão cmake, e espero que outra pessoa também experimente o sistema de compilação bazel. Provavelmente podemos descobrir de onde vem o erro desagradável e localizar o arquivo de configuração mal escrito.

Obrigado por todos vocês.

@mrry Obrigado pela grande contribuição! Tentei seguir suas instruções. Todos parecem funcionar perfeitamente (por cerca de 45 minutos) até que falhou com:

O destino "BeforeGenerateProjectPriFile" listado em um atributo BeforeTargets em "C:\Program Files (x86)\MSBuild\Microsoft\NuGet\Microsoft.NuGet.targets (186,61)" não existe no projeto e será ignorado.
Concluído o projeto de construção "H:\PycharmProjects\tensorflow\tensorflow\contrib\cmake\build\tf_python_build_pip_package.vcxproj" (destinos padrão) -- FAILED.

"H:\PycharmProjects\tensorflow\tensorflow\contrib\cmake\build\tf_python_build_pip_package.vcxproj" (destino padrão) (1) ->
"H:\PycharmProjects\tensorflow\tensorflow\contrib\cmake\build\pywrap_tensorflow.vcxproj" (destino padrão) (3) ->
"H:\PycharmProjects\tensorflow\tensorflow\contrib\cmake\build\tf_core_cpu.vcxproj" (destino padrão) (4) ->
"H:\PycharmProjects\tensorflow\tensorflow\contrib\cmake\build\tf_core_framework.vcxproj" (destino padrão) (5) ->
(destino CustomBuild) ->
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets(171,5): erro MSB6006: "cmd.exe" encerrado com código 1. [H:\PycharmProjects \t
ensorflow\tensorflow\contrib\cmake\build\tf_core_framework.vcxproj]

30 Warning(s)
1 Error(s)

@laudney Obrigado por tentar e lamento ver que você está recebendo um erro! Como esse problema tem muitos assinantes, criei o problema #4798 para rastrear a correção desse problema, então vamos continuar a discussão por lá.

@mingyr Esperamos ter o TensorFlow compilado no Windows com Bazel o mais rápido possível. @meteorcloudy tem feito um excelente trabalho para que isso aconteça, e ele acabou de enviar o PR #4796, que permite que Bazel crie //tensorflow/cc:tutorials_example_trainer no Windows. Vamos tentar fundir isso em breve.

@mrry Obrigado por # 4798 , agora ele compila ok, também testei o python whl install e nenhum problema encontrado até agora.

Espero ver tensorflow em conda em breve.

Use o Tensorflow em ambientes virtualizados, pois o Docker/VirtualBox é uma solução muito ruim. O Tensorflow deve ser executado no Windows nativamente. (E como a maioria é codificada em Python não deve ser um problema criar uma distribuição para Windows.)

Olá a todos! Conforme mencionado por @mrry , estou trabalhando na compilação do TensorFlow Windows com o Bazel. Com o PR #4796 e o ​​PR #4874 mesclados, o treinador de exemplo de C++ agora se baseia no Windows com o Bazel 0.3.2 !

Aqui está uma breve instrução sobre como construir o TF com o Bazel no Windows:

  • Instale o Bazel no Windows ( instruções de instalação )
  • Configure o ambiente que o Bazel precisa para construir C++ com MSVC
  • Clone o repositório TF, execute ./configure no MSYS
  • Correr bazel build -c opt --cpu=x64_windows_msvc --host_cpu=x64_windows_msvc //tensorflow/cc:tutorials_example_trainer --verbose_failures

Por conveniência, você pode colocar as opções de construção em ~/.bazelrc , a minha é assim:

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 

Um problema conhecido é que o script de wrapper MSVC do Bazel não suporta python3 no Bazel 0.3.2, mas já foi corrigido em https://github.com/bazelbuild/bazel/commit/ce5c33dd7e96aff0cf1eb993edd41a5fe8c423f2. Você pode resolvê-lo definindo BAZEL_PYTHON para um binário python 2.7 ou construindo o Bazel a partir do HEAD.

Construir o treinador de exemplo C++ com Bazel leva cerca de 20 minutos na minha máquina (Windows 7, CPU 2.9GHz, RAM 64G), uma compilação incremental depois de alterar algum arquivo de origem (ou seja array_ops.cc ) leva cerca de 1 minuto.

Também estou fazendo algum progresso na construção do pacote PIP python no Windows com Bazel, enviarei um PR o mais rápido possível.

Tente criar o TensorFlow com o Bazel no Windows e diga-nos o que podemos melhorar!

@meteorcloudy , Olá, Yun:
O treinador de exemplo C++ deve ser compilado pelo binário bazel pré-compilado instalado no Windows, ou eu poderia sincronizar com a versão git mais recente do bazel e usar o bazel personalizado?

Na verdade eu escolho a segunda forma, uso o customer build bazel, porém, ele reclama da seguinte forma:

ERRO: C:/tensorflow/tensorflow/core/ BUILD:108 :1: a saída 'tensorflow/core/exampl e/example.pb.h' não foi criada.
ERRO: C:/tensorflow/tensorflow/core/ BUILD:108 :1: a saída 'tensorflow/core/exampl e/example_parser_configuration.pb.h' não foi criada.
ERRO: C:/tensorflow/tensorflow/core/ BUILD:108 :1: a saída 'tensorflow/core/exampl e/example.pb.h' não foi criada.
ERRO: C:/tensorflow/tensorflow/core/ BUILD:108 :1: a saída 'tensorflow/core/exampl e/feature.pb.h' não foi criada.
......

Procedimentos para build que fiz:
$ 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

Alguma sugestão?

Obrigado.

@meteorcloudy Oi Yun,

Eu segui o procedimento semelhante, mas recebo o seguinte erro:
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: Processo encerrado com status 1.
azel-out/vc_14_0_x64-opt/genfiles/external/protobuf/src: aviso: o diretório não existe.

Eu verifiquei as pastas e não há diretório src no protobuf. Também não há pasta grpc em bazel_out/host/bin/external/ (portanto, não há arquivo grpc_cpp_plugin.exe).

este erro é seguido por um monte de erros que os arquivos no tensorflow/core não são criados

Alguma idéia de como consertar isso?

Obrigado

@mingyr @karthiek Obrigado por tentar construir TF com Bazel!
Infelizmente, de acordo com http://ci.bazel.io/job/TensorFlow/ , a compilação do TF está falhando no Linux com o Bazel em HEAD com erro semelhante fornecido por você. Estamos corrigindo isso, enquanto isso, você pode tentar novamente com o Bazel 0.3.2 ?

@meteorcloudy Oi Yun:

O que você quer dizer com "você pode tentar novamente com o Bazel 0.3.2"?

Você quer dizer o binário oficial pré-construído do Windows, ou podemos sincronizar com a versão mais recente do bazel e usar minha compilação?

Na verdade eu já sincronizo com a versão mais recente do bazel e uso meu build. Se você indicar que eu deveria tentar o binário pré-construído oficial para ver se o problema ainda está pendente, por favor me avise.

BR

@mingyr Sim, quero dizer o "binário pré-construído oficial". Estou tendo o mesmo erro após a sincronização com HEAD.
Por favor, veja https://github.com/bazelbuild/bazel/issues/1929

@meteorcloudy Oi, Yun

Obrigado pela sugestão. Tentei usar o binário pré-compilado 0.3.2 e consegui compilar e gerar o arquivo tutorilas_example_trainer.exe.

@karthiek Que bom que você conseguiu! Quanto tempo levou? É mais rápido que a compilação do CMake?

@meteorcloudy Demorou cerca de 15 minutos (CPU Intel(R) Core(TM) i7-6700 @ 3,40 GHz). Foi ontem que tive a necessidade de construir o fluxo tensor no windows. Então, eu tentei diretamente o último método que você sugeriu. Eu não tentei construí-lo usando o CMake.

Olá, tentei seguir a abordagem @meteorcloudy , mas acabei com erros como abaixo. Alguém poderia ajudar?

bazel build -c opt --cpu=x64_windows_msvc --host_cpu=x64_windows_msvc //tensorflow/cc:tutorials_example_trainer --verbose_failures
INFO: destino analisado //tensorflow/cc:tutorials_example_trainer.
INFO: Encontrado 1 alvo...
ERRO: C:/Programming/tensorflow/tensorflow/core/ BUILD:1064 :1: Executando genrule //tensorflow/ core:version_info_gen falhou: bash.exe falhou: erro ao executar o comando
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: Processo encerrado com status 1
Traceback (última chamada mais recente):
Arquivo "tensorflow/tools/git/gen_git_source.py", linha 258, em
gerar(args.generate)
Arquivo "tensorflow/tools/git/gen_git_source.py", linha 210, em gerar
git_version = get_git_version(data["caminho"])
Arquivo "tensorflow/tools/git/gen_git_source.py", linha 151, em get_git_version
"--longo", "--sujo", "--tags"]).strip()
Arquivo "C:\WinPython-64bit-2.7.10.2\python-2.7.10.amd64\lib\subprocess.py", linha 566, em check_output
processo = Popen(stdout=PIPE, _popenargs, *_kwargs)
Arquivo "C:\WinPython-64bit-2.7.10.2\python-2.7.10.amd64\lib\subprocess.py", linha 710, no init
errar, errar escrever)
Arquivo "C:\WinPython-64bit-2.7.10.2\python-2.7.10.amd64\lib\subprocess.py", linha 958, em _execute_child
informações de inicialização)
WindowsError: [Erro 2] O sistema não pode encontrar o arquivo especificado
ERRO: C:/tools/msys64/var/tmp/Bazel/s5nfxnhX/external/jpeg_archive/ BUILD:74 :1: saída declarada 'external/jpeg_archive/jconfig.h' não foi criada por genrule. Isso provavelmente ocorre porque o genrule na verdade não criou essa saída, ou porque a saída era um diretório e o genrule foi executado remotamente (observe que apenas o conteúdo das saídas do arquivo declarado é copiado de genrules executados remotamente)
ERRO: C:/tools/msys64/var/tmp/Bazel/s5nfxnhX/external/gif_archive/ BUILD:35 :1: saída declarada 'external/gif_archive/windows/unistd.h' não foi criada por genrule. Isso provavelmente ocorre porque o genrule na verdade não criou essa saída, ou porque a saída era um diretório e o genrule foi executado remotamente (observe que apenas o conteúdo das saídas do arquivo declarado é copiado de genrules executados remotamente)
Falha ao compilar //tensorflow/cc:tutorials_example_trainer
INFO: Tempo decorrido: 4,967s, Caminho Crítico: 0,96s
FALHA: a compilação NÃO foi concluída com sucesso

@bssrdf seus sintomas parecem semelhantes a https://github.com/bazelbuild/bazel/issues/1463.
É um problema conhecido do bazel no Windows que quebramos se o seu espaço de trabalho não estiver na unidade C: .

Se for esse o caso, a solução alternativa é criar uma junção - se o check-out do tensorflow estiver em d:\src\tensorflow o seguinte deve 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
Desculpe o transtorno, estamos corrigindo isso o mais rápido possível.

@bssrdf hmm em uma segunda olhada, talvez não seja - pode ser que você não tenha git no PATH?

@meteorcloudy Oi, Yun:

Também confirmo que não há problema em compilar o treinador de exemplo C++ usando a versão binária bazel pré-compilada 0.3.2.

Meu notebook é antigo e enquanto isso ele executa outras tarefas, então o tempo de compilação é absurdo do ponto de vista da marcação de bancada.

Obrigado pelo seu trabalho e veja a palavra para compilar o pacote python PIP no Windows

BR

@mingyr Isso é ótimo!
Mas apenas uma notificação para todos, o treinador de exemplo não pode ser construído no TF HEAD, porque minha correção foi revertida em be3bc472a52571a83f048479d6a4fa528b5a495e por algum motivo.
A boa notícia é que a construção do pacote PIP python com o Bazel está próxima! Por favor, veja PR nº 4942

@dslomov obrigado pela resposta. Eu tive que resolver o problema do bazel non-c: drive workspace como você sugeriu. Instalei o git para windows e o git pode ser visto no PATH pelo MSYS2.

Acabei de relançar o comando bazel build e está funcionando agora, como um milagre. Não sei o que aconteceu ontem. De qualquer forma, esta é apenas mais uma confirmação de sucesso no Windows 10 home, VS 2015 community edition, bazel pré-construído 0.3.2 e Winpython-2.7.10.2

Muito obrigado pelo trabalho de Yun.

@meteorcloudy , é possível construir a versão da GPU seguindo o procedimento (com alterações na compilação do bazel, é claro)?

@mrry Oi Derek, obrigado pela sua contribuição, mas estou com esse problema com o tensorboard, não 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 Provavelmente não, porque o código ainda não suporta GPU no Windows. @mrry fez todo o trabalho de compilar o código do TF com o MSVC e tem se concentrado em corrigir o suporte à GPU.

Temos algum tipo de palpite sobre o ETA para uso em produção?

Como parece relevante para as pessoas aqui usando o Bazel no Windows; eu criei um pacote de chocolate para facilitar a instalação. https://chocolatey.org/packages/bazel. Por favor, experimente e se houver algum problema (é novo), tweet ou levante um problema em bazelbuild/bazel.

O suporte à GPU acabou graças a @mrry e @guschmue.
As instruções serão atualizadas no readme .

Alguém conseguiu compilar no Windows e criar um pacote PIP? Obrigada. :)

master (66f979714c9a8582059f383ec1505d13c9e8c523) deve compilar bem para cpu e gpu do windows. As instruções estão em tensorflow/contrib/cmake/README.md (use cmake 3.6 por enquanto).

Tensorboard não está incluído?, porque não 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'

Alguns módulos python estão faltando no pip: exemplos, alguns de contrib e tensorboard, não são copiados para a roda ao construir com cmake.
Deixe-me verificar o que é apenas uma questão de adicioná-lo com uma opção para tf_python.cmake ou se houver complicações.

Eu compilei tensorflow para python de acordo com as instruções, mas recebo uma falha originada de cudnn ao usar tf.nn.conv2d na minha GPU.

O código de exemplo que causa a falha é

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

Isso faz com que o processo python falhe e dê essa saída no console do 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)

Enquanto brincava com as diferentes versões de cudnn64_5.dll , consegui fazer o código funcionar uma vez e confirmei que a GPU estava sendo usada, mas mesmo depois de tentar todas as versões de cudnn que eu baixado, não tive sorte em fazê-lo funcionar uma segunda vez.

tentei seu script e funciona para mim. Testamos apenas com cudnn5.1, tudo mais antigo eu não sei.
Eu faria uma instalação limpa do cudnn5.1, compilaria com isso e garantiria que o cudnn64_5.dll no PATH fosse 5.1.
Outra coisa a verificar: sua memória livre é um pouco menor do que eu esperava - talvez haja outro python em execução que tenha o dispositivo aberto?

Eu tentei uma reconstrução limpa com um novo cudnn baixado e no PATH ( cudnn-8.0-windows10-x64-v5.1 ), mas sem charuto. cudnn64_5.dll deste download é 'Versão do arquivo': 6.14.11.8000 e tem 'Descrição do arquivo': NVIDIA CUDA 80.0.29 CUDNN Library .

cublas64_80.dll do caminho CUDA 8.0 tem a mesma 'Versão do arquivo', mas 'Descrição do arquivo': NVIDIA CUDA 80.0.45 BLAS Library

cufft64_80.dll e curand64_80.dll também têm 'Versões de arquivo' correspondentes, mas são 8.0.44 em 'Descrição do arquivo'

Os drivers GPU que instalei são a versão 369.30 dos drivers CUDA mais recentes e nvcuda.dll no System32 tem 'File version': 6.14.13.6930 e tem 'File description': NVIDIA CUDA 80.0.44 driver .

Acredito que a pouca memória do dispositivo seja apenas porque tenho um 970 que tem apenas 3,5 GB de memória útil e o CUDA não gosta de usar os últimos 0,5 GB.

Eu tenho a mesma versão cudnn e funciona bem para mim. Há um monte de testes conv python na árvore tf e todos eles estão passando. Eu uso principalmente um 970 para testes. Seu log foi específico de que teve problemas ao inicializar o cudnn. Deixe-me dar uma olhada no código de inicialização.

OK, o problema parece ser um driver. Posso usar com êxito cudnn e convoluções uma vez cada vez que reinicio o driver de vídeo (usando o gerenciador de dispositivos, desabilite e habilite). Uma vez que eu o usei em um processo, no entanto, qualquer uso futuro não inicializou.

Além disso, acho que outros processos estão tendo falhas relacionadas ao driver, uma vez que o cudnn foi inicializado.


Atualização: desinstalei e reinstalei meu driver gráfico e agora posso ter um processo (kernel jupyter) com cudnn funcionando corretamente, mas até fechar esse kernel, todas as tentativas de usar cudnn em outros kernels encontrarão a mesma falha. Se eu reiniciar o kernel em funcionamento, posso executar o código em um kernel diferente sem precisar recarregar o driver.

Ele compilou para mim, mas tive que adicionar shell=True na linha 150 do arquivo gen_git_source.py. Caso contrário, eu receberia o mesmo erro mostrado em:
http://stackoverflow.com/questions/24306205/file-not-found-error-when-launching-a-subprocess

@synap5e se você executar isso em um tf.Session() normal, uma segunda instância não funcionará porque tf gerencia toda a memória na gpu. Você pode alterar a configuração para Session() assim:
config = tf.ConfigProto()
config.gpu_options.per_process_gpu_memory_fraction = 0,4
com tf.Session(config=config) como sess:
...
com isso eu posso executar 2 scripts em um loop que atingiu cudnn. Isso é o mesmo no linux.
Mas trava é diferente no windows - no linux fica CUDA_ERROR_OUT_OF_MEMORY, no windows fica CUDNN_STATUS_NOT_INITIALIZED. Indo dar uma olhada nisso.

Ah, então o problema era que meu sistema estava usando muita memória de vídeo mesmo antes de inicializar o tensorflow. Eu acho que o material do driver estava apenas reduzindo a memória do dispositivo usado para que o tensorflow pudesse inicializar corretamente. Obrigado!

Pessoal, é possível construir no Windows sem MSVS? O SDK do Windows 10 deve conter o compilador C++, isso não seria suficiente para a tarefa?

@zandaqo Você só precisa do compilador MSVC autônomo com Windows 10 SDK e CMake, portanto, não há necessidade de instalar todo o Visual Studio. O SDK do Windows 10 contém dll, bibliotecas estáticas, arquivos de cabeçalho e códigos-fonte para as bibliotecas e algumas ferramentas úteis, mas não contém compilador.

Olá!

Sou novo no Python e no Tensorflow, mas fiz algumas coisas do MNIST no passado. Eu segui as instruções em tensorflow/contrib/cmake/README.md, e funcionou bem, GPU parece estar funcionando bem também. O Tensorflow no Windows parece estar quebrando em alguns lugares, como esperado, e eu só quero verificar se minha compreensão da quebra está correta.

Tentei seguir https://www.tensorflow.org/versions/r0.11/tutorials/mnist/beginners/index.html e não funciona, pois esse caminho de importação (tensorflow.examples.tutorials.mnist) não funciona existir. Isso se deve ao fato de tf.contrib não estar incluído no pacote pip, certo?

Só por curiosidade, fiz algo aparentemente muito horrível: copiei o conteúdo do repositório tensorflow sobre o local da biblioteca em site-packages\tensorflow, que eu esperava causar a quebra de muitas coisas. É assim que quebra:

  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'

Não consegui encontrar a definição de gen_variable_ops em nenhum lugar, mas a documentação diz que tf.load_op_library() não está implementado no momento. Então, gen_variable_ops é implementado em outro lugar, que precisa ser carregado usando tf.load_op_library() . Então, a falta de tf.load_op_library é o que está causando o problema, certo?

Consegui construir com sucesso o pacote pip seguindo o caminho cmake e instalei-o com pip install tensorflow-0.11.0rc1_cmake_experimental-py3-none-any.whl que relatou uma instalação bem-sucedida. No entanto, quando tento importar o tensorflow, recebo os seguintes erros:

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

Eu perdi alguma dependência aqui ou algo estava errado com a compilação/instalação?

@zandaqo , tive esse problema quando executo o tensorflow pela primeira vez no Windows. Você só precisa compilar os exemplos e adicionar a pasta com os exemplos compilados ao seu caminho. Ao compilar os códigos de exemplo, ele também compilará algumas DLLs necessárias para o Tensorflow.

@ErivaldoJunior Ao compilar os exemplos você quer dizer: MSBuild /p:Configuration=Release tf_tutorials_example_trainer.vcxproj ? Eu fiz isso antes de compilar o pacote pip. Ele compila para .\Release , essa é a pasta para adicionar ao caminho? Acabei de tentar adicioná-lo, mas sem sorte até agora.

Eu vejo arquivos chamados pywrap_tensor mencionados nos erros nessa pasta .\Release , talvez copiá-los manualmente em algum lugar possa ajudar o Python a vê-los. Não tenho certeza onde embora.

@zandaqo , isso mesmo. Acabei de adicionar essa pasta Release ao meu caminho do Windows e funcionou. No entanto, testei iniciando o python my_tensorflow_script.py a partir de uma janela CMD. Não sei se funciona se você usar algum tipo de IDE ou iPython.

@ErivaldoJunior Obrigado, você estava certo sobre a falta de DLLs, embora no meu caso tenha sido zlib.dll que estava faltando no pacote e na pasta .\Release . Copiei manualmente zlib.dll para a pasta, como foi sugerido aqui e a importação agora funciona.

Consegui construir o tensorflow! Mas cmake 3.3.1 causa erro de compilação, 3.6.3 funciona bem.

Bom saber! Gostaríamos de receber um PR com uma versão mínima apropriada
declaração no arquivo cmakelist.

No sábado, 5 de novembro de 2016, Takahiro Kubo [email protected]
escrevi:

Consegui construir o tensorflow! Mas cmake 3.3.1 causa erro de compilação,
3.6.3 funciona bem.


Você está recebendo isso porque comentou.
Responda a este e-mail diretamente, visualize-o no GitHub
https://github.com/tensorflow/tensorflow/issues/17#issuecomment -258649999,
ou silenciar o thread
https://github.com/notifications/unsubscribe-auth/AAjO_Ys4MI03pcc3tCR_BzsqIXFrQTTcks5q7RVRgaJpZM4GexU4
.

@martinwicke , como aqui , parece que a versão mínima conhecida do Cmake é 3.5. Devo alterar o requisito mínimo para 3.5 e atualizar o leia-me do mínimo 3.5 para 3.6?

É bom ver que o TensorFlow agora pode funcionar no Windows com GPU agora. Existem planos para uma versão que não precisa ser instalada a partir de fontes? E se sim, algum ETA sobre isso? Seria ótimo se o processo de configuração fosse tão direto quanto no Linux, estou usando o TensorFlow no Linux sem problemas e gostaria de fazê-lo no Windows, mas os requisitos e o processo de configuração documentados no readme atualmente parecem um pouco complicados para aqueles de nós que não temos muito tempo...

Ei pessoal! Com o lançamento do Bazel 0.4.0 , o pacote TensorFlow PIP agora pode ser compilado com o Bazel no Windows.
Graças à contribuição de @petemounce , você pode usar choco install bazel --version 0.4.0 para instalar o Bazel facilmente.

@gunan já configurou um trabalho ci para isso: http://ci.tensorflow.org/job/tensorflow-pr-win-bazel/
Basicamente, estamos usando este script . Portanto, com a modificação adequada das variáveis ​​de ambiente (se suas instalações do Visual Studio, Python 3 ou msys não estiverem nos locais padrão), você também poderá criar o pacote PIP com o Bazel!

Atualização: eu recomendaria executar os comandos no script manualmente se você tiver problemas para executá-lo diretamente.

@meteorcloudy Obrigado pela atualização!
Construir com bazel não funcionou para mim. Eu recebo ERRO: CreateFile(C:\tmp\Bazel\44EoGNou\install)
Alguma maneira de depurar isso? Eu tenho janelas localizadas (russo), talvez seja essa a causa

Registro completo. Executando no 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 Isso é ( ERROR: CreateFile(C:\tmp\Bazel\44EoGNou\install) ) bazelbuild/bazel#1744 eu acho. Isso só acontece na primeira vez após a instalação do bazel. Não parece haver repercussões.

@KhabarlakKonstantin Como @petemounce apontou, você pode ignorar esse erro com segurança. E você também pode pular rm -rf C:/tmp/Bazel/44EoGNou se o erro Device or resource busy estiver bloqueando você. Eu acho que é porque ele tentou remover jvm.out antes que o jvm fosse totalmente desligado após invocar bazel shutdown .

@petemounce @meteorcloudy Obrigado pela ajuda
O problema é que ele não começa a construir. Eu comentei bazel shutdown e agora vai um pouco mais longe, mas ainda trava

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

Não há mais saída aqui

@KhabarlakKonstantin Parece que a configuração do OpenCL acabou de ser adicionada em ./configure mas não desativada por padrão no Windows, então execute manualmente esse script ou adicione 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

Alguém mais está tendo esses erros com o Pragma (ignore pywrap one)?

Construindo com GPU e todas as especificações de acordo com o readme.

@Carmezim , funcionou bem para mim. Não obtive nenhum desses erros.

Eu tenho um pr para corrigir isso aqui: https://github.com/tensorflow/tensorflow/pull/5421

@guschmue Legal! Obrigado pela resposta rápida

Depois de corrigir _Pragma, é isso que recebo no mesmo arquivo:

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 corrigirá isso também.

Posso construir com suporte a GPU usando o bazel?

@ edwin100394 ainda não há suporte a GPU no Windows usando o bazel.
Nós ainda estamos trabalhando nisso.

Em segunda-feira, 7 de novembro de 2016 às 21h33, edwin100394 [email protected]
escrevi:

Posso construir com suporte a GPU usando o bazel?


Você está recebendo isso porque foi mencionado.
Responda a este e-mail diretamente, visualize-o no GitHub
https://github.com/tensorflow/tensorflow/issues/17#issuecomment -259049695,
ou silenciar o thread
https://github.com/notifications/unsubscribe-auth/AHlCOXNRNoMFmnSPfnkTMLsRHcIcl9TXks5q8AmigaJpZM4GexU4
.

@meteorcloudy Adicionar export TF_NEED_OPENCL=0 me ajudou a ir um pouco mais longe

Agora estou recebendo outro erro:

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

Eu comecei do zero e construí bazel a partir de fontes. Agora está construindo quase até o fim

Ele falha no tempo do link no 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

Olá pessoal, agora que o suporte rudimentar do Windows está em vigor, vou bloquear este problema para novos comentários, mas mantê-lo aberto até que tenhamos uma versão estável. Daqui para frente:

  • Se você tiver um problema, abra um novo problema no TensorFlow para descrever seu problema e preencha o modelo de problema padrão. Isso nos ajudará a rastrear e atribuir o trabalho restante que precisamos fazer para liberar o TensorFlow-on-Windows.
  • Continuaremos a usar esse problema para anúncios (raros) sobre o suporte ao Windows, para que você possa continuar assinando o problema para receber um feed de baixo tráfego sobre melhorias no TensorFlow-on-Windows.

Mais uma vez, obrigado por todo o seu interesse no TensorFlow-on-Windows, e agora vamos voltar ao trabalho!

Hoje anunciamos o suporte nativo do Windows no TensorFlow 0.12 , com pacotes para Python 3.5. Se você instalou a versão de 64 bits do Python 3.5 (do Python.org ou do Anaconda), pode instalar o TensorFlow com um único comando:

C:\> pip install tensorflow

Para suporte a GPU, se você tiver o CUDA 8.0 instalado, poderá instalar o seguinte pacote:

C:\> pip install tensorflow-gpu

Agora que o Windows é uma configuração com suporte, vou encerrar este problema; por favor abra um novo problema se você tiver problemas com esses pacotes. Ainda existem algumas discrepâncias entre o pacote do Windows e as outras plataformas, descritas nas notas de lançamento . Estaremos trabalhando nas próximas semanas para fechar essas lacunas.

Obrigado por todo o seu interesse no TensorFlow no Windows!

Esta página foi útil?
0 / 5 - 0 avaliações