Solución de errores de Ambarella - Amazon SageMaker

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Solución de errores de Ambarella

SageMaker Neo requiere que los modelos estén empaquetados en un archivo TAR comprimido (*.tar.gz). Los dispositivos Ambarella requieren que se incluyan archivos adicionales en el archivo TAR comprimido antes de enviarlo para su compilación. Incluya los siguientes archivos en su archivo TAR comprimido si desea compilar un modelo para los objetivos de Ambarella con SageMaker Neo:

  • Un modelo entrenado que utiliza un marco compatible con Neo SageMaker

  • Un archivo de configuración JSON

  • Imágenes de calibración

Por ejemplo, el contenido del archivo TAR comprimido tendrá un aspecto semejante al del siguiente ejemplo:

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

El directorio está configurado de la siguiente manera:

  • amba_config.json: archivo de configuración

  • calib_data: carpeta que contiene imágenes de calibración

  • mobilenet_v1_1.0_0224_frozen.pb: TensorFlow modelo guardado como un gráfico congelado

Para obtener información sobre los marcos compatibles con SageMaker Neo, consulteMarcos admitidos.

Configuración del archivo de configuración

El archivo de configuración proporciona la información requerida por la cadena de herramientas de Ambarella para compilar el modelo. El archivo de configuración debe guardarse como un archivo JSON y el nombre del archivo debe terminar por *config.json. A continuación se muestra el contenido del archivo de configuración.

Clave Descripción Ejemplo

inputs

El diccionario mapea las capas de entrada al atributo.

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

"data"

Nombre de capa de entrada. Nota: "data" es un ejemplo del nombre que puede utilizar para etiquetar la capa de entrada.

"data"

Forma

Describe la forma de la entrada al modelo. Esto sigue las mismas convenciones que usa SageMaker Neo.

"shape": "1,3,224,224"

filepath

Ruta relativa al directorio que contiene las imágenes de calibración. Pueden ser archivos binarios o de imagen, como JPG o PNG.

"filepath": "calib_data/"

colorformat

Formato de color que espera el modelo. Se utilizará al convertir las imágenes a archivos binarios. Valores admitidos: [RGB, BGR]. El valor predeterminado es RGB.

"colorformat":"RGB"

mean

Valor medio que debe restarse de la entrada. Puede ser un valor único o una lista de valores. Cuando la media se proporciona en forma de lista, el número de entradas debe coincidir con la dimensión del canal de la entrada.

"mean":128.0

scale

Valor de escala que se utilizará para normalizar la entrada. Puede ser un valor único o una lista de valores. Cuando la escala se proporciona en forma de lista, el número de entradas debe coincidir con la dimensión del canal de la entrada.

"scale": 255.0

A continuación se muestra un ejemplo de archivo de configuración:

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

Imágenes de calibración

Cuantifique su modelo entrenado proporcionando imágenes de calibración. La cuantificación del modelo mejora el rendimiento del motor CVflow en un sistema Ambarella en un chip (SoC). La cadena de herramientas de Ambarella utiliza las imágenes de calibración para determinar cómo se debe cuantificar cada capa del modelo para lograr un rendimiento y una precisión óptimos. Cada capa se cuantifica de forma independiente en los formatos INT8 o INT16. El modelo final tiene una mezcla de capas INT8 e INT16 después de la cuantificación.

¿Cuántas imágenes debería usar?

Se recomienda incluir entre 100 y 200 imágenes que sean representativas de los tipos de escenas que se espera que maneje el modelo. El tiempo de compilación del modelo aumenta linealmente en función del número de imágenes de calibración del archivo de entrada.

¿Cuáles son los formatos de imagen recomendados?

Las imágenes de calibración pueden estar en formato binario sin procesar o en formatos de imagen como JPG y PNG.

La carpeta de calibración puede contener una mezcla de imágenes y archivos binarios. Si la carpeta de calibración contiene imágenes y archivos binarios, la cadena de herramientas convierte primero las imágenes en archivos binarios. Una vez finalizada la conversión, utiliza los archivos binarios recién generados junto con los archivos binarios que estaban originalmente en la carpeta.

¿Puedo convertir primero las imágenes a formato binario?

Sí. Puede convertir las imágenes al formato binario con paquetes de código abierto como OpenCV o PIL. Recorta y cambia el tamaño de las imágenes para que se adapten a la capa de entrada del modelo formado.

Media y escala

Puede especificar las opciones de preprocesamiento de la media y la escala en la cadena de herramientas de Amberalla. Estas operaciones están integradas en la red y se aplican durante la inferencia en cada entrada. No proporcione datos procesados si especifica la media o la escala. Más específicamente, no proporcione datos de los que haya restado la media o a los que haya aplicado la escala.

Compruebe su registro de compilación

Para obtener información sobre cómo comprobar el registro de compilación de los dispositivos Ambarella, consulte Compruebe su registro de compilación.