Iperparametri di rilevamento oggetti - Amazon SageMaker AI

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 rilevamento oggetti

Nella richiesta CreateTrainingJob, specifichi l'algoritmo di addestramento che desideri utilizzare. È inoltre possibile specificare iperparametri specifici dell'algoritmo utilizzati per stimare i parametri del modello da un set di dati di addestramento. La tabella seguente elenca gli iperparametri forniti da Amazon SageMaker AI per addestrare l'algoritmo di rilevamento degli oggetti. Per ulteriori informazioni sul funzionamento del rilevamento oggetti, consulta Come funziona il rilevamento oggetti.

Nome parametro Descrizione
num_classes

Il numero delle 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.

Campo obbligatorio

Valori validi: numeri interi positivi

num_training_samples

Il numero degli esempi di addestramento nel set di dati di input.

Nota

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

Campo obbligatorio

Valori validi: numeri interi positivi

base_network

L'architettura di rete di base da usare.

Opzionale

Valori validi: 'vgg-16' o 'resnet-50'

Valore predefinito: 'vgg-16'

early_stopping

True per utilizzare la logica di arresto precoce durante l’addestramento. 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 l’addestramento se non verranno eseguiti miglioramenti, come definito dall'iperparametro early_stopping_tolerance, nel parametro rilevante. Usato solo quando early_stopping = True.

Opzionale

Valori validi: numeri interi positivi

Valore predefinito: 5

early_stopping_tolerance

Il valore di tolleranza che il miglioramento relativo in validation:mAP (mAP, Mean Average Precision) deve superare per evitare l'arresto precoce. Se il rapporto tra la modifica della mAP divisa per il mAP migliore precedente è inferiore al valore impostato per early_stopping_tolerance, l'arresto precoce considera che non vi è alcun miglioramento. Usato solo quando early_stopping = True.

Opzionale

Valori validi: 0 ≤ float ≤ 1

Valore predefinito: 0.0

image_shape

La dimensione dell'immagine per le immagini di input. Ridimensioniamo l'immagine di input su un'immagine quadrata con queste dimensioni. Ti consigliamo di usare 300 e 512 per le prestazioni ottimali.

Opzionale

Valori validi: numeri interi positivi ≥300

Impostazione predefinita: 300

epochs

Il numero di epoche (Unix epochs) di addestramento.

Opzionale

Valori validi: numeri interi positivi

Impostazione predefinita: 30

freeze_layer_pattern

L'espressione regolare (regex) per i il congelamento dei livelli nella rete di base. Ad esempio, se impostiamo freeze_layer_pattern = "^(conv1_|conv2_).*", tutti i livelli con un nome che contiene "conv1_" o "conv2_" sono congelati, il che significa che i pesi per questi livelli non vengono aggiornati durante l’addestramento. I nomi dei livelli sono reperibili nei file dei simboli di rete vgg16-symbol.json e resnet-50-symbol.json. Congelare un layer significa che il suo peso non può essere ulteriormente modificato. Questo può ridurre in modo significativo la durata dell’addestramento in cambio di una modesta perdita di precisione. Questa tecnica viene utilizzata in genere nel trasferimento dell'apprendimento in cui non è necessario addestrare nuovamente i livelli inferiori nella rete di base.

Opzionale

Valori validi: stringa

Valore predefinito: nessun livello congelato.

kv_store

La modalità di sincronizzazione di aggiornamento del peso usata durante l’addestramento distribuito. I pesi possono essere aggiornati 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 MXNet tutorial Distributed Training per i dettagli.

Nota

Questo parametro non è applicabile all’addestramento a singola macchina.

Opzionale

Valori validi: 'dist_sync' o 'dist_async'

  • 'dist_sync': i gradienti vengono sincronizzati dopo ogni batch con tutti i worker. 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, dist_sync si comporta come una singola macchina con le 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.

Valore predefinito: -

label_width

