web-dev-qa-db-ja.com

ImportError:名前 '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」が何なのかわかりません。助けてください

9
9hyo

これは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:name 'abs'#20778 をインポートできません。

17
Terminator17

OS:Ubuntu 18.04.1

Pythonバージョン3.6

解決 :

Tensorflow 1.10をアンインストールしました

python3 -m pip uninstall tensorflow

再インストールしました

python3 -m pip install tensorflow==1.8.0

この問題は、protobuffなどのtensorflow依存関係の古いバージョンが原因で作成され、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を実行します。テンソルフローがルートユーザーにインストールされている場合は、python3 -m pip install tensorflow --user --no-cacheを使用してインストールします

それでもこの問題に直面する場合は、上記のすべての手順を繰り返してfind ~/ -name tensorflowを実行し、ポップアップするすべてのフォルダーを削除して、インストールを再試行します。

10
Yash Kumar Atri

利用可能なテンソルフローの以前のインストールがある場合、それは問題のようです。これらの手順は問題を解決するようです。

1)tensorflowのアンインストール2)protobufのアンインストール3)tensorflowの再インストール(正しいprotobufバージョンに付属している必要があります)。

また行く必要があります

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

すべてのテンソルフロー関連フォルダを削除します

ソース: https://github.com/tensorflow/tensorflow/issues/20778

6
Soumya Boral

Win10 + cuda_10.0 + cuDNNv7.4.2.24を使用している場合は、これに従ってください。

  1. 関連するすべてのtensorflowとkerasをアンインストールします。
  2. 関連するすべてのprotobufをアンインストールします。
  3. 'Anaconda3_install_path'\Lib\site-packages(例:E:\ ProgramData\Anaconda3\Lib\site-packages)のtensorflow、keras、protobuf関連のフォールドを削除します。
  4. tensorflowをインストールし、kerasを下の写真に示します。 conda settings which can solve this issue
1
AYI

Seq2seqチュートリアルの試行中に同じエラーメッセージが表示されました。 tensorflow-cpu、python3.6、Anaconda3、Ubuntu16.04を使用しました。

問題は、テンソルフローのパスが私のPCで可変ではなかったことです。数時間前にテンソルフローをインポートできませんでした。 pythonインタラクティブシェルで「import tensorflow」を試してください。インポートできない場合、問題は私のものと同じになります。

問題を解決する方法は、コンピューター上のtensorflowに関するすべてを削除し、それらを再インストールすることでした。

ところで、「abs」は次のファイルで定義されている関数です:〜/ anaconda3/envs/tensorflow/lib/python3.6/site\-packages/tensorflow/python/keras/_impl/keras/backend.py

そして、テンソルフローを再インストールした後、「_ impl」ディレクトリが消えた理由がわかりません。

0
Jack

Anaconda Navigatorを使用してインストールし、tensorflowおよびkerasで利用可能なすべてのパッケージを選択すると、Windows 10でも同じ問題が発生しました。

解決策は、「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
0
Ricardo Rivaldo

次のリンクの推奨ソリューションは私のために働いた

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