Não foi possível importar o Keras (do TensorFlow 2.0) no PyCharm


8

Acabei de instalar a versão estável do TensorFlow 2.0 (lançada em 1 de outubro de 2019) no PyCharm.

O problema é que o pacote keras está indisponível . Não foi possível importar keras

O erro real é:

" não é possível importar o nome 'keras' do tensorflow "

I foram instalados através pip install tensorflow==2.0.0do CPU versione, em seguida, desinstalado a versão CPU e instalado a versão GPU, viapip install tensorflow-gpu==2.0.0.

Nenhuma das versões trabalhadas acima do TensorFlow estava funcionando corretamente (não foi possível importar keras ou outros pacotes via from tensorflow.package_X import Y).

Se eu reverter o TensorFlow para a versão 2.0.0.b1 , o keras estará disponível como um pacote (o PyCharm o reconhece) e tudo funcionará sem problemas.

Existe alguma maneira de resolver este problema? Estou cometendo um erro no processo de instalação?

ATUALIZAÇÃO --- A importação do console Python funciona e permite as importações sem nenhum erro. Escrever a partir do console funciona


1
Eu instalei hoje e está funcionando bem, usei pip install tensorflow-gpu.
Mukul

Em vez de fornecer uma captura de tela que realmente não mostre nada, você deve fornecer um pedaço de código real que falhe e exiba o problema. Você pode estar importando as coisas da maneira errada.
xdurch0

A captura de tela tem como objetivo demonstrar que o PyCharm é incapaz de ver o pacote keras no TensorFlow. O erro 'não é possível importar keras de tensorflow --- Incapaz de encontrar o módulo keras'
Timbus Calin

Parece ser um erro do PyCharm IDE, tanto quanto li sobre questões separadas abertas no GitHub e no PyCharm: intellij-support.jetbrains.com/hc/en-us/community/posts/…
Timbus Calin

1
Ok, desculpe por talvez parecer um pouco grosseiro, eu realmente não entendi qual era o problema. Que bom que você foi capaz de (mais ou menos) resolvê-lo.
precisa saber é o seguinte

Respostas:


10

Para usuários do PyCharm

Para quem usa PyCharm. Instale a versão futura (EAP) a 2019.3 EAP build 193.3793.14partir daqui . Com isso, você poderá usar o preenchimento automático para a versão estável atual do TensorFlow (ou seja, 2.0). Eu tentei e funciona :).

Para outros IDEs

Para usuários com outros IDEs, isso será resolvido somente depois que a versão estável for lançada, o que acontece de qualquer maneira agora. Mas isso pode levar mais tempo para uma correção. Veja o comentário aqui . Suponho que será sensato esperar e continuar usando version 2.0.0.b1. Por outro lado, evite importações de tensorflow_corese você não desejar refatorar seu código no futuro.

Nota: para que o preenchimento automático funcione, use a declaração de importação conforme abaixo

import tensorflow.keras as tk

# this does not work for autocomplete 
# from tensorflow import keras as tk  

O preenchimento automático funciona para o TensorFlow 2.0.0 na versão da CPU, mas o preenchimento automático não funciona para a versão da GPU.


Sim, eu também esperaria até o PyCharm resolver esse problema. Obrigado pelo comentário.
Timbus Calin 02/10/19

2

RESOLVIDO --- Veja as respostas para este problema abaixo.

SOLUÇÃO 1 (melhor solução)

A resposta aceita é fornecida acima. Funciona na versão EAP, testei em várias máquinas com Windows.

SOLUÇÃO 2

Embora o PyCharm não reconheça os módulos, a execução do arquivo .py funciona. Ainda não sei se esse é um problema do TensorFlow ou PyCharm, mas essa é a solução que eu encontrei, muitas pessoas encontraram esse problema.

PyCharm não vê as importações, considera-as erro

insira a descrição da imagem aqui

SOLUÇÃO 3

Importe os módulos de em tensorflow_corevez detensorflow

Exemplo: from tensorflow_core.python.keras.preprocessing.image import ImageDataGenerator

No entanto, conforme mencionado por @Nagabhushan SN no comentário abaixo e acima na resposta aceita:

Por outro lado, evite importações do tensorflow_core se você não desejar refatorar seu código no futuro.

insira a descrição da imagem aqui


Não acrescenta nada em cima da resposta aceita
Nagabhushan SN

1
A resposta foi realmente editada, no sentido em que afirmei explicitamente que a melhor solução foi adicionada acima.
Timbus Calin 27/11/19

1
OK, desculpe. Foi mal. Se você puder fazer uma pequena alteração, removerei o
voto negativo

1
Além disso, como mencionado na resposta de Praveen Kulkarni, eu sugiro que você adicione o abaixo alertando para a 3ª solução: On the other hand avoid imports from tensorflow_core if you do not want to refactor your code in the future.Você pode fornecer um link para a sua resposta: stackoverflow.com/a/58192020/3337089
Nagabhushan SN

1
Eu adicionei o comentário conforme solicitado, obrigado.
Timbus Calin 27/11/19
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.