

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Dépannage des erreurs
<a name="neo-troubleshooting"></a>

Cette section contient des informations sur la façon de comprendre et d’éviter les erreurs courantes, les messages d’erreur qu’elles génèrent, ainsi que des conseils sur la manière de résoudre ces erreurs. Avant d’aller plus loin, posez-vous les questions suivantes :

 **Avez-vous rencontré une erreur avant de déployer votre modèle ?** Si oui, consultez [Résolution des erreurs de compilation Neo](https://docs.aws.amazon.com/sagemaker/latest/dg/neo-troubleshooting-compilation.html). 

 **Avez-vous rencontré une erreur après avoir compilé votre modèle ?** Si oui, consultez [Résolution des erreurs d’inférence Neo](https://docs.aws.amazon.com/sagemaker/latest/dg/neo-troubleshooting-inference.html). 

**Avez-vous rencontré une erreur lors de la compilation de votre modèle pour des périphériques Ambarella ?** Si oui, consultez [Résolution des erreurs Ambarella](neo-troubleshooting-target-devices-ambarella.md).

## Classification des types d’erreurs
<a name="neo-error-messages"></a>

Cette liste classifie à les *erreurs de l’utilisateur* que vous pouvez recevoir de Neo. Elles incluent les erreurs d’accès et d’autorisation ainsi que les erreurs de chargement pour chacune des infrastructures prises en charge. Toutes les autres erreurs sont des *erreurs de système*.

### Erreur d’autorisation client
<a name="neo-error-client-permission"></a>

 Neo transmet les erreurs directement depuis le service dépendant. 
+ *Accès refusé* lors de l'appel de sets : AssumeRole
+ *Toute erreur 400* lors de l’appel d’Amazon S3 pour télécharger un modèle client vers l’amont ou l’aval
+ *PassRole*Erreur 

### Erreur de chargement
<a name="collapsible-section-2"></a>

En supposant que le compilateur Neo a chargé .tar.gz avec succès depuis Amazon S3, vérifiez que le tarball contient les fichiers nécessaires pour la compilation. Le critère de vérification est propre à l’infrastructure : 
+ **TensorFlow**: attend uniquement le fichier protobuf (\$1.pb ou \$1.pbtxt). Pour les modèles enregistrés, attend un dossier de variables. 
+ **Pytorch** : Attend uniquement un fichier pytorch (\$1.pth).
+ **MXNET** : Attend uniquement un fichier de symboles (\$1.json) et un fichier de paramètres (\$1.params).
+ **XGBoost**: attendez-vous à un seul fichier XGBoost modèle (\$1.model). Le modèle d’entrée dispose d’une limite de taille.

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

En supposant que le compilateur Neo a chargé .tar.gz avec succès depuis Amazon S3, et que le tarball contient les fichiers nécessaires pour la compilation. Le critère de vérification est : 
+ **OperatorNotImplemented**: aucun opérateur n'a été implémenté.
+ **OperatorAttributeNotImplemented**: L'attribut de l'opérateur spécifié n'a pas été implémenté. 
+ **OperatorAttributeRequired**: un attribut est requis pour un graphe de symboles interne, mais il n'est pas répertorié dans le graphe du modèle saisi par l'utilisateur. 
+ **OperatorAttributeValueNotValid**: La valeur de l'attribut dans l'opérateur spécifique n'est pas valide. 

**Topics**
+ [Classification des types d’erreurs](#neo-error-messages)
+ [Résolution des erreurs de compilation Neo](neo-troubleshooting-compilation.md)
+ [Résolution des erreurs d’inférence Neo](neo-troubleshooting-inference.md)
+ [Résolution des erreurs Ambarella](neo-troubleshooting-target-devices-ambarella.md)

# Résolution des erreurs de compilation Neo
<a name="neo-troubleshooting-compilation"></a>

Cette section contient des informations sur la façon de comprendre et d’éviter les erreurs de compilation courantes, les messages d’erreur qu’elles génèrent, et des conseils sur leur possible résolution. 

**Topics**
+ [Comment utiliser cette page](#neo-troubleshooting-compilation-how-to-use)
+ [Erreurs spécifiques au cadre](#neo-troubleshooting-compilation-framework-related-errors)
+ [Erreurs liées à l’infrastructure](#neo-troubleshooting-compilation-infrastructure-errors)
+ [Vérifier votre journal de compilation](#neo-troubleshooting-compilation-logs)

## Comment utiliser cette page
<a name="neo-troubleshooting-compilation-how-to-use"></a>

Essayez de résoudre l’erreur en consultant ces sections dans l’ordre suivant :

1. Vérifiez que l’entrée de votre tâche de compilation satisfait aux exigences d’entrée. Consultez [Quelles sont les formes de données d'entrée attendues par SageMaker Neo ?](neo-compilation-preparing-model.md#neo-job-compilation-expected-inputs)

1.  Vérifiez les [erreurs spécifiques au cadre](https://docs.aws.amazon.com/sagemaker/latest/dg/neo-troubleshooting-compilation.html#neo-troubleshooting-compilation-framework-related-errors) courantes. 

1.  Vérifiez si votre erreur est une [erreur liée à l’infrastructure](https://docs.aws.amazon.com/sagemaker/latest/dg/neo-troubleshooting-compilation.html#neo-troubleshooting-compilation-infrastructure-errors). 

1. Vérifiez votre [journal de compilation](https://docs.aws.amazon.com/sagemaker/latest/dg/neo-troubleshooting-compilation.html#neo-troubleshooting-compilation-logs).

## Erreurs spécifiques au cadre
<a name="neo-troubleshooting-compilation-framework-related-errors"></a>

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


| Erreur | Solution | 
| --- | --- | 
|   `InputConfiguration: No h5 file provided in <model path>`   |   Vérifiez que votre fichier h5 se trouve dans l’URI Amazon S3 que vous avez spécifié.  *Ou* Vérifiez que le [fichier h5 est correctement formaté](https://www.tensorflow.org/guide/keras/save_and_serialize#keras_h5_format).   | 
|   `InputConfiguration: Multiple h5 files provided, <model path>, when only one is allowed`   |  Veillez à ne fournir qu’un fichier `h5`.  | 
|   `ClientError: InputConfiguration: Unable to load provided Keras model. Error: 'sample_weight_mode'`   |  Vérifiez que la version de Keras que vous avez spécifiée est prise en charge. Consultez les cadres pris en charge pour les [instances cloud](https://docs.aws.amazon.com/sagemaker/latest/dg/neo-supported-cloud.html) et les [appareils en périphérie](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. `   |   Vérifiez que votre entrée de modèle répond au format NCHW. Voir [Quelles sont les formes de données d'entrée attendues par 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>


| Erreur | Solution | 
| --- | --- | 
|   `ClientError: InputConfiguration: Only one parameter file is allowed for MXNet model. Please make sure the framework you select is correct.`   |   SageMaker Neo sélectionnera le premier fichier de paramètres donné pour la compilation.   | 

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


| Erreur | Solution | 
| --- | --- | 
|   `InputConfiguration: Exactly one .pb file is allowed for TensorFlow models.`   |  Veillez à ne fournir qu’un fichier .pb ou .pbtxt.  | 
|  `InputConfiguration: Exactly one .pb or .pbtxt file is allowed for TensorFlow models.`  |  Veillez à ne fournir qu'un fichier .pb ou .pbtxt.  | 
|   ` 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>} `   |   Vérifiez que l’opérateur que vous avez choisi est pris en charge. Voir [Frameworks et opérateurs pris en charge par SageMaker Neo](https://aws.amazon.com/releasenotes/sagemaker-neo-supported-frameworks-and-operators/).   | 

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


| Erreur | Solution | 
| --- | --- | 
|   `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.`  |  Effectuez l’une des actions suivantes : [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/neo-troubleshooting-compilation.html)  | 

## Erreurs liées à l’infrastructure
<a name="neo-troubleshooting-compilation-infrastructure-errors"></a>


| Erreur | Solution | 
| --- | --- | 
|   `ClientError: InputConfiguration: S3 object does not exist. Bucket: <bucket>, Key: <bucket key>`   |  Vérifiez l’URI Amazon S3 que vous avez fourni.  | 
|   ` ClientError: InputConfiguration: Bucket <bucket name> is in region <region name> which is different from AWS Sagemaker service region <service region> `   |   Créez un compartiment Amazon S3 qui se trouve dans la même région que le service.   | 
|   ` ClientError: InputConfiguration: Unable to untar input model. Please confirm the model is a tar.gz file `   |   Vérifiez que votre modèle dans Amazon S3 est compressé sous forme de fichier `tar.gz`.   | 

## Vérifier votre journal de compilation
<a name="neo-troubleshooting-compilation-logs"></a>

1. Accédez à Amazon à CloudWatch l'adresse [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Sélectionnez la région dans laquelle vous avez créé la tâche de compilation dans la liste déroulante **Region** (Région) située en haut à droite.

1. Dans le volet de navigation d'Amazon CloudWatch, choisissez **Logs**. Sélectionnez **Log groups** (Groupes de journaux).

1. Recherchez le groupe de journaux nommé `/aws/sagemaker/CompilationJobs`. Sélectionnez le groupe de journaux.

1. Recherchez le flux de journaux nommé d’après le nom de la tâche de compilation. Sélectionnez le flux de journaux.

# Résolution des erreurs d’inférence Neo
<a name="neo-troubleshooting-inference"></a>

Cette section contient des informations sur la façon de prévenir et de résoudre certaines des erreurs courantes que vous pourriez rencontrer lors du déploiement en and/or invoquant le point de terminaison. Cette section s'applique à la **PyTorch version 1.4.0 ou ultérieure** et à la **MXNetv1.7.0 ou version ultérieure**. 
+ Assurez-vous que la première inférence (inférence de préparation) sur des données d’entrée valides est faite dans `model_fn()`, si vous avez défini un `model_fn` dans votre script d’inférence ; sinon, le message d’erreur suivant peut s’afficher sur le terminal lorsque l’API [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) est appelée : 

  ```
  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."                
  ```
+ Assurez-vous que les variables d’environnement du tableau suivant sont définies. Si ce n’est pas le cas, le message d’erreur suivant peut s’afficher : 

  **Sur le 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" } ".
  ```

  **Dans 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/fr_fr/sagemaker/latest/dg/neo-troubleshooting-inference.html)
+ Assurez-vous que la variable d'`MMS_DEFAULT_RESPONSE_TIMEOUT`environnement est définie sur 500 ou une valeur supérieure lors de la création du modèle Amazon SageMaker AI ; sinon, le message d'erreur suivant pourrait s'afficher sur le terminal : 

  ```
  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."
  ```

# Résolution des erreurs Ambarella
<a name="neo-troubleshooting-target-devices-ambarella"></a>

SageMaker Neo nécessite que les modèles soient empaquetés dans un fichier TAR compressé (`*.tar.gz`). Pour les périphériques Ambarella, des fichiers supplémentaires doivent être inclus dans le fichier TAR compressé avant de l’envoyer pour compilation. Incluez les fichiers suivants dans votre fichier TAR compressé si vous souhaitez compiler un modèle pour les cibles Ambarella avec SageMaker Neo :
+ Un modèle entraîné utilisant un framework soutenu par SageMaker Neo 
+ Un fichier de configuration JSON
+ Images d’étalonnage

Par exemple, le contenu de votre fichier TAR compressé doit ressembler à l’exemple suivant :

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

Le répertoire est configuré comme suit :
+ `amba_config.json` : fichier de configuration
+ `calib_data` : dossier contenant des images d’étalonnage
+ `mobilenet_v1_1.0_0224_frozen.pb`: TensorFlow modèle enregistré sous forme de graphe figé

Pour plus d'informations sur les frameworks pris en charge par SageMaker Neo, consultez[Cadres pris en charge](neo-supported-devices-edge-frameworks.md).

## Configuration du fichier de configuration
<a name="neo-troubleshooting-target-devices-ambarella-config"></a>

Le fichier de configuration fournit les informations requises par la chaîne d’outils Ambarella pour compiler le modèle. Le fichier de configuration doit être enregistré en tant que fichier JSON et le nom du fichier doit se terminer par `*config.json`. Le tableau suivant illustre le contenu du fichier de configuration.


| Clé | Description | Exemple | 
| --- | --- | --- | 
| inputs | Dictionnaire mappant les couches d’entrée à l’attribut. | <pre>{inputs:{"data":{...},"data1":{...}}}</pre> | 
| « data » | Nom de la couche d’entrée. Remarque : « data » est un exemple du nom que vous pouvez utiliser pour étiqueter la couche d’entrée. | « data » | 
| shape | Décrit la forme de l’entrée du modèle. Cela suit les mêmes conventions que celles utilisées par SageMaker Neo. | « shape » : « 1,3,224,224" | 
| filepath | Chemin d’accès relatif du répertoire contenant des images d’étalonnage. Il peut s’agir de fichiers binaires ou images, JPG ou PNG par exemple. | « filepath » : « calib\$1data/ » | 
| colorformat | Format de couleur attendu par le modèle. Sera utilisé lors de la conversion d’images en fichiers binaires. Valeurs prises en charge : [RVB, BGR]. La valeur par défaut est RVB. | « format de couleur » : « RVB » | 
| mean | Valeur moyenne à soustraire de l’entrée. Peut être une valeur unique ou une liste de valeurs. Lorsque la moyenne est donnée sous forme de liste, le nombre d’entrées doit correspondre à la dimension de canal de l’entrée. | « moyenne » : 128.0 | 
| scale | Valeur d’échelle à utiliser pour normaliser l’entrée. Peut être une valeur unique ou une liste de valeurs. Lorsque l’échelle est donnée sous forme de liste, le nombre d’entrées doit correspondre à la dimension de canal de l’entrée. | « échelle » : 255.0 | 

Voici un exemple de fichier de configuration : 

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

## Images d’étalonnage
<a name="neo-troubleshooting-target-devices-ambarella-calibration-images"></a>

Quantifiez votre modèle entraîné en fournissant des images d’étalonnage. La quantification de votre modèle améliore les performances du CVFlow moteur sur un système Ambarella sur puce (SoC). La chaîne d’outils Ambarella utilise les images d’étalonnage pour déterminer la quantification nécessaire de chaque couche du modèle afin d’obtenir des performances et une précision optimales. Chaque couche est quantifiée indépendamment de ses INT8 INT16 formats. Le modèle final comporte un mélange de INT16 couches INT8 et après quantification.

**Combien d’images devez-vous utiliser ?**

Nous vous recommandons d’inclure entre 100 et 200 images représentatives des types de scènes que le modèle est censé gérer. La durée de compilation du modèle augmente de façon linéaire jusqu’au nombre d’images d’étalonnage dans le fichier d’entrée.

**Quels sont les formats d’image recommandés ?**

Les images d’étalonnage peuvent se trouver à un format binaire brut ou des formats d’image tels que JPG et PNG.

Votre dossier d’étalonnage peut contenir un mélange d’images et de fichiers binaires. Si le dossier d’étalonnage contient à la fois des images et des fichiers binaires, la chaîne d’outils convertit d’abord les images en fichiers binaires. Une fois la conversion terminée, les fichiers binaires nouvellement générés sont utilisés conjointement avec les fichiers binaires initialement présents dans le dossier.

**Puis-je d’abord convertir les images au format binaire ?**

Oui. Vous pouvez convertir les images au format binaire avec des packages open-source tels que [OpenCV](https://opencv.org/) ou [PIL](https://python-pillow.org/). Recadrez et redimensionnez les images de sorte qu’elles correspondent à la couche d’entrée de votre modèle entraîné.



## Moyenne et échelle
<a name="neo-troubleshooting-target-devices-ambarella-mean-scale"></a>

Vous pouvez spécifier des options de prétraitement de moyenne et de mise à l’échelle dans la chaîne d’outils Amberalla. Ces opérations sont intégrées au réseau et sont appliquées pendant l’inférence sur chaque entrée. Ne fournissez pas de données traitées si vous spécifiez la moyenne ou l’échelle. Plus précisément, ne fournissez pas de données dont vous avez soustrait la moyenne ou auxquelles vous avez appliqué la mise à l’échelle.

## Vérifier votre journal de compilation
<a name="neo-troubleshooting-target-devices-ambarella-compilation"></a>

Pour plus d’informations sur la vérification du journal de compilation des appareils Ambarella, consultez [Vérifier votre journal de compilation](neo-troubleshooting-compilation.md#neo-troubleshooting-compilation-logs).