使用tensorflow-gpu进行对象检测时出现问题
我正在关注youtube教程:qazxsw poi
我正在尝试使用tensorflow-gpu和虚拟环境来检测对象。
我在系统环境变量中添加了python,cuda,tensorflow,并且还制作了带标签的训练模型。
我使用xml_to_csv.py将xml标签转换为csv。
问题是当我尝试使用generate_tfrecord.py生成tfrecord时,会出现该错误。请帮忙
这是代码
https://www.youtube.com/watch?v=Rgpfk6eYxJA
我不明白'abs'是什么。请帮忙
这在ubuntu 18.0.4中对我有用
(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>
从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
找到的解决方案。
操作系统:Ubuntu 18.04.1
Python版本3.6
方案:
卸载张量流1.10
GitHub: ImportError: cannot import name 'abs' #20778
再次重新安装
python3 -m pip uninstall tensorflow
这个问题是由于在tensorflow安装期间安装了诸如protobuff之类的老版本的tensorflow依赖项,因此如果你想使用tensorflow 1.10,你必须卸载其余的依赖项或升级它们。
如果您要安装1.10.1,则必须删除这些软件包
python3 -m pip install tensorflow==1.8.0
然后做absl-py
astor
gast
grpcio
markdown
numpy
protobuf
setuptools
six
tensorboard
tensorflow
termcolor
werkzeug
wheel
protobuf
如果在root用户中安装了tensorflow,那么使用sudo python3 -m pip uninstall tensorflow
安装它
如果您仍然遇到此问题,请重复上述所有步骤并执行python3 -m pip install tensorflow --user --no-cache
并删除弹出的每个文件夹并重试安装。
如果先前安装了tensorflow,那么这似乎是一个问题。这些步骤似乎解决了这个问题。
1)卸载tensorflow 2)卸载protobuf 3)重新安装tensorflow(应该带有正确的protobuf版本。
还需要去
find ~/ -name tensorflow
并删除所有tensorflow相关文件夹
资料来源:C:\Program Files (x86)\Microsoft Visual Studio\Shared\Anaconda3_64\Lib\site-packages
如果您使用的是Win10 + cuda_10.0 + cuDNNv7.4.2.24,请按照以下步骤对您有所帮助!
我在尝试seq2seq教程时遇到了相同的错误消息。我使用了tensorflow-cpu,python3.6,Anaconda3和Ubuntu16.04。
问题是张量流的路径在我的电脑上不变。我无法导入张量流,虽然我可以在几个小时之前。在python交互式shell上尝试“import tensorflow”。如果您无法导入它,您的问题将与我的相同。
如何解决问题是删除计算机上有关tensorflow的所有内容并重新安装它们。
顺便说一句,'abs'是在以下文件中定义的函数:〜/ anaconda3 / envs / tensorflow / lib / python3.6 / site \ -packages / tensorflow / python / keras / _impl / keras / backend.py
并且在重新安装tensorflow之后,我不知道为什么,“_ impl”目录就消失了。
在使用anaconda Navigator进行安装并选择所有可用于tensorflow和keras的软件包时,在Windows 10中存在同样的问题。
解决方法是从命令行清理并安装,使用“conda install”仅选择“gpu”包:
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.
这是因为您已经安装了一些库,并且已经安装的库对tensorflow的某些依赖项进行了更改。
执行以下命令将解决问题
conda remove keras*
conda remove tensorflow*
conda remove protobuf
pip uninstall tensorflow*
pip uninstall protobuf
conda install tensorflow-gpu
conda install keras-gpu