web-dev-qa-db-fra.com

ImportError: impossible d'importer le nom 'abs'

J'ai eu un problème en faisant la détection d'objet en utilisant tensorflow-gpu

Je suivais les tutoriels youtube: https://www.youtube.com/watch?v=Rgpfk6eYxJA

J'essaie de détecter un objet en utilisant tensorflow-gpu avec un environnement virtuel.

J'ai ajouté python, cuda, tensorflow aux variables d'environnement du système et ai également créé des modèles d'apprentissage avec des étiquettes.

J'ai converti des étiquettes XML en CSV à l'aide de xml_to_csv.py.

Le problème est que lorsque j'essaie de générer tfrecord en utilisant generate_tfrecord.py, cette erreur apparaît. S'il vous plaît aider

Voici le code

(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>

Je ne comprends pas ce que 'abs' est. S'il vous plaît aider

4
9hyo

Cela a fonctionné pour moi dans 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

Solution trouvée à partir de GitHub: ImportError: impossible d'importer le nom 'abs' # 20778 .

11
Terminator17

OS: Ubuntu 18.04.1

Python Version 3.6

Solution : 

Tensorflow désinstallé 1.10

python3 -m pip uninstall tensorflow

Ré-installé à nouveau 

python3 -m pip install tensorflow==1.8.0

Ce problème est dû aux anciennes versions des dépendances tensorflow, telles que protobuff et autres, installées lors de l'installation de tensorflow. Si vous voulez utiliser tensorflow 1.10, vous devez donc désinstaller les dépendances ou les mettre à niveau.

Si vous voulez installer 1.10.1, vous devez supprimer ces paquets 

absl-py
astor
gast 
grpcio 
markdown 
numpy 
protobuf 
setuptools 
six 
tensorboard 
tensorflow 
termcolor 
werkzeug 
wheel
protobuf

puis faites Sudo python3 -m pip uninstall tensorflowDans le cas où un tensorflow est installé dans l'utilisateur root, installez-le ensuite à l'aide de python3 -m pip install tensorflow --user --no-cache

SI vous rencontrez toujours ce problème, alors répétez toutes les étapes ci-dessus et faites find ~/ -name tensorflow et supprimez tous les dossiers qui apparaissent et relancez l'installation.

6
Yash Kumar Atri

Cela semble poser un problème si une installation antérieure de tensorflow est disponible. Ces étapes semblent résoudre le problème.

1) désinstallation de tensorflow 2) désinstallation de protobuf 3) réinstallation de tensorflow (qui doit accompagner la version correcte de protobuf.

Aussi besoin d'aller à 

C:\Program Files (x86)\Microsoft Visual Studio\Shared\Anaconda3_64\Lib\site-packages

et supprimer tous les dossiers liés à tensorflow

Source: https://github.com/tensorflow/tensorflow/issues/20778

4
Soumya Boral

J'ai rencontré les mêmes messages d'erreur en essayant le didacticiel seq2seq. J'ai utilisé tensorflow-cpu, python3.6, Anaconda3 et Ubuntu16.04.

Le problème était que le chemin de tensorflow n’était pas variable sur mon PC . Je ne pouvais pas importer tensorflow, bien que je puisse le faire quelques heures plus tôt .Essayez "d'importer tensorflow" sur python interactive Shell. Si vous ne pouvez pas l'importer, votre problème sera le même que le mien.

Pour résoudre ce problème, il fallait tout supprimer du tensorflow sur votre ordinateur et les réinstaller.

Au fait, 'abs' est une fonction définie dans le fichier suivant: ~/anaconda3/envs/tensorflow/lib/python3.6/site\- packages/tensorflow/python/keras/_impl/keras/backend. py

Et après avoir réinstallé tensorflow, je ne sais pas pourquoi, le répertoire "_impl" a disparu.

0
Jack

La solution suggérée sur le lien suivant a fonctionné pour moi

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.
0
fakturk

Si vous utilisez Win10 + cuda_10.0 + cuDNNv7.4.2.24, suivez ceci pour vous aider

  1. désinstaller tous les tensorflow et keras connexes.
  2. désinstaller tous les protobuf liés.
  3. supprimez les plis liés à tensorflow, keras, protobuf dans votre 'package_anaconda3_install\site\packages, par exemple E:\ProgramData\Anaconda3\Lib\site-packages.
  4. installer tensorflow et keras montrés ci-dessous dans l'image .  conda settings which can solve this issue
0
Ayichen