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 configurazionecalib_data
: cartella contenente immagini di calibrazionemobilenet_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. |
|
"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
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..