ImportError: cannot import name 'abs'
ImportError: cannot import name 'abs'
我在使用 tensorflow-gpu 进行对象检测时遇到问题
我正在关注 youtube 教程
:https://www.youtube.com/watch?v=Rgpfk6eYxJA
我正在尝试在虚拟环境中使用 tensorflow-gpu 检测对象。
我在系统环境变量中添加了python、cuda、tensorflow,也做了
用标签制作训练模型。
我使用 xml_to_csv.py 将 xml 标签转换为 csv。
问题是当我尝试使用 generate_tfrecord.py 生成 tfrecord 时出现错误。请帮助
这是代码
(tensorflow) C:\Users\ice305\tensorflow\models\research\object_detection>python generate_tfrecord.py --csv_input=images\train_labels.csv --image_dir=images\train --output_path=train.record
Traceback (most recent call last):
File "generate_tfrecord.py", line 17, in <module>
import tensorflow as tf
File "C:\Anaconda3\envs\tensorflow\lib\site-packages\tensorflow\__init__.py", line 22, in <module>
from tensorflow.python import pywrap_tensorflow # pylint: disable=unused-import
File "C:\Anaconda3\envs\tensorflow\lib\site-packages\tensorflow\python\__init__.py", line 81, in <module>
from tensorflow.python import keras
File "C:\Anaconda3\envs\tensorflow\lib\site-packages\tensorflow\python\keras\__init__.py", line 24, in <module>
from tensorflow.python.keras import activations
File "C:\Anaconda3\envs\tensorflow\lib\site-packages\tensorflow\python\keras\activations\__init__.py", line 22, in <module>
from tensorflow.python.keras._impl.keras.activations import elu
File "C:\Anaconda3\envs\tensorflow\lib\site-packages\tensorflow\python\keras\_impl\keras\__init__.py", line 21, in <module>
from tensorflow.python.keras._impl.keras import activations
File "C:\Anaconda3\envs\tensorflow\lib\site-packages\tensorflow\python\keras\_impl\keras\activations.py", line 23, in <module>
from tensorflow.python.keras._impl.keras import backend as K
File "C:\Anaconda3\envs\tensorflow\lib\site-packages\tensorflow\python\keras\_impl\keras\backend.py", line 38, in <module>
from tensorflow.python.layers import base as tf_base_layers
File "C:\Anaconda3\envs\tensorflow\lib\site-packages\tensorflow\python\layers\base.py", line 25, in <module>
from tensorflow.python.keras.engine import base_layer
File "C:\Anaconda3\envs\tensorflow\lib\site-packages\tensorflow\python\keras\engine\__init__.py", line 21, in <module>
from tensorflow.python.keras.engine.base_layer import InputSpec
File "C:\Anaconda3\envs\tensorflow\lib\site-packages\tensorflow\python\keras\engine\base_layer.py", line 33, in <module>
from tensorflow.python.keras import backend
File "C:\Anaconda3\envs\tensorflow\lib\site-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'
(tensorflow) C:\Users\ice305\tensorflow\models\research\object_detection>
我不明白 'abs' 是什么。请帮助
我在尝试 seq2seq 教程时遇到了相同的错误消息。我用了tensorflow-cpu, python3.6, Anaconda3和Ubuntu16.04.
问题是tensorflow的路径在我的电脑上不是可变的。
我无法导入 tensorflow,尽管几个小时前我可以。
在 python 交互式 shell 上尝试 "import tensorflow"。如果不能导入,你的问题跟我一样
解决问题的方法是删除计算机上有关 tensorflow 的所有内容,然后重新安装。
顺便说一句,'abs' 是在以下文件中定义的函数:~/anaconda3/envs/tensorflow/lib/python3.6/site\
-packages/tensorflow/python/keras/_impl/keras/backend.py
然后重新安装tensorflow后,不知道为什么,“_impl”目录不见了。
这是因为你已经安装了一些库,并且tensorflow的一些依赖项被安装的库改变了。
执行以下命令即可解决问题
sudo pip install --upgrade tensorflow-gpu
之前安装的tensorflow好像有问题。这些步骤似乎可以解决问题。
1) 卸载tensorflow
2)卸载protobuf
3) 重新安装 tensorflow(它应该与正确的 protobuf 版本一起出现。
还需要去
C:\Program Files (x86)\Microsoft Visual Studio\Shared\Anaconda3_64\Lib\site-packages
并删除所有与tensorflow相关的文件夹
这对我有用 ubuntu 18.0.4
pip uninstall tensorflow protobuf --yes
find $CONDA_PREFIX -name "tensorflow" | xargs -Ipkg rm -rfv pkg
pip install --ignore-installed --upgrade https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-1.9.0-cp36-cp36m-linux_x86_64.whl --no-cache-dir
解决方案来自 GitHub: ImportError: cannot import name 'abs' #20778。
- 编辑:
创建虚拟环境并安装TF-GPU,更快更安全。
- 原答案:
OS : Ubuntu 18.04.1
Python 版本 3.6
解决方案:
已卸载 tensorflow 1.10
python3 -m pip uninstall tensorflow
重新安装了一遍
python3 -m pip install tensorflow==1.8.0
此问题是由于旧版本的 tensorflow 依赖项(如 protobuff 和其他在 tensorflow 安装期间安装的)引起的,因此如果您想使用 tensorflow 1.10,则必须卸载其余依赖项或升级它们。
如果您想安装 1.10.1,则必须删除这些软件包
absl-py
astor
gast
grpcio
markdown
numpy
protobuf
setuptools
six
tensorboard
tensorflow
termcolor
werkzeug
wheel
protobuf
然后sudo python3 -m pip uninstall tensorflow
如果在 root 用户中安装了 tensorflow,则使用
python3 -m pip install tensorflow --user --no-cache
如果您仍然遇到此问题,请重复上述所有步骤并执行
find ~/ -name tensorflow
并删除弹出的每个文件夹并重试安装。
以下建议的解决方案link对我有用
https://github.com/tensorflow/tensorflow/issues/20778#issuecomment-410962482
The full solution to this issue is to clean up all TF installation files from your system. Here is how to do that. Run the following first:
$ pyhthon
> import tensorflow as tf
> tf.__file__
'path/to/your/python/installation/site-packages/tensorflow/__init__.pyc'
From the above command, you need to go and remove the folder
path/to/your/python/installation/site-packages/tensorflow
Finally, you need to run
$ pip uninstall tensorflow # Also add -gpu if you installed the GPU version
$ pip install tensorflow # Also add -gpu if you installed the GPU version
Then it should work.
如果你使用的是Win10+cuda_10.0+cuDNNv7.4.2.24,关注这篇对你有帮助!
- 卸载所有tensorflow和keras相关的。
- 卸载所有相关的 protobuf。
- 删除 'Anaconda3_install_path'\Lib\site-packages、e.g.E:\ProgramData\Anaconda3\Lib\site-packages.
中与 tensorflow、keras、protobuf 相关的折叠
- 安装如下图所示的tensorflow和keras。
在 windows 10 中使用 anaconda Navigator 安装并选择所有可用于 tensorflow 和 keras 的软件包时遇到同样的问题。
解决方案是从命令行清理和安装,使用 "conda install" 仅选择 "gpu" 包:
conda remove keras*
conda remove tensorflow*
conda remove protobuf
pip uninstall tensorflow*
pip uninstall protobuf
conda install tensorflow-gpu
conda install keras-gpu
主要是pip(python包管理器)异常动作引起的问题
就我而言,我的一个名为 protobuf
的包在使用 pip uninstall 命令删除时出现问题。所以,我手动完成了,然后我可以以正确的方式使用 tensorflow。
希望这对某人有所帮助。
我在使用 tensorflow-gpu 进行对象检测时遇到问题
我正在关注 youtube 教程 :https://www.youtube.com/watch?v=Rgpfk6eYxJA
我正在尝试在虚拟环境中使用 tensorflow-gpu 检测对象。
我在系统环境变量中添加了python、cuda、tensorflow,也做了 用标签制作训练模型。
我使用 xml_to_csv.py 将 xml 标签转换为 csv。
问题是当我尝试使用 generate_tfrecord.py 生成 tfrecord 时出现错误。请帮助
这是代码
(tensorflow) C:\Users\ice305\tensorflow\models\research\object_detection>python generate_tfrecord.py --csv_input=images\train_labels.csv --image_dir=images\train --output_path=train.record
Traceback (most recent call last):
File "generate_tfrecord.py", line 17, in <module>
import tensorflow as tf
File "C:\Anaconda3\envs\tensorflow\lib\site-packages\tensorflow\__init__.py", line 22, in <module>
from tensorflow.python import pywrap_tensorflow # pylint: disable=unused-import
File "C:\Anaconda3\envs\tensorflow\lib\site-packages\tensorflow\python\__init__.py", line 81, in <module>
from tensorflow.python import keras
File "C:\Anaconda3\envs\tensorflow\lib\site-packages\tensorflow\python\keras\__init__.py", line 24, in <module>
from tensorflow.python.keras import activations
File "C:\Anaconda3\envs\tensorflow\lib\site-packages\tensorflow\python\keras\activations\__init__.py", line 22, in <module>
from tensorflow.python.keras._impl.keras.activations import elu
File "C:\Anaconda3\envs\tensorflow\lib\site-packages\tensorflow\python\keras\_impl\keras\__init__.py", line 21, in <module>
from tensorflow.python.keras._impl.keras import activations
File "C:\Anaconda3\envs\tensorflow\lib\site-packages\tensorflow\python\keras\_impl\keras\activations.py", line 23, in <module>
from tensorflow.python.keras._impl.keras import backend as K
File "C:\Anaconda3\envs\tensorflow\lib\site-packages\tensorflow\python\keras\_impl\keras\backend.py", line 38, in <module>
from tensorflow.python.layers import base as tf_base_layers
File "C:\Anaconda3\envs\tensorflow\lib\site-packages\tensorflow\python\layers\base.py", line 25, in <module>
from tensorflow.python.keras.engine import base_layer
File "C:\Anaconda3\envs\tensorflow\lib\site-packages\tensorflow\python\keras\engine\__init__.py", line 21, in <module>
from tensorflow.python.keras.engine.base_layer import InputSpec
File "C:\Anaconda3\envs\tensorflow\lib\site-packages\tensorflow\python\keras\engine\base_layer.py", line 33, in <module>
from tensorflow.python.keras import backend
File "C:\Anaconda3\envs\tensorflow\lib\site-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'
(tensorflow) C:\Users\ice305\tensorflow\models\research\object_detection>
我不明白 'abs' 是什么。请帮助
我在尝试 seq2seq 教程时遇到了相同的错误消息。我用了tensorflow-cpu, python3.6, Anaconda3和Ubuntu16.04.
问题是tensorflow的路径在我的电脑上不是可变的。 我无法导入 tensorflow,尽管几个小时前我可以。 在 python 交互式 shell 上尝试 "import tensorflow"。如果不能导入,你的问题跟我一样
解决问题的方法是删除计算机上有关 tensorflow 的所有内容,然后重新安装。
顺便说一句,'abs' 是在以下文件中定义的函数:~/anaconda3/envs/tensorflow/lib/python3.6/site\ -packages/tensorflow/python/keras/_impl/keras/backend.py
然后重新安装tensorflow后,不知道为什么,“_impl”目录不见了。
这是因为你已经安装了一些库,并且tensorflow的一些依赖项被安装的库改变了。
执行以下命令即可解决问题
sudo pip install --upgrade tensorflow-gpu
之前安装的tensorflow好像有问题。这些步骤似乎可以解决问题。
1) 卸载tensorflow 2)卸载protobuf 3) 重新安装 tensorflow(它应该与正确的 protobuf 版本一起出现。
还需要去
C:\Program Files (x86)\Microsoft Visual Studio\Shared\Anaconda3_64\Lib\site-packages
并删除所有与tensorflow相关的文件夹
这对我有用 ubuntu 18.0.4
pip uninstall tensorflow protobuf --yes
find $CONDA_PREFIX -name "tensorflow" | xargs -Ipkg rm -rfv pkg
pip install --ignore-installed --upgrade https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-1.9.0-cp36-cp36m-linux_x86_64.whl --no-cache-dir
解决方案来自 GitHub: ImportError: cannot import name 'abs' #20778。
- 编辑:
创建虚拟环境并安装TF-GPU,更快更安全。
- 原答案:
OS : Ubuntu 18.04.1
Python 版本 3.6
解决方案:
已卸载 tensorflow 1.10
python3 -m pip uninstall tensorflow
重新安装了一遍
python3 -m pip install tensorflow==1.8.0
此问题是由于旧版本的 tensorflow 依赖项(如 protobuff 和其他在 tensorflow 安装期间安装的)引起的,因此如果您想使用 tensorflow 1.10,则必须卸载其余依赖项或升级它们。
如果您想安装 1.10.1,则必须删除这些软件包
absl-py
astor
gast
grpcio
markdown
numpy
protobuf
setuptools
six
tensorboard
tensorflow
termcolor
werkzeug
wheel
protobuf
然后sudo python3 -m pip uninstall tensorflow
如果在 root 用户中安装了 tensorflow,则使用
python3 -m pip install tensorflow --user --no-cache
如果您仍然遇到此问题,请重复上述所有步骤并执行
find ~/ -name tensorflow
并删除弹出的每个文件夹并重试安装。
以下建议的解决方案link对我有用
https://github.com/tensorflow/tensorflow/issues/20778#issuecomment-410962482
The full solution to this issue is to clean up all TF installation files from your system. Here is how to do that. Run the following first:
$ pyhthon
> import tensorflow as tf
> tf.__file__
'path/to/your/python/installation/site-packages/tensorflow/__init__.pyc'
From the above command, you need to go and remove the folder
path/to/your/python/installation/site-packages/tensorflow
Finally, you need to run
$ pip uninstall tensorflow # Also add -gpu if you installed the GPU version
$ pip install tensorflow # Also add -gpu if you installed the GPU version
Then it should work.
如果你使用的是Win10+cuda_10.0+cuDNNv7.4.2.24,关注这篇对你有帮助!
- 卸载所有tensorflow和keras相关的。
- 卸载所有相关的 protobuf。
- 删除 'Anaconda3_install_path'\Lib\site-packages、e.g.E:\ProgramData\Anaconda3\Lib\site-packages. 中与 tensorflow、keras、protobuf 相关的折叠
- 安装如下图所示的tensorflow和keras。
在 windows 10 中使用 anaconda Navigator 安装并选择所有可用于 tensorflow 和 keras 的软件包时遇到同样的问题。
解决方案是从命令行清理和安装,使用 "conda install" 仅选择 "gpu" 包:
conda remove keras*
conda remove tensorflow*
conda remove protobuf
pip uninstall tensorflow*
pip uninstall protobuf
conda install tensorflow-gpu
conda install keras-gpu
主要是pip(python包管理器)异常动作引起的问题
就我而言,我的一个名为 protobuf
的包在使用 pip uninstall 命令删除时出现问题。所以,我手动完成了,然后我可以以正确的方式使用 tensorflow。
希望这对某人有所帮助。