

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 Inferenz für maschinelles Lernen
<a name="ml-troubleshooting"></a>

Verwenden Sie die Informationen und Lösungen zur Fehlerbehebung in diesem Abschnitt, um Probleme mit Ihren Komponenten für maschinelles Lernen zu lösen. Informationen zu den öffentlichen Inferenzkomponenten für maschinelles Lernen finden Sie in den Fehlermeldungen in den folgenden Komponentenprotokollen:

------
#### [ Linux or Unix ]
+ `/greengrass/v2/logs/aws.greengrass.DLRImageClassification.log`
+ `/greengrass/v2/logs/aws.greengrass.DLRObjectDetection.log`
+ `/greengrass/v2/logs/aws.greengrass.TensorFlowLiteImageClassification.log`
+ `/greengrass/v2/logs/aws.greengrass.TensorFlowLiteObjectDetection.log`

------
#### [ Windows ]
+ `C:\greengrass\v2\logs\aws.greengrass.DLRImageClassification.log`
+ `C:\greengrass\v2\logs\aws.greengrass.DLRObjectDetection.log`
+ `C:\greengrass\v2\logs\aws.greengrass.TensorFlowLiteImageClassification.log`
+ `C:\greengrass\v2\logs\aws.greengrass.TensorFlowLiteObjectDetection.log`

------

Wenn eine Komponente korrekt installiert ist, enthält das Komponentenprotokoll den Speicherort der Bibliothek, die für die Inferenz verwendet wird.

