web-dev-qa-db-ja.com

utils import label_map_utilインポートエラーから:utilsという名前のモジュールはありません

object_detection.ipynbタイプのプログラムを実行しようとしていますが、通常のpython program(.py)です。非常にうまく機能していますが、..models/research/object_detectionフォルダー内で実行している場合しかし、主な問題は、適切なsys.appendを使用して別のディレクトリでこのコードを実行しようとすると、次のエラーが発生することです。

トレースバック(最後の最後の呼び出し):

ファイル「obj_detect.py」、20行目

from utils import label_map_util

ImportError:utilsという名前のモジュールはありません

..models/research/object_detectionフォルダーから別のディレクトリのpythonプログラムにファイルをインポートしようとすると、次のようなエラーが発生します。

トレースバック(最後の最後の呼び出し):

ファイル「classify_image.py」、10行目

import object_dt

ファイル「/home/saikishor/Tensorflow_Models/models/research/object_detection/object_dt.py」、18行目

from utils import label_map_util

ファイル「/home/saikishor/Tensorflow_Models/models/research/object_detection/utils/label_map_util.py」、22行目

from object_detection.protos import string_int_label_map_pb2

ImportError:object_detection.protosという名前のモジュールはありません

この問題を解決するには?

9
saikishor

Object_detectionフォルダーがパス上にない可能性があるため、pythonはファイルの検索場所を認識していません。

これは、python

import sys

sys.path

これが問題である場合、あなたはそれを解決することができます

sys.path.insert(0, 'path/to/your/object_detection')
8
warped

私は同じ問題を見てきました。 string_int_label_map_pb2.pyファイルが存在しません。

1 .protobufをインストールする必要があります。

https://github.com/google/protobuf/releases
  1. cdへのパスobject_detection

    protoc object_detection/protos/string_int_label_map.proto --python_out =。

見つけるだろう string_int_label_map_pb2.pyファイル'object_detection\protos'

  1. それでも問題がある場合は、object_detectionフォルダーをPYTHONPATHに追加できます。
2
david_liu

Protocバージョン3.3(コンパイル済み)をダウンロードする必要があります。 binディレクトリ内でprotocを使用して、次のようにこのコマンドを実行しました。

tensorflow$ mkdir protoc_3.3
tensorflow$ cd protoc_3.3
tensorflow/protoc_3.3$ wget wget https://github.com/google/protobuf/releases/download/v3.3.0/protoc-3.3.0-linux-x86_64.Zip
tensorflow/protoc_3.3$ chmod 775 protoc-3.3.0-linux-x86_64.Zip
tensorflow/protoc_3.3$ unzip protoc-3.3.0-linux-x86_64.Zip
tensorflow/protoc_3.3$ cd ../models/research/
tensorflow/protoc_3.3$ /home/saikishor/tensorflow/protoc_3.3/bin/protoc object_detection/protos/*.proto --python_out=.

これがうまくいけばうまくいきます!!

0
saikishor

python * ./ site-packagesフォルダーでは、utilsフォルダーを確認できます。デフォルトでは、「from utils import label_map_util」を実行すると、pythonでlabel_map_utilを検索しようとします。*/site-packages/utilsフォルダー。

このエラーは、ディレクトリを変更するか、ファイルをtensorflow/models/utilsからpython *。*/site-packages/utilsにコピーすることで解決できます。

0