Iperparametri di classificazione delle immagini - 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à.

Iperparametri di classificazione delle immagini

Gli iperparametri sono parametri impostati prima che un modello di machine learning inizi l'apprendimento. I seguenti iperparametri sono supportati dall'algoritmo di classificazione delle immagini SageMaker integrato di Amazon. Per informazioni sull'ottimizzazione della classificazione delle immagini, consulta Ottimizzazione di un modello di classificazione delle immagini.

Nome parametro Descrizione
num_classes

Numero di classi di output. Questo parametro definisce le dimensioni dell'output di rete e in genere viene impostato sul numero di classi nel set di dati.

Oltre alla classificazione multi-classe, è supportata anche la classificazione multi-etichetta. Fare riferimento Interfaccia di input/output per l'algoritmo di classificazione immagine per i dettagli su come utilizzare la classificazione multi-etichetta con i file manifest aumentati.

Campo obbligatorio

Valori validi: numeri interi positivi

num_training_samples

Numero di esempi di training nel set di dati di input.

Se non c'è corrispondenza tra questo valore e il numero di esempi nel set di dati di training, il comportamento del parametro lr_scheduler_step non è definito e ciò può avere conseguenze sull'accuratezza del training distribuito.

Campo obbligatorio

Valori validi: numeri interi positivi

augmentation_type

Tipo di ottimizzazione dei dati. Le immagini di input possono essere ottimizzate in diversi modi, come specificato di seguito.

  • crop: ritaglia l'immagine casualmente e capovolgi l'immagine orizzontalmente

  • crop_color: Oltre al "ritaglio", tre valori casuali nell'intervallo [-36, 36], [-50, 50] e [-50, 50] vengono aggiunti ai canali corrispondenti Tonalità-Saturazione-Luminosità rispettivamente

  • crop_color_transform: Oltre a crop_color, le trasformazioni casuali, tra cui le variazioni della rotazione, dell'inclinazione e del rapporto delle proporzioni vengono applicate all'immagine. L'angolo massimo di rotazione è pari a 10 gradi, il rapporto massimo di inclinazione è 0,1 e il massimo rapporto di modifica delle proporzioni è 0,25.

Opzionale

Valori validi: crop, crop_color o crop_color_transform.

Valore predefinito: nessuno

beta_1

Il beta1 per adam, ossia il tasso di decadimento esponenziale per le stime del primo momento.

Opzionale

Valori validi: float. Intervallo in [0, 1].

Valore predefinito: 0,9

beta_2

Il beta2 per adam, ossia il tasso di decadimento esponenziale per le stime del secondo momento.

Opzionale

Valori validi: float. Intervallo in [0, 1].

Valore predefinito: 0,999

checkpoint_frequency

Periodo per archiviare i parametri del modello (in numero di epoche (Unix epochs)).

Notare che tutti i file checkpoint vengono salvati come parte del file di modello finale "model.tar.gz" e caricati su S3 nella posizione del modello specificata. Ciò aumenta la dimensione del file del modello proporzionalmente al numero di checkpoint salvati durante il training.

Opzionale

Valori validi: numeri interi positivi non superiori a epochs.

