2 votes

ImportError: impossible d'importer le nom 'abs' depuis tensorflow.python.keras._impl.keras.backend

Versions actuelles Stacks:

python 3.5

tensorflow                    1.14.0                
tensorflow-estimator          1.14.0                
tensorflow-gpu                1.14.0                
tensorflow-tensorboard        0.1.8 

protobuf                      3.9.1

Keras                         2.2.4                 
Keras-Applications            1.0.7                 
Keras-Preprocessing           1.0.9

Pilotes & Machine:

Ubuntu 16.04 , NVIDIA-SMI 396.54 , CUDA - 9.0 , CuDnn 7 , libcudnn - 7.4.1

Résumé-

Impossible d'importer abs depuis tensorflow.python.keras._impl.keras.backend on tensorflow-gpu == 1.14.0

Et impossible d'obtenir l'attribut CheckpointableBase sur tensorflow-gpu == 1.8.0

Quelle version de tensorflow-gpu et keras prend en charge à la fois l'attribut CheckpointableBase et 'abs' depuis tensorflow.python.keras._impl.keras.backend ?

Détails -

Je suis actuellement en train d'entraîner matterport mask rcnn avec Keras==2.2.4. Selon certains threads, pour obtenir abs, j'ai essayé de mettre à jour tensorflow-gpu en 1.8.0, de mettre à jour protobuf. Bien que j'ai alors pu importer abs, j'ai fini par recevoir " AttributeError: module 'tensorflow.python.training.checkpointable' n'a pas l'attribut 'CheckpointableBase' " sur tensorflow-gpu en 1.8.0. Ensuite, pour obtenir CheckpointableBase, certains fils ont pointé à nouveau vers la mise à jour de tensorflow-gpu == 1.14.0.

Traceback :

Traceback (most recent call last):
  File "/home/kalpit/Desktop/palash/m-rcnn-traning/data/libraries/bacteria_rcnn_train.py", line 53, in 
    import keras 
  File "/usr/local/lib/python3.5/dist-packages/keras/__init__.py", line 3, in 
    from . import utils
  File "/usr/local/lib/python3.5/dist-packages/keras/utils/__init__.py", line 6, in 
    from . import conv_utils
  File "/usr/local/lib/python3.5/dist-packages/keras/utils/conv_utils.py", line 9, in 
    from .. import backend as K
  File "/usr/local/lib/python3.5/dist-packages/keras/backend/__init__.py", line 84, in 
    from .tensorflow_backend import *
  File "/usr/local/lib/python3.5/dist-packages/keras/backend/tensorflow_backend.py", line 5, in 
    import tensorflow as tf
  File "/usr/local/lib/python3.5/dist-packages/tensorflow/__init__.py", line 28, in 
    from tensorflow.python import pywrap_tensorflow  # pylint: disable=unused-import
  File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/__init__.py", line 83, in 
    from tensorflow.python import keras
  File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/keras/__init__.py", line 26, in 
    from tensorflow.python.keras import activations
  File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/keras/activations/__init__.py", line 22, in 
    from tensorflow.python.keras._impl.keras.activations import elu
  File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/keras/_impl/keras/__init__.py", line 21, in 
    from tensorflow.python.keras._impl.keras import activations
  File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/keras/_impl/keras/activations.py", line 23, in 
    from tensorflow.python.keras._impl.keras import backend as K
  File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/keras/_impl/keras/backend.py", line 38, in 
    from tensorflow.python.layers import base as tf_base_layers
  File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/layers/base.py", line 25, in 
    from tensorflow.python.keras import backend
  File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/keras/backend/__init__.py", line 22, in 
    from tensorflow.python.keras._impl.keras.backend import abs
ImportError: cannot import name 'abs'

2voto

PALASH SHINDE Points 51

Bonjour,

J'ai pu résoudre ce problème en supprimant tous les packages python3 de tensorFlow et keras du répertoire dist-packages lui-même, en les désinstallant avec pip3, puis en réinstallant tensorflow==1.8.0
tensorflow-gpu==1.8.0 , Keras==2.2.4

(La raison potentielle qui a provoqué cette erreur spécifique était que python faisait référence à plusieurs fichiers de packages de versions tensorflow-gpu et keras dans le répertoire dis-packages. Bien qu'installer une version spécifique de tensorflow-gpu et keras via pip3 devrait normalement supprimer les versions précédentes existantes. Mais dans mon cas, cela ne s'est pas produit.)

Solution:

  1. Localisez les packages tensorflow , keras dans le répertoire dist-packages en utilisant la commande $ locate --basename '\tensorflow' (si vous utilisez Ubuntu). Dans mon cas, c'est

$ locate --basename '\tensorflow'

sorties -

/usr/local/lib/python3.5/dist-packages/tensorflow
/usr/local/lib/python3.5/dist-packages/tensorflow/include/tensorflow
/usr/share/nginx/html/projects/python/machine-learning/objectDetection/models-master/research/syntaxnet/tensorflow

&

$ locate --basename '\keras'

sorties-

/usr/local/lib/python3.5/dist-packages/keras
/usr/local/lib/python3.5/dist-packages/tensorflow/keras
/usr/local/lib/python3.5/dist-packages/tensorflow/contrib/keras
/usr/local/lib/python3.5/dist-packages/tensorflow/contrib/keras/api/keras
/usr/local/lib/python3.5/dist-packages/tensorflow/python/keras
/usr/local/lib/python3.5/dist-packages/tensorflow/python/keras/_impl/keras
/usr/local/lib/python3.5/dist-packages/tensorflow/tools/api/generator/api/keras
/usr/share/nginx/html/projects/python/Playground/lambda/testkeras/keras
  1. Maintenant que vous connaissez l'emplacement des packages désirés. Il suffit de supprimer les répertoires tensorflow et keras et de désinstaller les packages en utilisant les commandes ci-dessous

Suppression des répertoires

sudo rm -R /usr/local/lib/python3.5/dist-packages/tensorflow/
sudo rm -R /usr/share/nginx/html/projects/python/machine-learning/objectDetection/models-master/research/syntaxnet/tensorflow

sudo rm -R /usr/local/lib/python3.5/dist-packages/keras/
sudo rm -R /usr/share/nginx/html/projects/python/Playground/lambda/testkeras/keras

Désinstallation avec pip3

sudo pip3 uninstall tensorflow
sudo pip3 uninstall tensorflow-gpu
sudo pip3 uninstall keras
  1. Une fois de plus, installer tensorflow, tensorflow-gpu ,keras

    sudo pip3 install tensorflow==1.8.0
    sudo pip3 install tensorflow-gpu==1.8.0 sudo pip3 install Keras==2.2.4

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X