Débloquez les performances maximales en optimisant YOLO/ResNet pour HiSilicon

Votre objectif d'optimiser yolo/resnet sur les NPU HiSilicon nécessite un workflow d'optimisation spécifique. Ce flux de travail augmente perfor

Déverrouiller

Votre objectif d'optimiser yolo/resnet sur les NPU HiSilicon nécessite un workflow d'optimisation spécifique. Ce flux de travail améliore les performances et l'efficacité. Vous utiliserez un ensemble d'outils de base pour préparer votre modèle pour la plate-forme Ascend.

Outils clés pour l'efficacité HiSilicon

  • ONNX:Le format intermédiaire pour votre modèle entraîné.
  • Compilateur Tensor Ascend (ATC):Convertit votre modèle ONNX en un puissant modèle Ascend.
  • Quantification INT8:Augmente l'efficacité de traitement du modèle.
  • AIPP:Accélère votre modèle sur l'Ascend NPU pour une meilleure efficacité.

Le modèle yolov7 en est un excellent exemple. Vous pouvez obtenir une efficacité élevée pour votre modèle yolov7 sur le matériel HiSilicon. Ce processus débloque toute la puissance de la plate-forme HiSilicon Ascend pour votre modèle Ascend.

Les clés à emporter

  • Convertissez d'abord votre modèle au format ONNX. Cela le rend prêt pour la plate-forme Ascend.
  • Utilisez le compilateur de tenseurs Ascend (ATC) pour changer votre modèle ONNX en un fichier spécial «. om». Ce fichier fonctionne mieux sur les puces Ascend.
  • Appliquez la quantification INT8 à votre modèle. Cela le rend beaucoup plus rapide et utilise moins de puissance.
  • Utilisez le prétraitement AI (AIPP). Il aide la puce Ascend à effectuer des tâches d'image, rendant votre modèle encore plus rapide.
  • Vérifiez les performances de votre modèle. Assurez-vous que toutes les pièces fonctionnentNPUPour la meilleure utilisation de vitesse et de puissance.

OPTIMISER YOLO/RESNET POUR HISILICON:

OPTIMISATION

Votre première étape dans l'optimisation de yolo/resnet est un nettoyageMigration modèle. Vous devez convertir votre modèle PyTorch ou TensorFlow entraîné au format ONNX (Open Neural Network Exchange). Ce format agit comme un pont universel vers la plate-forme Ascend.

Conversion du modèle à ONNX:

Vous pouvez exporter un modèle PyTorch à l'aide d'un simple script Python. Ce script trace les opérations de votre modèle et les enregistre dans un seul. OnnxDossier.

# Utilisez torch.onnx.export pour convertir votre modèle
Torch. onnx.export (en)
Modèle, # votre modèle PyTorch
Sample_input, # un tenseur d'entrée d'échantillon
"Model. onnx", nom de fichier # output
Opset_version = 17, # la version ONNX à utiliser
Input_names =['input'],
Output_names =['output']
)

Après l'exportation, vous devez utiliser un outil commeOnnx-simplificateurPour nettoyer le graphique. Les utilisateurs de TensorFlow sont parfois confrontés à des problèmes de migration. Les problèmes communs comprennent:

  • Noms d'opérateur non valides: Des erreurs commeValueError: '/conv_in/Conv _ pad/' n'est pas un nom de portée racine validePeut se produire. L'utilisation d'outils alternatifs résout souvent ce problème en renommant les opérateurs.
  • Grandes tailles de tenseur: Modèles avecTenseurs supérieurs à 2 GoPeut provoquer l'échec de la conversion. Vous devrez peut-être ajuster l'architecture de votre modèle pour gérer cela.

Ces étapes assurent une migration en douceur pour votre modèle.

Adaptation du modèle YOLOv7:

