Résolution des erreurs Ambarella - Amazon SageMaker

Résolution des erreurs Ambarella

SageMaker Neo a besoin que les modèles soient packagés sous forme de 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 voulez compiler un modèle pour des cibles Ambarella avec SageMaker Neo :

  • Un modèle entraîné utilisant un cadre pris en charge 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 : modèle TensorFlow enregistré en tant que graphe figé

Pour obtenir des informations sur les cadres pris en charge par SageMaker Neo, veuillez consulter Frameworks pris en charge.

Configuration du fichier de configuration

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.

Key (Clé) Description Exemple

inputs

Dictionnaire mappant les couches d'entrée à l'attribut.

{inputs:{"data":{...},"data1":{...}}}

« 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. Les mêmes conventions que celles utilisées par SageMaker Neo s'appliquent.

« 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_data/ »

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

échelle

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

Quantifiez votre modèle entraîné en fournissant des images d'étalonnage. La quantification de votre modèle améliore les performances du moteur CVFlow sur un système sur puce (SoC) Ambarella. 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 aux formats INT8 ou INT16. Après quantification, le modèle final comprend un mélange de couches INT8 et INT16.

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 ou PIL. Recadrez et redimensionnez les images de sorte qu'elles correspondent à la couche d'entrée de votre modèle entraîné.

Moyenne et échelle

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.