Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Fehlerbehebung bei Machine Learning-Inferenzen
Verwenden Sie die Informationen und Lösungen zur Fehlerbehebung in diesem Abschnitt, um Probleme mit Ihren Machine-Learning-Komponenten zu beheben. Informationen zu den öffentlichen Inferenzkomponenten für Machine Learning finden Sie in den Fehlermeldungen in den folgenden Komponentenprotokollen:
Wenn eine Komponente korrekt installiert ist, enthält das Komponentenprotokoll den Speicherort der Bibliothek, die es für die Inferenz verwendet.
Problembereiche
- Bibliothek konnte nicht abgerufen werden
- Cannot open shared object file
- Error: ModuleNotFoundError: No module named '<library>'
- Es wird kein CUDA-fähiges Gerät erkannt
- Keine solche Datei oder kein solches Verzeichnis
- RuntimeError: module compiled against API version 0xf but this version of NumPy is <version>
- picamera.exc.PiCameraError: Camera is not enabled
- Speicherfehler
- Festplattenspeicherfehler
- Timeout-Fehler
Bibliothek konnte nicht abgerufen werden
Der folgende Fehler tritt auf, wenn das Installationsskript während der Bereitstellung auf einem Raspberry Pi-Gerät keine erforderliche Bibliothek herunterladen kann.
Err:2 http://raspbian.raspberrypi.org/raspbian buster/main armhf python3.7-dev armhf 3.7.3-2+deb10u1 404 Not Found [IP: 93.93.128.193 80] E: Failed to fetch http://raspbian.raspberrypi.org/raspbian/pool/main/p/python3.7/libpython3.7-dev_3.7.3-2+deb10u1_armhf.deb 404 Not Found [IP: 93.93.128.193 80]
Führen Sie Ihre Komponente erneut aus sudo apt-get update
und stellen Sie sie erneut bereit.
Cannot open shared object file
Möglicherweise werden Fehler ähnlich den folgenden angezeigt, wenn das Installationsskript opencv-python
während der Bereitstellung auf einem Raspberry Pi-Gerät keine erforderliche Abhängigkeit für herunterladen kann.
ImportError: libopenjp2.so.7: cannot open shared object file: No such file or directory
Führen Sie den folgenden Befehl aus, um die Abhängigkeiten für manuell zu installierenopencv-python
:
sudo apt-get install libopenjp2-7 libilmbase23 libopenexr-dev libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libgtk-3-0 libwebp-dev
Error: ModuleNotFoundError: No module named '<library>'
Dieser Fehler wird möglicherweise in den ML-Laufzeitkomponentenprotokollen (variant.DLR.log
oder variant.TensorFlowLite.log
) angezeigt, wenn die ML-Laufzeitbibliothek oder ihre Abhängigkeiten nicht korrekt installiert sind. Dieser Fehler kann in den folgenden Fällen auftreten:
-
Wenn Sie die Option verwenden
UseInstaller
, die standardmäßig aktiviert ist, weist dieser Fehler darauf hin, dass die ML-Laufzeitkomponente die Laufzeit oder ihre Abhängigkeiten nicht installieren konnte. Gehen Sie wie folgt vor:-
Konfigurieren Sie die ML-Laufzeitkomponente, um die
UseInstaller
Option zu deaktivieren. -
Installieren Sie die ML-Laufzeit und ihre Abhängigkeiten und stellen Sie sie dem Systembenutzer zur Verfügung, der die ML-Komponenten ausführt. Weitere Informationen finden Sie hier:
-
-
Wenn Sie die
UseInstaller
Option nicht verwenden, weist dieser Fehler darauf hin, dass die ML-Laufzeit oder ihre Abhängigkeiten nicht für den Systembenutzer installiert sind, der die ML-Komponenten ausführt. Gehen Sie wie folgt vor:-
Überprüfen Sie, ob die Bibliothek für den Systembenutzer installiert ist, der die ML-Komponenten ausführt. Ersetzen Sie
ggc_user
durch den Namen des Systembenutzers undtf_runtime
durch den Namen der zu überprüfenden Bibliothek. -
Wenn die Bibliothek nicht installiert ist, installieren Sie sie für diesen Benutzer. Ersetzen Sie
ggc_user
durch den Namen des Systembenutzers undtf_runtime
durch den Namen der Bibliothek.Weitere Informationen zu den Abhängigkeiten für jede ML-Laufzeit finden Sie im Folgenden:
-
Wenn das Problem weiterhin besteht, installieren Sie die Bibliothek für einen anderen Benutzer, um zu bestätigen, ob dieses Gerät die Bibliothek installieren kann. Der Benutzer könnte beispielsweise Ihr Benutzer, der Root-Benutzer oder ein Administratorbenutzer sein. Wenn Sie die Bibliothek für keinen Benutzer erfolgreich installieren können, unterstützt Ihr Gerät die Bibliothek möglicherweise nicht. Lesen Sie die Dokumentation der Bibliothek, um die Anforderungen zu überprüfen und Installationsprobleme zu beheben.
-
Es wird kein CUDA-fähiges Gerät erkannt
Möglicherweise wird der folgende Fehler angezeigt, wenn Sie die GPU-Beschleunigung verwenden. Führen Sie den folgenden Befehl aus, um den GPU-Zugriff für den Greengrass-Benutzer zu aktivieren.
sudo usermod -a -G video ggc_user
Keine solche Datei oder kein solches Verzeichnis
Die folgenden Fehler weisen darauf hin, dass die Laufzeitkomponente die virtuelle Umgebung nicht korrekt einrichten konnte:
-
MLRootPath
/greengrass_ml_dlr_conda/bin/conda: No such file or directory -
MLRootPath
/greengrass_ml_dlr_venv/bin/activate: No such file or directory -
MLRootPath
/greengrass_ml_tflite_conda/bin/conda: No such file or directory -
MLRootPath
/greengrass_ml_tflite_venv/bin/activate: No such file or directory
Überprüfen Sie die Protokolle, um sicherzustellen, dass alle Laufzeitabhängigkeiten korrekt installiert wurden. Weitere Informationen zu den vom Installationsskript installierten Bibliotheken finden Sie in den folgenden Themen:
Standardmäßig ist MLRootPath
auf festgelegt
. Um diesen Speicherort zu ändern, schließen Sie die - DLR-Laufzeit oder -TensorFlow Lite-LaufzeitLaufzeitkomponente direkt in Ihre Bereitstellung ein und geben Sie einen geänderten Wert für den -
/work//greengrass/v2
component-name
/greengrass_mlMLRootPath
Parameter in einer Konfigurationszusammenführungsaktualisierung an. Weitere Informationen zum Konfigurieren von Komponenten finden Sie unter Komponentenkonfigurationen aktualisieren.
Anmerkung
Für die DLR-Komponente v1.3.x legen Sie den MLRootPath
Parameter in der Konfiguration der Inferenzkomponente fest und der Standardwert ist $HOME/greengrass_ml
.
RuntimeError: module compiled against API version 0xf but this version of NumPy is <version>
Möglicherweise werden die folgenden Fehler angezeigt, wenn Sie Machine Learning-Inferenzen auf einem Raspberry Pi ausführen, auf dem Raspberry Pi OS Bullseye ausgeführt wird.
RuntimeError: module compiled against API version 0xf but this version of numpy is 0xd ImportError: numpy.core.multiarray failed to import
Dieser Fehler tritt auf, weil Raspberry Pi OS Bullseye eine frühere Version von NumPy als die Version enthält, die OpenCV benötigt. Um dieses Problem zu beheben, führen Sie den folgenden Befehl aus, um NumPy auf die neueste Version zu aktualisieren.
pip3 install --upgrade numpy
picamera.exc.PiCameraError: Camera is not enabled
Möglicherweise wird der folgende Fehler angezeigt, wenn Sie Machine Learning-Inferenz auf einem Raspberry Pi ausführen, auf dem Raspberry Pi OS Bullseye ausgeführt wird.
picamera.exc.PiCameraError: Camera is not enabled. Try running 'sudo raspi-config' and ensure that the camera has been enabled.
Dieser Fehler tritt auf, weil Raspberry Pi OS Bullseye einen neuen Kamera-Stack enthält, der nicht mit den ML-Komponenten kompatibel ist. Um dieses Problem zu beheben, aktivieren Sie den Legacy-Kamera-Stack.
So aktivieren Sie den Legacy-Kamera-Stack
-
Führen Sie den folgenden Befehl aus, um das Raspberry Pi-Konfigurationstool zu öffnen.
sudo raspi-config
-
Wählen Sie Schnittstellenoptionen aus.
-
Wählen Sie Legacy-Kamera aus, um den Legacy-Kamera-Stack zu aktivieren.
-
Starten Sie den Raspberry Pi neu.
Speicherfehler
Die folgenden Fehler treten in der Regel auf, wenn das Gerät nicht über genügend Speicher verfügt und der Komponentenprozess unterbrochen wird.
-
stderr. Killed.
-
exitCode=137
Wir empfehlen mindestens 500 MB Arbeitsspeicher für die Bereitstellung einer öffentlichen Inferenzkomponente für Machine Learning.
Festplattenspeicherfehler
Der no space left on device
Fehler tritt in der Regel auf, wenn ein Gerät nicht über genügend Speicherplatz verfügt. Stellen Sie sicher, dass auf Ihrem Gerät genügend Speicherplatz verfügbar ist, bevor Sie die Komponente erneut bereitstellen. Wir empfehlen mindestens 500 MB freien Speicherplatz für die Bereitstellung einer öffentlichen Inferenzkomponente für Machine Learning.
Timeout-Fehler
Die öffentlichen Machine-Learning-Komponenten laden große Machine-Learning-Modelldateien herunter, die größer als 200 MB sind. Wenn der Download während der Bereitstellung abläuft, überprüfen Sie die Geschwindigkeit Ihrer Internetverbindung und versuchen Sie die Bereitstellung erneut.