导入错误:无法导入名称';abs&x27;来自tensorflow.python.keras.\u impl.keras.backend

导入错误:无法导入名称';abs&x27;来自tensorflow.python.keras.\u impl.keras.backend,tensorflow,keras,deep-learning,python-3.5,Tensorflow,Keras,Deep Learning,Python 3.5,当前版本堆栈: Ubuntu 16.04 , NVIDIA-SMI 396.54 , CUDA - 9.0 , CuDnn 7 , libcudnn - 7.4.1 python 3.5 tensorflow 1.14.0 tensorflow-estimator 1.14.0 tensorflow-gpu 1.14.0

当前版本堆栈:

Ubuntu 16.04 , NVIDIA-SMI 396.54 , CUDA - 9.0 , CuDnn 7 , libcudnn - 7.4.1
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
驱动程序和机器:

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

无法从tensorflow.python.keras导入abs。\u impl.keras.backend on tensorflow gpu==1.14.0

并且无法在tensorflow gpu==1.8.0上获取CheckpointableBase属性

哪个tensorflow gpu和keras版本支持tensorflow.python.keras.\u impl.keras.backend中的CheckpointableBase属性和“abs”?

详细信息-

我目前正在培训matterport mask rcnn,Keras==2.2.4。根据一些人的说法,为了获得abs,我尝试将tensorflow gpu更新为1.8.0,更新protobuf。虽然我当时能够导入abs,但最终在tensorflow gpu上接收到1.8.0版本的“AttributeError:module'tensorflow.python.training.checkpointable'没有属性'CheckpointableBase'。然后,为了获得CheckpointableBase,指向的一些线程再次更新tensorflow gpu==1.14.0。

回溯

Traceback (most recent call last):
  File "/home/kalpit/Desktop/palash/m-rcnn-traning/data/libraries/bacteria_rcnn_train.py", line 53, in <module>
    import keras 
  File "/usr/local/lib/python3.5/dist-packages/keras/__init__.py", line 3, in <module>
    from . import utils
  File "/usr/local/lib/python3.5/dist-packages/keras/utils/__init__.py", line 6, in <module>
    from . import conv_utils
  File "/usr/local/lib/python3.5/dist-packages/keras/utils/conv_utils.py", line 9, in <module>
    from .. import backend as K
  File "/usr/local/lib/python3.5/dist-packages/keras/backend/__init__.py", line 84, in <module>
    from .tensorflow_backend import *
  File "/usr/local/lib/python3.5/dist-packages/keras/backend/tensorflow_backend.py", line 5, in <module>
    import tensorflow as tf
  File "/usr/local/lib/python3.5/dist-packages/tensorflow/__init__.py", line 28, in <module>
    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 <module>
    from tensorflow.python import keras
  File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/keras/__init__.py", line 26, in <module>
    from tensorflow.python.keras import activations
  File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/keras/activations/__init__.py", line 22, in <module>
    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 <module>
    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 <module>
    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 <module>
    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 <module>
    from tensorflow.python.keras import backend
  File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/keras/backend/__init__.py", line 22, in <module>
    from tensorflow.python.keras._impl.keras.backend import abs
ImportError: cannot import name 'abs'
回溯(最近一次呼叫最后一次):
文件“/home/kalpit/Desktop/palash/m-rcnn-traning/data/libraries/bacteria\u rcnn\u train.py”,第53行,在
进口干酪
文件“/usr/local/lib/python3.5/dist-packages/keras/_-init__.py”,第3行,在
从…起导入UTIL
文件“/usr/local/lib/python3.5/dist-packages/keras/utils/__-init__.py”,第6行,在
从…起导入conv_utils
文件“/usr/local/lib/python3.5/dist-packages/keras/utils/conv_-utils.py”,第9行,在
从…起将后端导入为K
文件“/usr/local/lib/python3.5/dist-packages/keras/backend/_-init__.py”,第84行,在
从.tensorflow\u后端导入*
文件“/usr/local/lib/python3.5/dist packages/keras/backend/tensorflow_backend.py”,第5行,在
导入tensorflow作为tf
文件“/usr/local/lib/python3.5/dist-packages/tensorflow/_init__.py”,第28行,在
从tensorflow.python导入pywrapu tensorflow 35; pylint:disable=未使用的导入
文件“/usr/local/lib/python3.5/dist packages/tensorflow/python/_init__.py”,第83行,在
从tensorflow.python导入keras
文件“/usr/local/lib/python3.5/dist-packages/tensorflow/python/keras/_-init__.py”,第26行,在
从tensorflow.python.keras导入激活
文件“/usr/local/lib/python3.5/dist-packages/tensorflow/python/keras/activations/_-init__;.py”,第22行
从tensorflow.python.keras.\u impl.keras.activations导入elu
文件“/usr/local/lib/python3.5/dist packages/tensorflow/python/keras/\u impl/keras/\uuuuuu init\uuuuuuu.py”,第21行,in
从tensorflow.python.keras.\u impl.keras导入激活
文件“/usr/local/lib/python3.5/dist packages/tensorflow/python/keras/_impl/keras/activations.py”,第23行
从tensorflow.python.keras.\u impl.keras将后端导入为K
文件“/usr/local/lib/python3.5/dist packages/tensorflow/python/keras/_impl/keras/backend.py”,第38行,在
从tensorflow.python.layers导入base作为tf_base_层
文件“/usr/local/lib/python3.5/dist-packages/tensorflow/python/layers/base.py”,第25行,在
从tensorflow.python.keras导入后端
文件“/usr/local/lib/python3.5/dist packages/tensorflow/python/keras/backend/_init__.py”,第22行,在
从tensorflow.python.keras.\u impl.keras.backend导入abs
ImportError:无法导入名称“abs”
您好,

我可以通过从dist packages dir本身删除所有tensorFlow和keras python3包,使用pip3卸载,然后再次安装tensorFlow==1.8.0来解决这个问题
tensorflow gpu==1.8.0,Keras==2.2.4

(导致此特定错误的潜在原因是python引用了dis packages dir中的多个tensoflow gpu、keras版本包文件。虽然安装了特定的tensoflow gpu,但通过pip3的keras版本最好删除以前的现有版本。但在我的情况下,没有发生这种情况。)

解决方案:

  • 使用
    $Locate--basename'\tensorflow'
    命令在dist packages dir中找到tensorflow、keras包(前提是您使用的是Ubuntu)。就我而言是这样
  • $locate--basename'\tensorflow'

    输出-

    /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'

    输出-

    /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
    
  • 现在您已经知道了所需的包位置。只需删除tensorflow和keras dir并使用以下命令卸载软件包
  • 删除目录

    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
    
    使用pip3卸载

    sudo pip3 uninstall tensorflow
    sudo pip3 uninstall tensorflow-gpu
    sudo pip3 uninstall keras
    
  • 再次安装tensorflow、tensorflow gpu、keras

    sudo pip3安装tensorflow==1.8.0
    sudo pip3安装tensorflow gpu==1.8.0 sudo pip3安装Keras==2.2.4