Les modèles modernes de détection d'objets comme le modèle yolov7 nécessitent une attention particulière. L'architecture yolov7 a des couches uniques. Vous devez adapter le modèle yolov7 pour la plate-forme HiSilicon. Cette adaptation est cruciale pour la migration du modèle yolov7. Une manipulation appropriée du modèle yolov7 assure une détection de haute précision. Ce processus prépare le modèle yolov7 pour la plate-forme Ascend. Votre objectif est une migration réussie du modèle yolov7 pour la détection d'objets basée sur le deep learning. Le modèle yolov7 est un puissant outil de détection d'objets. Cette migration du modèle yolov7 est la clé de la performance. Le modèle yolov7 aide à trouver chaque objet. L'adaptation du modèle yolov7 fait partie du processus de validation.

Analyse du support opérateur NPU:

Votre prochaine étape de migration est la validation de l'opérateur. Le NPU HiSilicon peut ne pas prendre en charge tous les opérateurs de votre modèle. Vous devez vérifier quels opérateurs le matériel Ascend prend en charge. Cette analyse est vitale pour optimiser yolo/resnet sur HiSilicon.Boîte à outils CANN de HuaweiPour la plate-forme Ascend offre des outils pour cela.

  • LeVérificateur d'utilisabilité du modèlePeut identifier les opérateurs non pris en charge dans votre modèle.
  • Il montre comment le modèle sera divisé entre le NPU et le CPU. Plus de divisions peuvent nuire à la performance.

Cette analyse vous aide à maximiser l'efficacité sur le matériel HiSilicon. Si vous trouvez des opérateurs non pris en charge, vous devrez peut-êtreRéécrire le graphique de votre modèle. Cela garantit que chaque partie du modèle fonctionne sur l'Ascend NPU. Cette migration de graphe améliore les performances et l'efficacité. Le déchargement complet de NPU sur la plate-forme Ascend est l'objet principal. Cette dernière étape de migration débloque toute la puissance de la plate-forme HiSilicon Ascend pour vos modèles de détection d'objets. Cela donne à votre application yolov7 une meilleure efficacité sur HiSilicon et Ascend. Le modèle yolov7 peut maintenant effectuer une détection rapide de n'importe quel objet. Les performances du modèle yolov7 sur Ascend seront excellentes. Le modèle yolov7 est maintenant prêt. Le modèle yolov7 offre une excellente détection. Le modèle yolov7 est optimisé. Le modèle yolov7 est complet.

OPTIMISATION ET PERFORMANCE DE BASE:

NOYAU

Vous avez un modèle ONNX propre. Votre prochaine étape de migration consiste à le convertir pour la plate-forme Ascend. Cette étape se concentre sur les gains de performance de base. Vous utiliserez le compilateur Tensor Ascend (ATC) et la quantification pour débloquer une efficacité maximale et une efficacité énergétique pour vos modèles de détection d'objets sur le matériel Hisilicon. Ce processus est essentiel pourOptimisation des performances yolo/resnet.

Conversion du modèle ATC:

Le compilateur Ascend Tensor (ATC) est votre outil principal pour cette migration. Il transforme votre modèle ONNX en un. OmDossier. Ce fichier est hautement optimisé pour les processeurs Ascend. Vous exécutez ATC à partir de la ligne de commande.

Une commande ATC typique ressemble à ceci:

Atc -- modèle = yolov7.onnx \
-- Cadre = 5 \
-- Sortie = yolov7 _ bs1 \
-- Input_format = NCHW \
-- Input_shape = "images:1,3,640,640" \
-- Soc_version = Ascend310 \
-- Log = info

Les paramètres clés guident la conversion pour les processeurs Ascend:

  • -Modèle: Spécifie votre entrée. OnnxFichier modèle.
  • -- Cadre: Utilisation5Pour un modèle ONNX.
  • -- Sortie: Définit le nom de votre sortie. OmModèle.
  • -- Soc_version: Cible un SOC Hisilicon spécifique, commeAscend310. C'est vital pour la performance.
  • -- Input_shape: Définit une taille d'entrée fixe pour le modèle.

