

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.

# Beheben von Fehlern
<a name="neo-troubleshooting"></a>

Dieser Abschnitt enthält Informationen dazu, wie Sie häufige Fehler verstehen und verhindern können, welche Fehlermeldungen sie generieren und wie Sie diese Fehler beheben können. Bevor Sie weitermachen, stellen Sie sich die folgenden Fragen:

 **Ist vor der Bereitstellung Ihres Modells ein Fehler aufgetreten?** Falls ja, finden Sie weitere Informationen unter [Beheben von NEO-Kompilierungsfehlern](https://docs.aws.amazon.com/sagemaker/latest/dg/neo-troubleshooting-compilation.html). 

 **Ist nach der Kompilierung Ihres Modells ein Fehler aufgetreten?** Falls ja, finden Sie weitere Informationen unter [Beheben von Neo-Inferenzfehlern](https://docs.aws.amazon.com/sagemaker/latest/dg/neo-troubleshooting-inference.html). 

**Ist bei der Kompilierung Ihres Modells für Ambarella-Geräte ein Fehler aufgetreten?** Falls ja, finden Sie mehr unter [Beheben von Ambarella-Fehlern](neo-troubleshooting-target-devices-ambarella.md).

## Fehlerklassifizierungstypen
<a name="neo-error-messages"></a>

In dieser Liste sind die *Benutzerfehler* klassifiziert, auf die Sie mit Neo stoßen können. Diese umfassen Zugriffs- und Berechtigungsfehler sowie Ladefehler für die einzelnen unterstützten Frameworks. Bei allen anderen Fehlern handelt es sich um *Systemfehler*.

### Fehler bei der Kundenberechtigung
<a name="neo-error-client-permission"></a>

 Neo leitet die Fehler für diese direkt vom abhängigen Service durch. 
+ *Zugriff verweigert* beim Aufrufen von sts: AssumeRole
+ *Jeder 400*-Fehler beim Aufruf von Amazon S3 zum Herunter- oder Hochladen eines Client-Modells
+ *PassRole*-Fehler

### Ladefehler
<a name="collapsible-section-2"></a>

Angenommen, dass der Neo-Compiler .tar.gz erfolgreich von Amazon S3 geladen hat, prüfen Sie, ob der Tarball die notwendigen Dateien für die Kompilierung enthält. Die Überprüfungskriterien sind Framework-spezifisch: 
+ **TensorFlow**: Erwartet nur eine Protobuf-Datei (\$1.pb oder \$1.pbtxt). Für gespeicherte Modelle wird ein Variablenordner erwartet. 
+ **PyTorch**: Erwartet nur eine pytorch-Datei (\$1.pth).
+ **MXNET**: Erwartet nur eine Symboldatei (\$1.json) und eine Parameterdatei (\$1.params).
+ **XGBoost**: Erwarte nur eine Modelldatei (\$1.model). XGBoost Beim Eingabemodell gibt es Größenbeschränkungen.

### Kompilierungsfehler
<a name="neo-error-compilation"></a>

Angenommen, dass der Neo-Compiler .tar.gz erfolgreich von Amazon S3 geladen hat, und dass der Tarball die notwendigen Dateien für die Kompilierung enthält. gelten folgende Überprüfungskriterien: 
+ **OperatorNotImplemented**: Ein Operator wurde nicht implementiert.
+ **OperatorAttributeNotImplemented**: Das Attribut im angegebenen Operator wurde nicht implementiert. 
+ **OperatorAttributeRequired**: Ein Attribut ist für ein internes Symboldiagramm erforderlich, aber es ist nicht im Diagramm des Benutzereingabemodells aufgeführt. 
+ **OperatorAttributeValueNotValid**: Der Wert des Attributs im spezifischen Operator ist nicht gültig. 

**Topics**
+ [Fehlerklassifizierungstypen](#neo-error-messages)
+ [Beheben von NEO-Kompilierungsfehlern](neo-troubleshooting-compilation.md)
+ [Beheben Sie Neo-Inferenz-Fehler](neo-troubleshooting-inference.md)
+ [Beheben von Ambarella-Fehlern](neo-troubleshooting-target-devices-ambarella.md)

# Beheben von NEO-Kompilierungsfehlern
<a name="neo-troubleshooting-compilation"></a>

Dieser Abschnitt enthält Informationen dazu, wie Sie häufige Fehler verstehen und verhindern können, welche Fehlermeldungen sie generieren und wie Sie diese Fehler beheben können. 

**Topics**
+ [Wie benutzt man diese Seite](#neo-troubleshooting-compilation-how-to-use)
+ [Framework-bezogene Fehler](#neo-troubleshooting-compilation-framework-related-errors)
+ [Infrastrukturfehler](#neo-troubleshooting-compilation-infrastructure-errors)
+ [Überprüfen Sie Ihr Kompilierungsprotokoll](#neo-troubleshooting-compilation-logs)

## Wie benutzt man diese Seite
<a name="neo-troubleshooting-compilation-how-to-use"></a>

Versuchen Sie, Ihren Fehler zu beheben, indem Sie diese Abschnitte in der folgenden Reihenfolge durchgehen:

1. Vergewissern Sie sich, dass die Eingabe Ihres Kompilierungsauftrags die Eingabeanforderungen erfüllt. Siehe [Welche Formen der Eingabedaten erwartet SageMaker Neo?](neo-compilation-preparing-model.md#neo-job-compilation-expected-inputs)

1.  Überprüfen Sie häufig auftretende [Framework-spezifische Fehler](https://docs.aws.amazon.com/sagemaker/latest/dg/neo-troubleshooting-compilation.html#neo-troubleshooting-compilation-framework-related-errors). 

1.  Prüfen Sie, ob es sich bei Ihrem Fehler um einen [Infrastrukturfehler](https://docs.aws.amazon.com/sagemaker/latest/dg/neo-troubleshooting-compilation.html#neo-troubleshooting-compilation-infrastructure-errors) handelt. 

1. Prüfen Sie Ihr [Kompilierungsprotokoll](https://docs.aws.amazon.com/sagemaker/latest/dg/neo-troubleshooting-compilation.html#neo-troubleshooting-compilation-logs).

## Framework-bezogene Fehler
<a name="neo-troubleshooting-compilation-framework-related-errors"></a>

### Keras
<a name="neo-troubleshooting-compilation-framework-related-errors-keras"></a>


| Fehler | Lösung | 
| --- | --- | 
|   `InputConfiguration: No h5 file provided in <model path>`   |   Überprüfen Sie, ob sich Ihre H5-Datei in der von Ihnen angegebenen Amazon-S3-URI befindet.  *Oder* Überprüfen Sie, ob die [H5-Datei korrekt formatiert ist](https://www.tensorflow.org/guide/keras/save_and_serialize#keras_h5_format).   | 
|   `InputConfiguration: Multiple h5 files provided, <model path>, when only one is allowed`   |  Vergewissern Sie sich, dass Sie nur eine `h5` Datei bereitstellen.  | 
|   `ClientError: InputConfiguration: Unable to load provided Keras model. Error: 'sample_weight_mode'`   |  Überprüfen Sie, ob die von Ihnen angegebene Keras-Version unterstützt wird. Siehe, unterstützte Frameworks für [Cloud-Instances](https://docs.aws.amazon.com/sagemaker/latest/dg/neo-supported-cloud.html) und [Edge-Geräte](https://docs.aws.amazon.com/sagemaker/latest/dg/neo-supported-devices-edge.html).   | 
|   `ClientError: InputConfiguration: Input input has wrong shape in Input Shape dictionary. Input shapes should be provided in NCHW format. `   |   Vergewissern Sie sich, dass Ihre Modelleingabe dem NCHW-Format entspricht. Weitere Informationen [findest du unter Welche Formen von Eingabedaten erwartet SageMaker Neo?](https://docs.aws.amazon.com/sagemaker/latest/dg/neo-job-compilation.html#neo-job-compilation-expected-inputs)   | 

### MXNet
<a name="neo-troubleshooting-compilation-framework-related-errors-mxnet"></a>


| Fehler | Lösung | 
| --- | --- | 
|   `ClientError: InputConfiguration: Only one parameter file is allowed for MXNet model. Please make sure the framework you select is correct.`   |   SageMaker Neo wählt die erste Parameterdatei aus, die für die Kompilierung angegeben wurde.   | 

### TensorFlow
<a name="neo-troubleshooting-compilation-framework-related-errors-tensorflow"></a>


| Fehler | Lösung | 
| --- | --- | 
|   `InputConfiguration: Exactly one .pb file is allowed for TensorFlow models.`   |  Stellen Sie sicher, dass Sie nur eine .pb- oder .pbtxt-Datei angeben.  | 
|  `InputConfiguration: Exactly one .pb or .pbtxt file is allowed for TensorFlow models.`  |  Stellen Sie sicher, dass Sie nur eine .pb- oder .pbtxt-Datei angeben.  | 
|   ` ClientError: InputConfiguration: TVM cannot convert <model zoo> model. Please make sure the framework you selected is correct. The following operators are not implemented: {<operator name>} `   |   Vergewissern Sie sich, dass der von Ihnen gewählte Operator unterstützt wird. Siehe Von [SageMaker Neo unterstützte Frameworks und Operatoren](https://aws.amazon.com/releasenotes/sagemaker-neo-supported-frameworks-and-operators/).   | 

### PyTorch
<a name="neo-troubleshooting-compilation-framework-related-errors-pytorch"></a>


| Fehler | Lösung | 
| --- | --- | 
|   `InputConfiguration: We are unable to extract DataInputConfig from the model due to input_config_derivation_error. Please override by providing a DataInputConfig during compilation job creation.`  |  Führen Sie eine der folgenden Aufgaben aus: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/neo-troubleshooting-compilation.html)  | 

## Infrastrukturfehler
<a name="neo-troubleshooting-compilation-infrastructure-errors"></a>


| Fehler | Lösung | 
| --- | --- | 
|   `ClientError: InputConfiguration: S3 object does not exist. Bucket: <bucket>, Key: <bucket key>`   |  Überprüfen Sie die Amazon-S3-URI, die Sie angegeben haben.  | 
|   ` ClientError: InputConfiguration: Bucket <bucket name> is in region <region name> which is different from AWS Sagemaker service region <service region> `   |   Erstellen Sie eine Amazon-S3-Bucket, der sich in derselben Region wie der Service befindet.   | 
|   ` ClientError: InputConfiguration: Unable to untar input model. Please confirm the model is a tar.gz file `   |   Vergewissern Sie sich, dass Ihr Modell in Amazon S3 in eine `tar.gz` Datei komprimiert ist.   | 

## Überprüfen Sie Ihr Kompilierungsprotokoll
<a name="neo-troubleshooting-compilation-logs"></a>

1. Navigieren Sie zu Amazon CloudWatch unter [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Wählen Sie in der Dropdown-Liste oben rechts die **Region** aus, in der Sie den Kompilierungsauftrag erstellt haben.

1. Wählen Sie im Navigationsbereich von Amazon CloudWatch **Logs** aus. Wählen Sie **Protokollgruppe** aus.

1. Suchen Sie nach der Protokollgruppe mit dem Namen `/aws/sagemaker/CompilationJobs`. Wählen Sie die -Protokollgruppe aus.

1. Suchen Sie nach dem Protokollstream, der nach dem Namen des Kompilierungsauftrags benannt ist. Wählen Sie die Protokollstream aus.

# Beheben Sie Neo-Inferenz-Fehler
<a name="neo-troubleshooting-inference"></a>

Dieser Abschnitt enthält Informationen darüber, wie Sie einige der häufigsten Fehler verhindern und beheben können, die beim and/or Aufrufen des Endpunkts bei der Bereitstellung auftreten können. Dieser Abschnitt bezieht sich auf **PyTorch 1.4.0 oder höher** und **MXNetv1.7.0** oder höher. 
+ Stellen Sie sicher, dass die erste Inferenz (Aufwärminferenz) auf gültige Eingabedaten in `model_fn()` erfolgt ist, falls Sie ein `model_fn` in Ihrem Inferenzskript definiert haben. Andernfalls wird beim Aufruf von [https://sagemaker.readthedocs.io/en/stable/api/inference/predictors.html#sagemaker.predictor.Predictor.predict](https://sagemaker.readthedocs.io/en/stable/api/inference/predictors.html#sagemaker.predictor.Predictor.predict) möglicherweise die folgende Fehlermeldung auf dem Terminal angezeigt: 

  ```
  An error occurred (ModelError) when calling the InvokeEndpoint operation: Received server error (0) from <users-sagemaker-endpoint> with message "Your invocation timed out while waiting for a response from container model. Review the latency metrics for each container in Amazon CloudWatch, resolve the issue, and try again."                
  ```
+ Stellen Sie sicher, dass die Umgebungsvariablen in der folgenden Tabelle gesetzt sind. Wenn sie nicht gesetzt sind, wird möglicherweise die folgende Fehlermeldung angezeigt: 

  **Auf dem Terminal:**

  ```
  An error occurred (ModelError) when calling the InvokeEndpoint operation: Received server error (503) from <users-sagemaker-endpoint> with message "{ "code": 503, "type": "InternalServerException", "message": "Prediction failed" } ".
  ```

  **In: CloudWatch**

  ```
  W-9001-model-stdout com.amazonaws.ml.mms.wlm.WorkerLifeCycle - AttributeError: 'NoneType' object has no attribute 'transform'
  ```    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/neo-troubleshooting-inference.html)
+ Stellen Sie sicher, dass die `MMS_DEFAULT_RESPONSE_TIMEOUT` Umgebungsvariable bei der Erstellung des Amazon SageMaker AI-Modells auf 500 oder einen höheren Wert gesetzt ist. Andernfalls wird möglicherweise die folgende Fehlermeldung auf dem Terminal angezeigt: 

  ```
  An error occurred (ModelError) when calling the InvokeEndpoint operation: Received server error (0) from <users-sagemaker-endpoint> with message "Your invocation timed out while waiting for a response from container model. Review the latency metrics for each container in Amazon CloudWatch, resolve the issue, and try again."
  ```

# Beheben von Ambarella-Fehlern
<a name="neo-troubleshooting-target-devices-ambarella"></a>

SageMaker Neo erfordert, dass Modelle in einer komprimierten TAR-Datei (`*.tar.gz`) gepackt werden. Bei Ambarella-Geräten müssen zusätzliche Dateien in die komprimierte TAR-Datei aufgenommen werden, bevor sie zur Kompilierung gesendet wird. Fügen Sie die folgenden Dateien in Ihre komprimierte TAR-Datei ein, wenn Sie ein Modell für Ambarella-Ziele mit SageMaker Neo kompilieren möchten:
+ Ein trainiertes Modell, das ein von Neo unterstütztes Framework verwendet SageMaker 
+ Eine JSON-Konfigurationsdatei
+ Kalibrierungsbilder

Der Inhalt Ihrer komprimierten TAR-Datei sollte beispielsweise dem folgenden Beispiel gleichen:

```
├──amba_config.json
├──calib_data
|    ├── data1
|    ├── data2
|    ├── .
|    ├── .
|    ├── .
|    └── data500
└──mobilenet_v1_1.0_0224_frozen.pb
```

Das Verzeichnis ist wie folgt konfiguriert:
+ `amba_config.json` : Konfigurationsdatei
+ `calib_data` : Ordner mit Kalibrierungsbildern
+ `mobilenet_v1_1.0_0224_frozen.pb`: TensorFlow Modell wurde als eingefrorenes Diagramm gespeichert

Informationen zu den von SageMaker Neo unterstützten Frameworks finden Sie unter[Unterstützte Frameworks](neo-supported-devices-edge-frameworks.md).

## Die Konfigurationsdatei einrichten
<a name="neo-troubleshooting-target-devices-ambarella-config"></a>

Die Konfigurationsdatei enthält Informationen, die die Ambarella-Toolchain benötigt, um das Modell zu kompilieren. Die Konfigurationsdatei muss als JSON-Datei gespeichert werden und der Name der Datei muss mit enden `*config.json`. Die folgende Tabelle zeigt den Inhalt der Konfigurationsdatei.


| Key (Schlüssel) | Description | Beispiel | 
| --- | --- | --- | 
| inputs | Wörterbuch, das Eingabeebenen einem Attribut zuordnet. | <pre>{inputs:{"data":{...},"data1":{...}}}</pre> | 
| "data" | Name der Eingabeebene. Hinweis: "data" ist ein Beispiel für den Namen, den Sie verwenden können, um die Eingabeebene zu beschriften. | "data" | 
| shape | Beschreibt die Form der Eingabe für das Modell. Dies folgt den gleichen Konventionen, die SageMaker Neo verwendet. | "shape": "1,3,224,224" | 
| filePath | Relativer Pfad zu dem Verzeichnis, das die Kalibrierungsbilder enthält. Dies können Binär- oder Bilddateien wie JPG oder PNG sein. | "filepath": "calib\$1data/" | 
| colorformat | Farbformat, dass das Modell erwartet. Dies wird bei der Konvertierung von Bildern in Binärdateien verwendet. Unterstützte Werte: [RGB, BGR]. Der Standardwert ist RGB. | "colorformat":"RGB" | 
| mean | Mittelwert, der von der Eingabe subtrahiert werden soll. Kann ein einzelner Wert oder eine Liste von Werten sein. Wenn der Mittelwert als Liste angegeben wird, muss die Anzahl der Einträge der Kanaldimension der Eingabe entsprechen. | "mean":128.0 | 
| scale | Skalenwert, der für die Normalisierung der Eingabe verwendet werden soll. Kann ein einzelner Wert oder eine Liste von Werten sein. Wenn die Skala als Liste angegeben wird, muss die Anzahl der Einträge der Kanaldimension der Eingabe entsprechen. | "scale": 255.0 | 

Im Folgenden finden Sie eine Beispiel-Konfigurationsdatei: 

```
{
    "inputs": {
        "data": {
                "shape": "1, 3, 224, 224",
                "filepath": "calib_data/",
                "colorformat": "RGB",
                "mean":[128,128,128],
                "scale":[128.0,128.0,128.0]
        }
    }
}
```

## Bilder zur Kalibrierung
<a name="neo-troubleshooting-target-devices-ambarella-calibration-images"></a>

Quantisieren Sie Ihr trainiertes Modell, indem Sie Kalibrierungsbilder bereitstellen. Die Quantisierung Ihres Modells verbessert die Leistung des CVFlow Motors auf einem Ambarella-System auf einem Chip (SoC). Die Ambarella-Toolchain verwendet die Kalibrierungsbilder, um zu bestimmen, wie jede Schicht im Modell quantisiert werden sollte, um eine optimale Leistung und Genauigkeit zu erreichen. Jede Schicht wird unabhängig in unsere Formate quantisiert. INT8 INT16 Das endgültige Modell besteht aus einer Mischung von INT16 Schichten INT8 und nach der Quantisierung.

**Wie viele Bilder sollten Sie verwenden?**

Es wird empfohlen, zwischen 100 und 200 Bilder einzufügen, die repräsentativ für die Art von Szenen sind, die das Modell voraussichtlich verarbeiten wird. Die Zeit für die Modellkompilierung nimmt linear mit der Anzahl der Kalibrierungsbilder in der Eingabedatei zu.

**Was sind die empfohlenen Bildformate?**

Kalibrierungsbilder können in einem rohen Binärformat oder in Bildformaten wie JPG und PNG vorliegen.

Ihr Kalibrierungsordner kann eine Mischung aus Bildern und Binärdateien enthalten. Wenn der Kalibrierungsordner sowohl Bilder als auch Binärdateien enthält, konvertiert die Toolchain die Bilder zunächst in Binärdateien. Sobald die Konvertierung abgeschlossen ist, werden die neu generierten Binärdateien zusammen mit den Binärdateien verwendet, die sich ursprünglich im Ordner befanden.

**Kann ich die Bilder zuerst in das Binärformat konvertieren?**

Ja. Sie können die Bilder mit Open-Source-Paketen wie [OpenCV](https://opencv.org/) oder [PIL](https://python-pillow.org/) in das Binärformat konvertieren. Schneiden Sie die Bilder zu und ändern Sie ihre Größe so, dass sie der Eingabeebene Ihres trainierten Modells entsprechen.



## Mittelwert und Skala
<a name="neo-troubleshooting-target-devices-ambarella-mean-scale"></a>

Sie können für die Amberalla-Toolchain Optionen für die Vorverarbeitung von Mittelwert und Skalierung angeben. Diese Operationen sind in das Netzwerk eingebettet und werden während der Inferenz auf jede Eingabe angewendet. Geben Sie keine verarbeiteten Daten an, wenn Sie den Mittelwert oder die Skala angeben. Geben Sie insbesondere keine Daten an, von denen Sie den Mittelwert subtrahiert haben oder auf die Sie eine Skalierung angewendet haben.

## Prüfen Sie Ihr Kompilierungsprotokoll
<a name="neo-troubleshooting-target-devices-ambarella-compilation"></a>

Hinweise zur Überprüfung des Kompilierungsprotokolls für Ambarella-Geräte finden Sie unter [Überprüfen Sie Ihr Kompilierungsprotokoll](neo-troubleshooting-compilation.md#neo-troubleshooting-compilation-logs).