La larghezza dell'etichetta di riempimento forzato utilizzata per la sincronizzazione tra i dati di addestramento e di convalida. Ad esempio, se un'immagine nei dati contiene al massimo 10 oggetti e l'annotazione di ciascun oggetto è specificata con 5 numeri, [class_id, left, top, width, height], label_width non deve essere inferiore a (10*5 + lunghezza delle informazioni dell'intestazione). La lunghezza delle informazioni dell'intestazione è in genere 2. Ti consigliamo di utilizzare un label_width leggermente più grande per l’addestramento, ad esempio 60 in questo esempio.

Opzionale

Valori validi: un numero intero positivo abbastanza grande da contenere la lunghezza massima delle informazioni di annotazione nei dati.

Impostazione predefinita: 350

learning_rate

La velocità di apprendimento iniziale.

Opzionale

Valori validi: float in (0, 1)

Impostazione predefinita: 0.001

lr_scheduler_factor

Il rapporto per ridurre la velocità di apprendimento. Utilizzato in combinazione con il parametro lr_scheduler_step definito come lr_new = lr_old * lr_scheduler_factor.

Opzionale

Valori validi: float in (0, 1)

Impostazione predefinita: 0.1

lr_scheduler_step

Le epoche (Unix epochs) in base alle quali ridurre la velocità di apprendimento. La velocità di apprendimento viene ridotta per il lr_scheduler_factor alle epoche (Unix epochs) elencate in una stringa delimitata da virgole: "epoch1, epoch2,...". Ad esempio, se il valore è impostato su "10, 20" e lr_scheduler_factor è impostato su 1/2, la velocità di apprendimento viene dimezzata dopo la decima epoca (Unix epoch) e nuovamente dimezzata dopo la ventesima epoca (Unix epoch).

Opzionale

Valori validi: stringa

Impostazione predefinita: stringa vuota

mini_batch_size

Le dimensioni del batch per l’addestramento. In una impostazione a singola macchina a più GPU, ogni GPU gestisce esempi di addestramento mini_batch_size/num_gpu. Per l’addestramento a più macchine in modalità dist_sync, le dimensioni effettive del batch corrispondono a mini_batch_size per il numero di macchine. Una grande mini_batch_size di solito comporta un addestramento più veloce, ma può causare problemi di memoria insufficiente. L'utilizzo di memoria è correlato all'architettura mini_batch_size, image_shape e base_network. Ad esempio, su una singola istanza p3.2xlarge, la mini_batch_size più grande senza un errore di memoria insufficiente è 32 con base_network impostato su "resnet-50" e una image_shape di 300. Con la stessa istanza, puoi utilizzare 64 come mini_batch_size con la rete di base vgg-16 e una image_shape di 300.

Opzionale

Valori validi: numeri interi positivi

Impostazione predefinita: 32

momentum

Il momento per sgd. Ignorato per altri ottimizzatori.

Opzionale

Valori validi: float in (0, 1)

Impostazione predefinita: 0.9

nms_threshold

La soglia di soppressione non massima.

Opzionale

Valori validi: float in (0, 1)

Impostazione predefinita: 0.45

optimizer

I tipi di ottimizzazione. Per i dettagli sui valori dell'ottimizzatore, consulta MXNetl'API.

Opzionale

Valori validi: ['sgd', 'adam', 'rmsprop', 'adadelta']

Valore predefinito: 'sgd'

overlap_threshold

La soglia di sovrapposizione della valutazione.

Opzionale

Valori validi: float in (0, 1)

Impostazione predefinita: 0.5

use_pretrained_model

Indica se utilizzare un modello già preparato per l’addestramento. Se impostato su 1, il modello già preparato con l'architettura corrispondente viene caricato e utilizzato per l’addestramento. Altrimenti, la rete viene preparata da zero.

Opzionale

Valori validi: 0 o 1

Impostazione predefinita: 1

weight_decay

Il coefficiente di decadimento del peso per sgd e rmsprop. Ignorato per altri ottimizzatori.

Opzionale

Valori validi: float in (0, 1)

Impostazione predefinita: 0.0005