Vous devez fournir un fixeInput_formePour votre modèle. Les modèles pour la détection d'objets ont parfois des dimensions d'entrée variables. L'outil ATC a besoin d'une forme statique pour obtenir les meilleures performances sur les processeurs Ascend. Cette étape assure une migration réussie et évite les erreurs lors de l'inférence sur la plateforme Hisilicon.

Quantification INT8:

La quantification réduit la précision de votre modèle de 32 bits à virgule flottante (FP32) à un entier de 8 bits (INT8). Ce changement améliore considérablement la vitesse d'inférence et l'efficacité énergétique. La migration vers la précision INT8 est une étape clé pour déployer un modèle YOLOv7 sur Hisilicon. Vous avez deux options principales pour cette migration.

MéthodeDescriptionMeilleur pour
Quantification post-entraînement (PTQ)Applique la quantification après que le modèle a déjà été entraîné. Il estSimple et rapide.Déploiement rapide où une petite baisse de précision est acceptable.
Formation à la quantification (QAT)Simule la quantification pendant le processus d'entraînement. Le modèle apprend à s'adapter à une plus faible précision.Scénarios nécessitant leLa plus grande précision possible après quantification.

Pour de nombreux modèles de détection d'objets YOLOv7, PTQ offre un excellent équilibre. Il peutDoubler votre vitesse d'inférenceEt améliorer l'efficacité énergétique sur les processeurs Ascend AI. Cela rend votre application YOLOv7 plus rapide pour la détection en temps réel de tout objet. Le petit compromis en termes de précision est souvent acceptable pour l'augmentation importante des performances et de l'efficacité énergétique des processeurs Ascend. Cette migration finale du modèle prépare votre modèle YOLOv7 pour une efficacité maximale sur les processeurs Hisilicon Ascend, prêts à trouver chaque objet avec rapidité. Les performances de détection du modèle YOLOv7 sur Ascend seront excellentes.

TECHNIQUES DE TUNING AVANCÉES:

Vous pouvez encore améliorer les performances de votre modèle avec un réglage avancé. Ces techniques affinent votre modèle YOLOv7 pour la plate-forme HiSilicon. Ils vous aident à atteindre une efficacité maximale et des performances élevées pour les applications en temps réel.

Prétraitement AIPP:

Vous pouvez accélérer votre modèle en utilisant AI Pre-Processing (AIPP). L'AIPP décharge les tâches de prétraitement d'image de la CPU directement vers le matériel Ascend. C'est une étape cruciale pour une meilleure efficacité énergétique.

AIPP gère des tâches telles que:

  • Redimensionnement de l'image
  • Conversion de l'espace de couleur (par exemple, BGR en RVB)
  • Soustraction moyenne et normalisation

Ce processus libère votre CPU. Il permet aux processeurs Ascend de gérer l'ensemble du pipeline d'inférence. Votre modèle YOLOv7 permet une inférence en temps réel plus rapide avec une meilleure gestion de l'alimentation. Cela donne à votre modèle une efficacité supérieure sur HiSilicon.

Mémoire et batching:

AppropriéeMémoireLa gestion est essentielle pour la haute performance. Vous devez configurer votre modèle YOLOv7 pour utiliser la mémoire efficacement sur la plate-forme Ascend. Le batching est une technique puissante pour cela. Il s'agit de traiter plusieurs images en une seule passe d'inférence.

Taille du lotDébitLatence
Petit (p. ex. 1)InférieurPlus rapide par image
Grande taille (p. ex. 8, 16)SupérieurPlus lente par image

L'augmentation de la taille du lot améliore le débit global de votre modèle sur les processeurs Ascend. Cela conduit à une meilleure gestion de l'énergie et de l'efficacité. Vous devez trouver le bon équilibre pour votre modèle YOLOv7 afin d'obtenir les meilleures performances de détection en temps réel. Cette optimisation est essentielle pourModèles d'IA haute performanceSur HiSilicon.

