Desbloquee el máximo rendimiento optimizando YOLO/ResNet para HiSilicon
Su objetivo de optimizar yolo/resnet en HiSilicon NPUs requiere un flujo de trabajo de optimización específico. Este flujo de trabajo aumenta el perfor
Su objetivo de optimizar yolo/resnet en HiSilicon NPUs requiere un flujo de trabajo de optimización específico. Este flujo de trabajo aumenta el rendimiento y la eficiencia. Utilizará un conjunto de herramientas básicas para preparar su modelo para la plataforma Ascend.
Herramientas clave para la eficiencia de HiSilicon
- ONNX:El formato intermedio para su modelo entrenado.
- Compilador Ascend Tensor (ATC):Convierte su modelo ONNX en un potente modelo Ascend.
- Cuantificación INT8:Aumenta la eficiencia de procesamiento del modelo.
- AIPP:Acelera su modelo en Ascend NPU para una mejor eficiencia.
El modelo yolov7 es un gran ejemplo. Puede lograr una alta eficiencia para su modelo yolov7 en hardware HiSilicon. Este proceso desbloquea toda la potencia de la plataforma HiSilicon Ascend para su modelo Ascend.
Puntos clave
- Convierta su modelo a formato ONNX primero. Esto lo hace listo para la plataforma Ascend.
- Use el compilador Ascend Tensor (ATC) para cambiar su modelo ONNX a un archivo especial '.om'. Este archivo funciona mejor en los chips de Ascend.
- Aplique la cuantificación INT8 a su modelo. Esto hace que funcione mucho más rápido y utilice menos energía.
- Preprocesamiento AI (AIPP). Ayuda al chip Ascend a realizar tareas de imagen, lo que hace que su modelo sea aún más rápido.
- Compruebe el rendimiento de su modelo. Asegúrese de que todas las piezas se ejecutan en elNPUPara la mejor velocidad y uso de potencia.
OPTIMIZACIÓN DE YOLO/RESNET PARA HISILICON:
Su primer paso en la optimización de yolo/resnet es una limpiezaMigración de modelos. Debe convertir su modelo de PyTorch o TensorFlow entrenado en el formato ONNX (Open Neural Network Exchange). Este formato actúa como un puente universal a la plataforma Ascend.
Conversión de modelo a ONNX:
Puede exportar un modelo PyTorch utilizando un script de Python simple. Este script rastrea las operaciones de su modelo y las guarda en un solo. OnnxArchivo.
# Use torch.onnx.export para convertir su modelo Torch. onnx.export (en inglés) Modelo, # tu modelo PyTorch Sample_input, # un tensor de entrada de muestra "Model. onnx", # nombre de archivo de salida Opset_version = 17, # la versión ONNX a utilizar Input_names =['input'], Output_names =['output'] )
Después de exportar, debe usar una herramienta comoOnnx-simplificadorPara limpiar el gráfico. Los usuarios de TensorFlow a veces se enfrentan a desafíos de migración. Los problemas comunes incluyen:
- Nombres de operador no válidosErrores como
ValueError: '/conv_in/Conv_pad/' no es un nombre de ámbito raíz válidoPuede ocurrir. El uso de herramientas alternativas a menudo resuelve esto cambiando el nombre de los operadores. - Tamaños grandes del tensor: Modelos conTensores de más de 2GBPuede hacer que la conversión falle. Es posible que necesite ajustar la arquitectura de su modelo para manejar esto.
Estos pasos garantizan una migración sin problemas para su modelo.
Adaptación del modelo YOLOv7:
Los modelos modernos de detección de objetos como el modelo yolov7 requieren una atención especial. La arquitectura yolov7 tiene capas únicas. Debe adaptar el modelo yolov7 para la plataforma HiSilicon. Esta adaptación es crucial para la migración del modelo yolov7. El manejo adecuado del modelo yolov7 garantiza una detección de alta precisión. Este proceso prepara el modelo yolov7 para la plataforma Ascend. Su objetivo es una migración exitosa del modelo yolov7 para la detección de objetos basada en el aprendizaje profundo. El modelo yolov7 es una poderosa herramienta de detección de objetos. Esta migración del modelo yolov7 es clave para el rendimiento. El modelo yolov7 ayuda a encontrar cada objeto. La adaptación del modelo yolov7 es parte del proceso de validación.
Análisis de soporte del operador NPU:
Su próximo paso de migración es la validación del operador. Es posible que la NPU de HiSilicon no admita todos los operadores de su modelo. Debe comprobar qué operadores soporta el hardware de Ascend. Este análisis es vital para optimizar yolo/resnet en HiSilicon.Kit de herramientas CANN de HuaweiPara la plataforma Ascend ofrece herramientas para esto.
- ElComprobador de usabilidad del modeloPuede identificar operadores no compatibles en su modelo.
- Muestra cómo se dividirá el modelo entre la NPU y la CPU. Más divisiones pueden dañar el rendimiento.
Este análisis le ayuda a maximizar la eficiencia en hardware de HiSilicon. Si encuentra operadores no compatibles, es posible que necesiteReescribe el gráfico de tu modelo. Esto garantiza que cada parte del modelo se ejecute en el Ascend NPU. Esta migración gráfica mejora el rendimiento y la eficiencia. La descarga completa de NPU en la plataforma Ascend es el objeto principal. Este paso final de migración desbloquea toda la potencia de la plataforma HiSilicon Ascend para sus modelos de detección de objetos. Esto le da a su aplicación yolov7 una mejor eficiencia en HiSilicon y Ascend. El modelo yolov7 ahora puede realizar una detección rápida de cualquier objeto. El rendimiento del modelo yolov7 en Ascend será excelente. El modelo yolov7 ya está listo. El modelo yolov7 proporciona una gran detección. El modelo yolov7 está optimizado. El modelo de yolov7 está completo.
OPTIMIZACIÓN Y RENDIMIENTO DEL NÚCLEO:
Tienes un modelo ONNX limpio. Su próximo paso de migración es convertirlo para la plataforma Ascend. Esta etapa se centra en las ganancias de rendimiento básicas. Utilizará el compilador de Tensor Ascend (ATC) y la cuantificación para desbloquear la máxima eficiencia y eficiencia energética para sus modelos de detección de objetos en el hardware de Hisilicon. Este proceso es esencial paraOptimizar el rendimiento de yolo/resnet.
Conversión modelo del ATC:
Ascend Tensor Compiler (ATC) es su herramienta principal para esta migración. Transforma su modelo ONNX en un. Om (en inglés)Archivo. Este archivo está altamente optimizado para procesadores Ascend. Se ejecuta ATC desde la línea de comandos.
Un comando ATC típico tiene este aspecto:
Atc -- model = yolov7.onnx \ -- Marco = 5 \ -- Output = yolov7 _ bs1 \ -- Input_format = NCHW \ -- Input_shape = "imágenes: 1,3, 640.640" \ -- Soc_version = Ascend310 \ -- Log = información
Los parámetros clave guían la conversión para los procesadores Ascend:
-- Modelo: Especifica su entrada. OnnxArchivo de modelo.-- Marco: Uso5Para un modelo ONNX.-- Salida: Define el nombre de la salida. Om (en inglés)Modelo.-- Soc_version: Dirigen un SOC específico de Hisilicon, comoAscend310. Esto es vital para el rendimiento.-- Input_shape: Establece un tamaño de entrada fijo para el modelo.
Debe proporcionar un fijoForma de entradaPara su modelo. Los modelos para la detección de objetos a veces tienen dimensiones de entrada variables. La herramienta ATC necesita una forma estática para obtener el mejor rendimiento en los procesadores Ascend. Este paso garantiza una migración exitosa y evita errores durante la inferencia en la plataforma Hisilicon.
Cuantificación INT8:
La cuantificación reduce la precisión del modelo de punto flotante de 32 bits (FP32) a entero de 8 bits (INT8). Este cambio mejora drásticamente la velocidad de inferencia y la eficiencia energética. La migración a la precisión INT8 es un paso clave para implementar un modelo YOLOv7 en Hisilicon. Tiene dos opciones principales para esta migración.
| Método | Descripción | Mejor para |
|---|---|---|
| Cuantización posterior al entrenamiento (PTQ) | Aplica la cuantización después de que el modelo ya está entrenado. EsSimple y rápido. | Despliegue rápido donde una pequeña caída de la exactitud es aceptable. |
| Capacitación consciente de la cuantificación (QAT) | Simula la cuantificación durante el proceso de entrenamiento. El modelo aprende a adaptarse a menor precisión. | Escenarios que requieren elLa exactitud más alta posible después de cuantización. |
Para muchos modelos de detección de objetos YOLOv7, PTQ ofrece un excelente equilibrio. PuedeDoble su velocidad de inferenciaY mejorar la eficiencia energética en los procesadores Ascend AI. Esto hace que su aplicación YOLOv7 sea más rápida para la detección en tiempo real de cualquier objeto. La pequeña compensación en la precisión a menudo es aceptable para el gran aumento en el rendimiento y la eficiencia energética en los procesadores Ascend. Esta migración final del modelo prepara su modelo YOLOv7 para la máxima eficiencia en los procesadores Hisilicon Ascend, listo para encontrar cada objeto con velocidad. El rendimiento de detección del modelo YOLOv7 en Ascend será excelente.
TÉCNICAS DE SINTONIZACIÓN AVANZADAS:
Puede aumentar aún más el rendimiento de su modelo con la afinación avanzada. Estas técnicas afinan su modelo YOLOv7 para la plataforma HiSilicon. Le ayudan a lograr la máxima eficiencia y un alto rendimiento para aplicaciones en tiempo real.
Preprocesamiento AIPP:
Puede acelerar su modelo usando AI Pre-Processing (AIPP). AIPP descarga las tareas de preprocesamiento de imágenes de la CPU directamente al hardware Ascend. Este es un paso crucial para una mejor eficiencia energética.
AIPP maneja tareas como:
- Rdimensionamiento de la imagen
- Conversión de espacio de color (por ejemplo, BGR a RGB)
- Resta media y normalización
Este proceso libera su CPU. Permite que los procesadores Ascend manejen toda la tubería de inferencia. Su modelo YOLOv7 logra una inferencia en tiempo real más rápida con una mejor administración de energía. Esto le da a su modelo una eficiencia superior en HiSilicon.
Memoria y Batching:
PropiaMemoriaLa gestión es esencial para un alto rendimiento. Debe configurar su modelo YOLOv7 para utilizar la memoria de manera eficiente en la plataforma Ascend. El batching es una técnica poderosa para esto. Implica el procesamiento de múltiples imágenes en un solo paso de inferencia.
| Tamaño de lote | Rendimiento | Latencia |
|---|---|---|
| Pequeño (por ejemplo, 1) | Inferior | Más rápido por imagen |
| Grande (por ejemplo, 8, 16) | Superior | Más lento por imagen |
Aumentar el tamaño del lote mejora el rendimiento general de su modelo en los procesadores Ascend. Esto conduce a una mejor gestión de la energía y la eficiencia. Debe encontrar el equilibrio adecuado para su modelo YOLOv7 para obtener el mejor rendimiento de detección en tiempo real. Esta optimización es clave paraModelos AI de alto rendimientoEn HiSilicon.
Perfiles de inferencia:
Debe perfilar su modelo para encontrar cuellos de botella de rendimiento. Las herramientas de generación de perfiles le muestran cómo se ejecuta su modelo en los procesadores Ascend AI. Le ayudan a garantizar que cada capa se ejecute en la NPU para obtener la mejor eficiencia energética y administración de energía.
A veces,Ciertas capas en un modelo caen de nuevo a la CPU. Esto sucede cuando los procesadores Ascend no pueden manejar operaciones específicas, como una capa SoftMax o elPost-procesamiento de NMS en un modelo YOLOv7. Este retroceso crea un cuello de botella significativo, ralentizando la inferencia en tiempo real y perjudicando la eficiencia energética. La elaboración de perfiles le ayuda a identificar estos problemas. Muestra si una gran carga de trabajo está cargando la CPU en lugar de utilizar el potente hardware de Ascend. Al analizar los puntos de referencia de rendimiento, puede modificar su modelo para usar operaciones compatibles con NPU. Esto garantiza que la detección de su modelo YOLOv7 se ejecute con la máxima precisión y eficiencia en HiSilicon, desbloqueando un verdadero alto rendimiento y una excelente administración de energía para la inferencia en tiempo real.
Su modelo puede lograr el máximo rendimiento en HiSilicon. Este flujo de trabajo de optimización desbloquea la máxima eficiencia para la plataforma Ascend.
- Exporte su modelo a un gráfico ONNX limpio.
- Convertir el modelo a
. Om (en inglés)Para la plataforma Ascend. - Aplicar INT8 cuantización para una mejor eficiencia.
- Utilice AIPP para descargar el preprocesamiento al hardware de Ascend.
Lista de verificación de validación final📝
- Validación: Confirme su
Soc_versiónCoincide con el hardware HiSilicon de destino.- Validación de aplicacionesAsegúrese de que la forma de entrada de su modelo sea correcta para la plataforma Ascend.
- Validación de aplicaciones: Verifique que todos los operadores de modelo sean compatibles con Ascend NPU.
Seguir este proceso para optimizar yolo/resnet es el camino más confiable para un alto rendimiento y eficiencia en HiSilicon. Esta validación desbloquea toda la potencia de la plataforma Ascend para su hardware HiSilicon.
Preguntas frecuentes
¿Cómo elijo entre PTQ y QAT?
Debe usar Cuantificación posterior al entrenamiento (PTQ) para una implementación rápida. Ofrece un gran impulso de velocidad. Puede usar Quantization-Aware Training (QAT) cuando necesite la mayor precisión posible. QAT requiere volver a entrenar su modelo, pero ofrece mejores resultados y una buena eficiencia energética.
¿Qué pasa si mi modelo tiene operadores no compatibles?
Primero debe identificar a los operadores no compatibles utilizando el kit de herramientas CANN. A continuación, puede intentar reemplazarlos con alternativas compatibles con NPU. Esto garantiza que todo su modelo se ejecute en el hardware de Ascend, que es fundamental para el rendimiento y para lograr la mejor eficiencia energética.
¿Por qué es importante AIPP para mi modelo?
AIPP descarga el preprocesamiento de la imagen de la CPU a la NPU. Esto libera recursos de CPU. Toda su canalización se ejecuta en el hardware de Ascend, lo que reduce la latencia y mejora la eficiencia energética general de su aplicación.
¿Hace elSoc_versión¿El parámetro realmente importa?
Sí, es muy importante. Debe establecer elSoc_versiónPara que coincida con su específicoChip HiSilicon(Por ejemplo,Ascend310). La herramienta ATC utiliza esta información para crear un archivo de modelo que está altamente optimizado para esa arquitectura de hardware exacta.





