Notas de implementación del modelo

Trabajo de implementación del modelo

  1. El modelo entrenado realiza inferencias sobre plataformas de software y hardware específicas.
  2. Código de inferencia optimizado y acelerado para hardware

Plataforma de equipos de entrenamiento:
CPU, GPU, DSP

El significado de la existencia de ONNX

La relación correspondiente entre el modelo y el hardware resulta de la complejidad de adaptación mxn, lo que conduce a problemas como desarrollo complejo y baja eficiencia.

Insertar descripción de la imagen aquí
Utilice una estructura de expresión del modelo para unificar la estructura de salida del marco de capacitación y transformar la complejidad de la implementación del modelo de mxn a m+n.

Insertar descripción de la imagen aquí
La transformación ONNX es un formato de modelo, que es texto, no un programa, y ​​no se puede ejecutar directamente en el dispositivo. Por lo tanto, se requiere una pila de software para cargar el modelo ONNX y permitir una inferencia eficiente en los dispositivos de hardware. Esta pila de software se refiere al marco de inferencia del modelo. Los marcos de inferencia se clasifican en marcos de inferencia de uso general y de desarrollo propio por parte de los proveedores de hardware. La capa inferior del marco de razonamiento de desarrollo propio está bien optimizada y la eficiencia de cálculo del razonamiento es alta, no es universal y no se puede aplicar a otros chips. El marco de razonamiento general es versátil y se puede aplicar a diferentes plataformas de software y hardware, lo que reduce la dificultad del desarrollo y mejora la eficiencia del desarrollo. Los usuarios no necesitan prestar atención al marco subyacente y solo necesitan completar las interfaces correspondientes.
Insertar descripción de la imagen aquíEl proceso de inferencia general: primero use el marco del modelo para entrenar el modelo, luego conviértalo a la estructura del modelo ONNX y luego use el marco de inferencia para ejecutar eficientemente el modelo ONNX en la plataforma de software y hardware.
Insertar descripción de la imagen aquí

ONNX (Intercambio de redes neuronales abiertas)

Un formato de archivo abierto diseñado para el aprendizaje automático y utilizado para almacenar modelos entrenados. Diferentes marcos de formación pueden almacenar modelos en el mismo formato e interactuar entre sí. Está copatrocinado por empresas como Microsoft, Amazon, Facebook e IBM.
Insertar descripción de la imagen aquí

Ejemplo de ONNX

Utilice torch.onnx.exportla exportación del modelo onnx.
Insertar descripción de la imagen aquí
Después de exportar el modelo onnx, ingrese netron.app para visualizar la estructura del modelo.

Insertar descripción de la imagen aquí

Insertar descripción de la imagen aquí
Explicación del parámetro de exportación del modelo ONNX de ResNet
Insertar descripción de la imagen aquí

Ejemplo de inferencia de modelo

Utilice el ejemplo en mmdeploy para aplicar ONNX Runtime para la inferencia del modelo.
Insertar descripción de la imagen aquí
Utilice TensorRT para inferir el modelo ONNX.
Insertar descripción de la imagen aquí

Ajuste de lotes

Al generar ONNX arriba, (1, X, X, esto se puede lograr con el parámetro Dynamic_axes.

Insertar descripción de la imagen aquí
Insertar descripción de la imagen aquí
Modificar en la conversión de formato de datos del modelo TensorRT, la configuración de los parámetros minShapes y maxShapes
Insertar descripción de la imagen aquí

Cuantificar

Además de utilizar Batch para aumentar la velocidad de inferencia del modelo, también puede utilizar la cuantificación para la aceleración. En términos generales, el uso float16no afectará el cambio de precisión del modelo, mientras que int8la precisión del modelo se reducirá ligeramente después de usar el formato de almacenamiento.
Insertar descripción de la imagen aquí

Método cuantitativo

  1. Cuantización post-entrenamiento: Cuantización post-entrenamiento (PTQ)
  2. Cuantización durante el entrenamiento: entrenamiento consciente de la cuantificación (QAT)

Si está utilizando QAT, la conversión de precisión del modelo se implementó durante el proceso de capacitación del modelo y puede usar la conversión de estructura de datos onnx. Si está utilizando PTQ, debe realizar la conversión de precisión en la plataforma informática correspondiente.

Cuantización simétrica: Tomando el intervalo de simetría numérica del modelo y correspondiente a INT8 (-127, 127), se puede obtener un coeficiente de cuantificación (entendido simplemente como un coeficiente proporcional, 127/6), correspondiendo así el valor en FP32 a INT8.
Insertar descripción de la imagen aquí
En TensorRT se llamacalibration
Insertar descripción de la imagen aquí

problema comun

Insertar descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/frighting_ing/article/details/129226248
Recomendado
Clasificación