Valore predefinito: nessuno (salva checkpoint all'epoca (Unix epoch) che ha la migliore accuratezza di convalida).

early_stopping

True per utilizzare la logica di arresto precoce durante il training. False per ignorarla.

Opzionale

Valori validi: True o False

Valore predefinito: False

early_stopping_min_epochs

Il numero minimo di epoche (Unix epochs) che devono essere eseguite prima di poter richiamare la logica di arresto precoce. Usato solo quando early_stopping = True.

Opzionale

Valori validi: numeri interi positivi

Valore predefinito: 10

early_stopping_patience

Il numero di epoche (Unix epochs) da aspettare prima di terminare il training se non verranno eseguiti dei miglioramenti nel parametro rilevante. Usato solo quando early_stopping = True.

Opzionale

Valori validi: numeri interi positivi

Valore predefinito: 5

early_stopping_tolerance

Tolleranza relativa per misurare un miglioramento nel parametro di convalida accuratezza. Se il rapporto tra il miglioramento nell'accuratezza, diviso per l'accuratezza migliore precedente è inferiore al valore early_stopping_tolerance impostato, l'arresto precoce considera che non c'è miglioramento. Usato solo quando early_stopping = True.

Opzionale

Valori validi: 0 ≤ float ≤ 1

Valore predefinito: 0.0

epochs

Numero di epoche (Unix epochs) di training.

Opzionale

Valori validi: numeri interi positivi

Valore predefinito: 30

eps

L'epsilon per adam e rmsprop. Di solito è impostata su un piccolo valore per evitare la divisione per 0.

Opzionale

Valori validi: float. Intervallo in [0, 1].

Valore predefinito: 1e-8

gamma

Il gamma per rmsprop, il fattore di decadimento per la media mobile del gradiente al quadrato.

Opzionale

Valori validi: float. Intervallo in [0, 1].

Valore predefinito: 0,9

image_shape

Le dimensioni dell'immagine di input, che corrispondono alle dimensioni del livello di input della rete. Il formato è definito come "num_channels, altezza, larghezza". La dimensione dell'immagine può avere qualsiasi valore in quanto la rete può gestire varie dimensioni di input. Tuttavia, possono essere presenti limitazioni di memoria nel caso in cui vengano utilizzate maggiori dimensioni dell'immagine . I modelli preaddestrati possono utilizzare solo immagini con dimensioni fisse 224 x 224. Le dimensioni tipiche delle immagini per la classificazione delle immagini sono "3.224.224". È simile al ImageNet set di dati.

Per quanto riguarda l'addestramento, se un'immagine di input è più piccola di questo parametro in qualsiasi dimensione, l'addestramento ha un esito negativo. Se un'immagine è più grande, una parte dell'immagine viene tagliata, con l'area tagliata specificata da questo parametro. Se l'iperparametro augmentation_type è impostato, viene eseguito un ritaglio casuale; in caso contrario, viene eseguito un ritaglio centrale.

In caso di inferenza, le immagini di input vengono ridimensionate a image_shape che era stato utilizzato durante l'addestramento. Il rapporto di formato non è mantenuto e le immagini non vengono ritagliate.

Opzionale

Valori validi: stringa

Valore di default: "3.224.224"

kv_store

Modalità di sincronizzazione di aggiornamento del peso durante il training distribuito. Gli aggiornamenti del peso possono essere eseguiti in modo sincrono o asincrono sulle macchine. Gli aggiornamenti sincroni in genere offrono accuratezza migliore rispetto agli aggiornamenti asincroni ma possono essere più lenti. Consulta il training distribuito in MXNet per ulteriori dettagli.

Questo parametro non è applicabile a training a singola macchina.

  • dist_sync: i gradienti vengono sincronizzati dopo ogni batch con tutti i lavoratori. Con dist_sync, le dimensioni del batch ora corrispondono alle dimensioni del batch utilizzate su ogni macchina. Pertanto, se non ci sono macchine n e utilizziamo dimensioni del batch b, quindi dist_sync si comporta come batch locale con dimensioni del batch n*b

  • dist_async: esegue aggiornamenti asincroni. I pesi vengono aggiornati quando i gradienti sono ricevuti da qualsiasi computer e gli aggiornamenti dei pesi sono atomici. Tuttavia, l'ordine non è garantito.

Opzionale

Valori validi: dist_sync o dist_async

Valore predefinito: nessuno

learning_rate

Velocità di apprendimento iniziale.

Opzionale

Valori validi: float. Intervallo in [0, 1].

Valore predefinito: 0,1

lr_scheduler_factor

Il rapporto per ridurre il tasso di apprendimento utilizzato in combinazione con il parametro lr_scheduler_step, definito come lr_new = lr_old * lr_scheduler_factor.

Opzionale

Valori validi: float. Intervallo in [0, 1].

Valore predefinito: 0,1

lr_scheduler_step

Le epoche (Unix epochs) in base alle quali ridurre la velocità di apprendimento. Come spiegato nel parametro lr_scheduler_factor, il tasso di apprendimento viene ridotto in base a lr_scheduler_factor con queste epoche (Unix epochs). Ad esempio, se il valore è impostato su "10, 20", il tasso di apprendimento viene ridotto di lr_scheduler_factor dopo la decimo epoca (Unix epoch) e nuovamente di lr_scheduler_factor dopo la ventesima epoca (Unix epoch). Le epoche (Unix epochs) sono delimitate da ",".

Opzionale

Valori validi: stringa

Valore predefinito: nessuno

mini_batch_size

Le dimensioni del batch per il training. In una impostazione a singola macchina a più GPU, ogni GPU gestisce esempi di training mini_batch_size/num_gpu. Per il training a più macchine in modalità dist_sync, le dimensioni effettive del batch corrispondono a mini_batch_size per il numero di macchine. Consulta MXNet docs per ulteriori dettagli.

Opzionale

Valori validi: numeri interi positivi

Valore predefinito: 32

momentum

Il momento per sgd e nag, ignorato per altri ottimizzatori.

Opzionale

Valori validi: float. Intervallo in [0, 1].

Valore predefinito: 0,9

multi_label

Flag da utilizzare per la classificazione multi-etichetta, in cui ogni esempio può essere assegnato a più etichette. Viene registrata l'accuratezza media per tutte le classi.

Opzionale

Valori validi: 0 o 1

Valore predefinito: 0

num_layers

Numero di livelli per la rete. Per dati con immagini di grandi dimensioni (ad esempio, 224x224, simili ImageNet), suggeriamo di selezionare il numero di livelli dal set [18, 34, 50, 101, 152, 200]. Per i dati con immagini di piccole dimensioni (ad esempio, 28 x 28 - come CIFAR), ti consigliamo di selezionare il numero di livelli dal set [20, 32, 44, 56, 110]. Il numero di strati in ogni set dipende dal tipo di ResNet carta. Per il trasferimento dell'apprendimento, il numero di livelli definisce l'architettura della rete di base e, di conseguenza, può essere selezionata solo dal set [18, 34, 50, 101, 152, 200].

Opzionale

Valori validi: numeri interi positivi in [18, 34, 50, 101, 152, 200] o [20, 32, 44, 56, 110]

Valore predefinito: 152

optimizer

Il tipo di ottimizzazione. Per ulteriori dettagli sui parametri per gli ottimizzatori, consulta l'API di MXNet.

Opzionale

Valori validi: uno tra sgd, adam, rmsprop o nag.

Valore predefinito: sgd

precision_dtype

La precisione dei pesi usati per il training. L'algoritmo può utilizzare la precisione singola (float32) o metà precisione (float16) per i pesi. L'utilizzo d metà precisione per i pesi comporta una riduzione del consumo di memoria.

Opzionale

Valori validi: float32 o float16

Valore predefinito: float32

resize

Numero di pixel sul lato più corto di un'immagine dopo averla ridimensionata per l'allenamento. Se il parametro non è impostato, i dati di training vengono utilizzati come tali senza ridimensionamento. Il parametro dovrebbe essere maggiore dei componenti relativi alla larghezza e all'altezza di image_shape per evitare errori nell'addestramento.

Obbligatorio quando si utilizzano tipi di contenuto immagine

Facoltativo quando si utilizza il tipo di contenuto RecordIO

Valori validi: numeri interi positivi

Valore predefinito: nessuno

top_k

Segnala l'accuratezza top-k durante il training. Questo parametro deve essere maggiore di 1, poiché l'accuratezza top-1 di training corrisponde all'accuratezza regolare di training che è già stata segnalata.

Opzionale

Valori validi: numeri interi positivi superiori a 1.

Valore predefinito: nessuno

use_pretrained_model

Appone un flag per utilizzare un modello precedentemente sottoposto a training per il training. Se impostato su 1, il modello preformato con il numero corrispondente di livelli viene caricato e utilizzato per il training. Solo il primo livello FC viene inizializzato nuovamente con pesi casuali. Altrimenti, la rete viene preparata da zero.

Opzionale

Valori validi: 0 o 1

Valore predefinito: 0

use_weighted_loss

Contrassegna per utilizzare la perdita di entropia incrociata ponderata per la classificazione multi-etichetta (utilizzata solo quando multi_label = 1), dove i pesi sono calcolati in base alla distribuzione delle classi.

Opzionale

Valori validi: 0 o 1

Valore predefinito: 0

weight_decay

Il coefficiente di decadimento peso per sgd e nag, ignorato per altri ottimizzatori.

Opzionale

Valori validi: float. Intervallo in [0, 1].

Valore predefinito: 0.0001