Profilage par inférence:

Vous devez profiler votre modèle pour trouver des goulots d'étranglement de performance. Les outils de profilage vous montrent comment votre modèle s'exécute sur les processeurs Ascend AI. Ils vous aident à garantir que chaque couche fonctionne sur le NPU pour une efficacité énergétique et une gestion de la puissance optimales.

Parfois,Certaines couches dans un modèle retombent vers la CPU. Cela se produit lorsque les processeurs Ascend ne peuvent pas gérer des opérations spécifiques, comme une couche SoftMax ou lePost-traitement NMS dans un modèle YOLOv7. Ce repli crée un goulot d'étranglement important, ralentissant l'inférence en temps réel et nuisant à l'efficacité énergétique. Le profilage vous aide à identifier ces problèmes. Il indique si une charge de travail importante alourdit le CPU au lieu d'utiliser le puissant matériel Ascend. En analysant les benchmarks de performance, vous pouvez modifier votre modèle pour utiliser les opérations prises en charge par NPU. Cela garantit que la détection de votre modèle YOLOv7 fonctionne avec une précision et une efficacité maximales sur HiSilicon, débloquant de vraies performances élevées et une excellente gestion de l'alimentation pour une inférence en temps réel.


Votre modèle peut atteindre des performances maximales sur HiSilicon. Ce workflow d'optimisation débloque une efficacité maximale pour la plate-forme Ascend.

  1. Exportez votre modèle vers un graphique ONNX propre.
  2. Convertir le modèle en un. OmPour la plate-forme Ascend.
  3. Appliquez la quantification INT8 pour une meilleure efficacité.
  4. Utilisez AIPP pour décharger le prétraitement vers le matériel Ascend.

Liste de contrôle de la validation finale📝

  • Validation: Confirmez votreSoc_versionCorrespond au matériel HiSilicon cible.
  • Validation de la demandeAssurez-vous que la forme d'entrée de votre modèle est correcte pour la plate-forme Ascend.
  • Validation de la demande: Vérifiez que tous les opérateurs de modèle sont pris en charge par le NPU Ascend.

Suivre ce processus d'optimisation yolo/resnet est le chemin le plus fiable vers la haute performance et l'efficacité sur HiSilicon. Cette validation débloque toute la puissance de la plate-forme Ascend pour votre matériel HiSilicon.

FAQ

Comment choisir entre PTQ et QAT?

Vous devez utiliser la quantification post-entraînement (PTQ) pour un déploiement rapide. Il offre un grand boost de vitesse. Vous pouvez utiliser l'entraînement conscient de la quantification (QAT) lorsque vous avez besoin de la plus grande précision possible. QAT nécessite un recyclage de votre modèle, mais offre de meilleurs résultats et une bonne efficacité énergétique.

Que faire si mon modèle a des opérateurs non pris en charge?

Vous devez d'abord identifier les opérateurs non pris en charge à l'aide de la boîte à outils CANN. Vous pouvez ensuite essayer de les remplacer par des alternatives supportées par NPU. Cela garantit que votre modèle entier fonctionne sur le matériel Ascend, ce qui est essentiel pour les performances et la réalisation de la meilleure efficacité énergétique.

Pourquoi l'AIPP est-elle importante pour mon modèle?

L'AIPP décharge le prétraitement d'image de la CPU vers le NPU. Cela libère des ressources CPU. L'ensemble de votre pipeline fonctionne sur le matériel Ascend, ce qui réduit la latence et améliore l'efficacité énergétique globale de votre application.

Est-ce que leSoc_versionParamètre vraiment d'importance?

Oui, c'est très important. Vous devez définir leSoc_versionPour correspondre à votre spécifiquePuce de HiSilicon(P. ex.,Ascend310). L'outil ATC utilise ces informations pour créer un fichier de modèle qui est hautement optimisé pour cette architecture matérielle exacte.

Related Articles