it-swarm.com.de

von utils import label_map_util Importfehler: Kein Modul namens utils

Ich versuche, das Programm object_detection.ipynb auszuführen, aber es ist ein normales Python-Programm (.py). Es funktioniert sehr gut, aber wenn es im ..models/research/object_detection-Ordner ausgeführt wird, aber das Hauptproblem ist, wenn ich versuche, diesen Code in einem anderen Verzeichnis mit korrektem sys.append auszuführen, lande ich mit dem folgenden Fehler:

Traceback (letzter Anruf zuletzt):

Datei "obj_detect.py", Zeile 20, in 

from utils import label_map_util

ImportError: Kein Modul mit dem Namen utils

Wenn ich versuche, die Datei aus dem ..models/research/object_detection-Ordner in ein Python-Programm in einem anderen Verzeichnis zu importieren, bekomme ich mehr Fehler wie folgt:

Traceback (letzter Anruf zuletzt):

Datei "classify_image.py", Zeile 10, in 

import object_dt

Datei "/home/saikishor/Tensorflow_Models/models/research/object_detection/object_dt.py", Zeile 18, in 

from utils import label_map_util

Datei "/home/saikishor/Tensorflow_Models/models/research/object_detection/utils/label_map_util.py", Zeile 22, in 

from object_detection.protos import string_int_label_map_pb2

ImportError: Kein Modul mit dem Namen object_detection.protos

Wie löse ich dieses Problem?

5
saikishor

Es kann sein, dass sich der object_detection-Ordner nicht in Ihrem Pfad befindet, sodass Python nicht weiß, wo er nach den Dateien suchen soll.

sie können dies aus Python heraus mit überprüfen

import sys

sys.path

wenn dies das Problem ist, können Sie es mit lösen

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

Ich habe das gleiche Problem gesehen. Das liegt daran, dass string_int_label_map_pb2.py-Datei nicht existiert.

1.Sie müssen protobuf installieren.

https://github.com/google/protobuf/releases
  1. cd Ihr Pfad zu object_detection 

    protoc objektdetektion/protos/string_int_label_map.proto --python_out =.

sie finden string_int_label_map_pb2.py-Datei in 'object_detection\protos'

  1. das wird in Ordnung sein. Wenn immer noch ein Problem auftritt, können Sie Ihren object_detection-Ordner zu PYTHONPATH hinzufügen.
1
david_liu

Sie müssen protoc Version 3.3 (bereits kompiliert) herunterladen. Benutzte protoc im bin-Verzeichnis, um diesen Befehl wie folgt auszuführen:

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=.

Das wird hoffentlich funktionieren !!

0
saikishor

im Ordner python *./site-packages können Sie den Ordner utils sehen. Standardmäßig wird beim Ausführen von "from utils import label_map_util" der Befehl label_map_util in python . utils Ordner.

dieser Fehler kann behoben werden, indem das Verzeichnis oder geändert wird, indem eine Datei von tensorflow/models/utils nach python *. */site-packages/utils kopiert wird 

0