**Topics**
+ [Bibliothek konnte nicht abgerufen werden](#rpi-update-error)
+ [Cannot open shared object file](#rpi-import-cv-error)
+ [Error: ModuleNotFoundError: No module named '<library>'](#troubleshooting-venv-errors-not-found)
+ [Es wurde kein CUDA-fähiges Gerät erkannt](#troubleshooting-cuda-error)
+ [Keine solche Datei oder kein solches Verzeichnis](#troubleshooting-venv-errors-no-such-file)
+ [RuntimeError: module compiled against API version 0xf but this version of NumPy is <version>](#troubleshooting-rpi-numpy-version-error)
+ [picamera.exc.PiCameraError: Camera is not enabled](#troubleshooting-rpi-camera-stack-error)
+ [Speicherfehler](#troubleshooting-memory-errors)
+ [Speicherplatzfehler](#troubleshooting-disk-space-errors)
+ [Timeout-Fehler](#troubleshooting-timeout-errors)

## Bibliothek konnte nicht abgerufen werden
<a name="rpi-update-error"></a>

Der folgende Fehler tritt auf, wenn das Installationsskript während der Bereitstellung auf einem Raspberry Pi-Gerät eine erforderliche Bibliothek nicht 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 bereit.

## Cannot open shared object file
<a name="rpi-import-cv-error"></a>

Möglicherweise werden Fehler ähnlich den folgenden angezeigt, wenn das Installationsskript `opencv-python` während der Bereitstellung auf einem Raspberry Pi-Gerät eine erforderliche Abhängigkeit für nicht herunterlädt.

```
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 installieren`opencv-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>'
<a name="troubleshooting-venv-errors-not-found"></a>

Möglicherweise wird dieser Fehler in den Protokollen (`variant.DLR.log`oder`variant.TensorFlowLite.log`) der ML-Laufzeitkomponente 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 `UseInstaller` Option verwenden, 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:

  1. Konfigurieren Sie die ML-Laufzeitkomponente, um die `UseInstaller` Option zu deaktivieren.

  1. 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:
     + [DLR-Laufzeitoption UseInstaller ](dlr-component.md#dlr-component-config-useinstaller-term)
     + [TensorFlowLite-Laufzeitoption UseInstaller ](tensorflow-lite-component.md#tensorflow-lite-component-config-useinstaller-term)
+ Wenn Sie die `UseInstaller` Option nicht verwenden, weist dieser Fehler darauf hin, dass die ML-Laufzeit oder ihre Abhängigkeiten für den Systembenutzer, der die ML-Komponenten ausführt, nicht installiert sind. Gehen Sie wie folgt vor:

  1. Stellen Sie sicher, dass die Bibliothek für den Systembenutzer installiert ist, der die ML-Komponenten ausführt. *ggc\$1user*Ersetzen Sie es durch den Namen des Systembenutzers und *tflite\$1runtime* durch den Namen der Bibliothek, die überprüft werden soll.

------
#### [ Linux or Unix ]

     ```
     sudo -H -u ggc_user bash -c "python3 -c 'import tflite_runtime'"
     ```

------
#### [ Windows ]

     ```
     runas /user:ggc_user "py -3 -c \"import tflite_runtime\""
     ```

------

  1. Wenn die Bibliothek nicht installiert ist, installieren Sie sie für diesen Benutzer. *ggc\$1user*Ersetzen Sie es durch den Namen des Systembenutzers und *tflite\$1runtime* ersetzen Sie es durch den Namen der Bibliothek.

------
#### [ Linux or Unix ]

     ```
     sudo -H -u ggc_user bash -c "python3 -m pip install --user tflite_runtime"
     ```

------
#### [ Windows ]

     ```
     runas /user:ggc_user "py -3 -m pip install --user tflite_runtime"
     ```

------

     Weitere Informationen zu den Abhängigkeiten der einzelnen ML-Runtime finden Sie im Folgenden:
     + [DLR-Laufzeitoption UseInstaller ](dlr-component.md#dlr-component-config-useinstaller-term)
     + [TensorFlowLite-Laufzeitoption UseInstaller ](tensorflow-lite-component.md#tensorflow-lite-component-config-useinstaller-term)

  1. Wenn das Problem weiterhin besteht, installieren Sie die Bibliothek für einen anderen Benutzer, um zu überprüfen, ob dieses Gerät die Bibliothek installieren kann. Bei dem Benutzer kann es sich beispielsweise um Ihren Benutzer, den Root-Benutzer oder einen Administratorbenutzer handeln. Wenn Sie die Bibliothek für keinen Benutzer erfolgreich installieren können, unterstützt Ihr Gerät die Bibliothek möglicherweise nicht. Lesen Sie in der Dokumentation der Bibliothek nach, um die Anforderungen zu überprüfen und Installationsprobleme zu beheben.

## Es wurde kein CUDA-fähiges Gerät erkannt
<a name="troubleshooting-cuda-error"></a>

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
<a name="troubleshooting-venv-errors-no-such-file"></a>

Die folgenden Fehler deuten darauf hin, dass die Runtime-Komponente 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:
+ [DLR-Laufzeit](dlr-component.md)
+ [TensorFlow Lite-Laufzeit](tensorflow-lite-component.md)

Standardmäßig *MLRootPath* ist auf eingestellt`/greengrass/v2/work/component-name/greengrass_ml`. Um diesen Speicherort zu ändern, nehmen Sie die [DLR-Laufzeit](dlr-component.md) oder [TensorFlow Lite-Laufzeit](tensorflow-lite-component.md) Runtime-Komponente direkt in Ihre Bereitstellung auf und geben Sie in einem Update zur Zusammenführung der Konfiguration einen geänderten Wert für den `MLRootPath` Parameter an. Weitere Informationen zur Konfiguration der Komponente finden Sie unter[Komponentenkonfigurationen aktualisieren](update-component-configurations.md).

**Anmerkung**  
Für die DLR-Komponente v1.3.x legen Sie den `MLRootPath` Parameter in der Konfiguration der Inferenzkomponente fest. Der Standardwert ist. `$HOME/greengrass_ml`

## RuntimeError: module compiled against API version 0xf but this version of NumPy is <version>
<a name="troubleshooting-rpi-numpy-version-error"></a>

Möglicherweise werden die folgenden Fehler angezeigt, wenn Sie Inferenz für maschinelles Lernen 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 enthält NumPy als die Version, die OpenCV benötigt. Um dieses Problem zu beheben, führen Sie den folgenden Befehl aus, um auf die neueste Version NumPy zu aktualisieren.

```
pip3 install --upgrade numpy
```

## picamera.exc.PiCameraError: Camera is not enabled
<a name="troubleshooting-rpi-camera-stack-error"></a>

Möglicherweise wird der folgende Fehler angezeigt, wenn Sie Machine Learning Inference auf einem Raspberry Pi mit Raspberry Pi OS Bullseye ausführen.

```
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 Kamerastack enthält, der nicht mit den ML-Komponenten kompatibel ist. Um dieses Problem zu beheben, aktivieren Sie den älteren Kamerastack.<a name="raspberry-pi-bullseye-enable-legacy-camera-stack"></a>

**Um den älteren Kamerastack zu aktivieren**

1. Führen Sie den folgenden Befehl aus, um das Raspberry Pi-Konfigurationstool zu öffnen.

   ```
   sudo raspi-config
   ```

1. Wählen Sie **Schnittstellenoptionen**.

1. Wählen Sie **Legacy-Kamera** aus, um den Legacy-Kamerastack zu aktivieren.

1. Starten Sie den Raspberry Pi neu.

## Speicherfehler
<a name="troubleshooting-memory-errors"></a>

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 maschinelles Lernen.

## Speicherplatzfehler
<a name="troubleshooting-disk-space-errors"></a>

Der `no space left on device` Fehler tritt normalerweise 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 Festplattenspeicher, um eine öffentliche Inferenzkomponente für maschinelles Lernen bereitzustellen.

## Timeout-Fehler
<a name="troubleshooting-timeout-errors"></a>

Die öffentlichen Komponenten für maschinelles Lernen laden große Modelldateien für maschinelles Lernen herunter, die größer als 200 MB sind. Wenn beim Herunterladen während der Bereitstellung ein Timeout auftritt, überprüfen Sie die Geschwindigkeit Ihrer Internetverbindung und versuchen Sie es erneut.