Risolvi gli errori di Ambarella - Amazon SageMaker

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Risolvi gli errori di Ambarella

SageMaker Neo richiede che i modelli siano impacchettati in un file TAR compresso (). *.tar.gz I dispositivi Ambarella richiedono l'inclusione di file aggiuntivi nel file TAR compresso prima di essere inviato per la compilazione. Includi i seguenti file nel tuo file TAR compresso se vuoi compilare un modello per obiettivi Ambarella con Neo: SageMaker

  • Un modello addestrato che utilizza un framework supportato da Neo SageMaker

  • Un file di configurazione JSON

  • Immagini di calibrazione

Ad esempio, il contenuto del file TAR compresso dovrebbe essere simile all'esempio seguente:

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

La directory è configurata come segue:

  • amba_config.json : file di configurazione

  • calib_data: cartella contenente immagini di calibrazione

  • mobilenet_v1_1.0_0224_frozen.pb: TensorFlow modello salvato come grafico congelato

Per informazioni sui framework supportati da SageMaker Neo, vedi. Framework supportati

Impostazione del file di configurazione

Il file di configurazione fornisce le informazioni richieste dalla toolchain Ambarella per compilare il modello. Il file di configurazione deve essere salvato come file JSON e il nome del file deve terminare con *config.json. Nel grafico seguente viene mostrato il contenuto del file di configurazione.

Chiave Descrizione Esempio

inputs

Dizionario che mappa i livelli di input agli attributi.

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

"data"

Nome del livello di input. Nota: "data" è un esempio del nome che puoi usare per etichettare il livello di input.

"data"

shape

Descrive la forma dell'input per il modello. Questo segue le stesse convenzioni utilizzate da Neo. SageMaker

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

filepath

Percorso relativo alla directory contenente le immagini di calibrazione. Possono essere file binari o di immagine come JPG o PNG.

"filepath": "calib_data/"

colorformat

Formato di colore previsto dal modello. Questo verrà utilizzato durante la conversione delle immagini in file binari. Valori supportati: [RGB, BGR]. Il valore predefinito è RGB.

"colorformat":"RGB"

mean

Valore medio da sottrarre dall'input. Può essere un valore singolo o un elenco di valori. Quando la media viene fornita come elenco, il numero di voci deve corrispondere alla dimensione del canale dell'input.

"mean":128.0

scale

Valore di scala da utilizzare per normalizzare l'input. Può essere un valore singolo o un elenco di valori. Quando la scala viene fornita come elenco, il numero di voci deve corrispondere alla dimensione del canale dell'input.

"scale": 255.0

Di seguito viene illustrato un esempio di file di configurazione:

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

Immagini di calibrazione

Quantizza il modello addestrato fornendo immagini di calibrazione. La quantizzazione del modello migliora le prestazioni del motore CVFlow su un System on a Chip (SoC) Ambarella. La toolchain Ambarella utilizza le immagini di calibrazione per determinare come quantizzare ogni livello del modello per ottenere prestazioni e precisione ottimali. Ogni livello è quantizzato indipendentemente nei formati INT8 o INT16. Il modello finale ha un mix di livelli INT8 e INT16 dopo la quantizzazione.

Quante immagini dovresti usare?

Consigliamo di includere tra 100 e 200 immagini rappresentative dei tipi di scene che il modello dovrebbe gestire. Il tempo di compilazione del modello aumenta linearmente in base al numero di immagini di calibrazione nel file di input.

Quali sono i formati di immagine consigliati?

Le immagini di calibrazione possono essere in formato binario non elaborato o in formati di immagine come JPG e PNG.

La cartella di calibrazione può contenere una combinazione di immagini e file binari. Se la cartella di calibrazione contiene sia immagini che file binari, la toolchain converte prima le immagini in file binari. Una volta completata la conversione, utilizza i file binari appena generati insieme ai file binari originariamente presenti nella cartella.

Posso prima convertire le immagini in formato binario?

Sì. Puoi convertire le immagini in formato binario con pacchetti open source come OpenCV o PIL. Ritaglia e ridimensiona le immagini in modo che soddisfino il livello di input del modello addestrato.

Media e scala

Puoi specificare le opzioni di pre-elaborazione della media e della scala nella toolchain Amberalla. Queste operazioni sono integrate nella rete e vengono applicate durante l'inferenza su ciascun input. Non fornire dati elaborati se specifichi la media o la scala. Più specificamente, non fornire dati da cui hai sottratto la media o a cui hai applicato la scala.

Controlla il log di compilazione.

Per informazioni sul controllo del log di compilazione per i dispositivi Ambarella, consulta Controlla il log di compilazione..