Objekterkennungshyperparameter - Amazon SageMaker

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Objekterkennungshyperparameter

In der CreateTrainingJob-Anforderung geben Sie den Trainingsalgorithmus an, den Sie verwenden möchten. Sie können auch algorithmusspezifische Hyperparameter angeben, die zur Unterstützung der Schätzung der Parameter des Modells aus einem Trainingsdatensatz verwendet werden. In der folgenden Tabelle sind die Hyperparameter aufgeführt, die von Amazon SageMaker für das Training des Objekterkennungsalgorithmus bereitgestellt werden. Weitere Informationen zur Funktionsweise der Objekterkennung finden Sie unter So funktioniert die Objekterkennung.

Name des Parameters Beschreibung
num_classes

die Anzahl der Ausgabeklassen. Dieser Parameter definiert die Dimensionen der Netzwerkausgabe und ist in der Regel auf die Anzahl der Klassen im Datensatz festgelegt.

Erforderlich

Gültige Werte: positive Ganzzahl

num_training_samples

Die Anzahl der Trainingsbeispiele im Eingabedatensatz.

Anmerkung

Wenn es keine Übereinstimmung zwischen diesem Wert und der Anzahl der Beispiele im Trainingsdatensatz gibt, dann ist das Verhalten des lr_scheduler_step-Parameters nicht definiert und die verteilte Trainingsgenauigkeit kann beeinträchtigt sein.

Erforderlich

Gültige Werte: positive Ganzzahl

base_network

Die Basisnetzwerkarchitektur, die verwendet werden soll.

Optional

Gültige Werte: "vgg-16" oder "resnet-50"

Standardwert: "vgg-16"

early_stopping

Mit True verwenden Sie die Logik zum frühzeitigen Beenden während des Trainings. Mit False wird die Logik nicht verwendet.

Optional

Gültige Werte: True oder False.

Standardwert: False

early_stopping_min_epochs

Die Mindestanzahl der Epochen, die ausgeführt werden müssen, bevor die Logik zum frühzeitigen Beenden aufgerufen werden kann. Sie wird nur verwendet, wenn early_stopping = True.

Optional

Gültige Werte: positive Ganzzahl

Standardwert: 10

early_stopping_patience

Die Anzahl der abzuwartenden Epochen, bevor das Training endet, wenn keine Verbesserung, wie vom early_stopping_tolerance-Hyperparameter definiert, in der entsprechenden Metrik erzielt wird. Sie wird nur verwendet, wenn early_stopping = True.

Optional

Gültige Werte: positive Ganzzahl

Standardwert: 5

early_stopping_tolerance

Der Toleranzwert, der für die relative Verbesserung in validation:mAP, die durchschnittliche Präzision (Mean Average Precision, mAP), überschritten werden muss, um ein frühzeitiges Beenden zu vermeiden. Wenn das Verhältnis der Änderung in der mAP dividiert durch die vorherige beste mAP kleiner als der festgelegte early_stopping_tolerance-Wert ist, betrachtet der Prozess zum frühzeitigen Beenden die Verbesserung als null. Sie wird nur verwendet, wenn early_stopping = True.

Optional

Gültige Werte: 0 ≤ Float ≤ 1

Standardwert: 0.0

image_shape

Die Bildgröße für Eingabebilder. Wir skalieren das Eingangsbild auf ein quadratisches Bild mit dieser Größe neu. Wir empfehlen die Verwendung von 300 und 512, um eine bessere Leistung zu erzielen.

Optional

Gültige Werte: positive Ganzzahl ≥300

Standard: 300

epochs

Die Anzahl der Trainingsepochen.

Optional

Gültige Werte: positive Ganzzahl

Standard: 30

freeze_layer_pattern

Der reguläre Ausdruck (Regex) für einfrierende Layer im Basisnetzwerk. Beispiel: Wenn wir freeze_layer_pattern = "^(conv1_|conv2_).*" festlegen, werden alle Layer mit einem Namen, der "conv1_" oder "conv2_" enthält, eingefroren. Dies bedeutet, dass die Gewichtungen für diese Layer während des Trainings nicht aktualisiert werden. Die Layer-Namen sind in den Netzwerksymboldateien vgg16-symbol.json und resnet-50-symbol.json enthalten. Das Einfrieren eines Layers bedeutet, dass seine Gewichtungen nicht geändert werden können. Dies kann dazu führen, dass die Trainingszeit erheblich sinkt, allerdings bei leichten Einbußen bei der Genauigkeit. Diese Technik wird häufig beim Transferlernen verwendet, wobei die unteren Layers im Basisnetzwerk nicht neu trainiert werden müssen.

Optional

Gültige Werte: Zeichenfolge

Standard: Keine Layer eingefroren.

kv_store

Der Synchronisierungsmodus der Gewichtungsaktualisierungen, der für das verteilte Training verwendet wird. Die Gewichtungen können entweder synchron oder asynchron über mehrere Maschinen hinweg aktualisiert werden. Synchrone Aktualisierungen bieten in der Regel eine bessere Genauigkeit als asynchrone Aktualisierungen, können aber langsamer sein. Weitere Details finden Sie im MXNet-Tutorial Distributed Training.

Anmerkung

Dieser Parameter gilt nicht für das Einzel-Maschinen-Training.

Optional

Gültige Werte: 'dist_sync' oder 'dist_async'.

  • 'dist_sync': Die Verläufe werden nach jedem Stapel mit allen Workern synchronisiert. Mit 'dist_sync' ist mit Stapelgröße jetzt die auf den einzelnen Maschinen verwendete Stapelgröße gemeint. Wenn es also n Maschinen gibt und wir Stapelgröße b verwenden, dann verhält sich dist_sync wie ein Einzelcomputer mit der Stapelgröße n * b.

  • 'dist_async': Führt asynchrone Aktualisierungen aus. Die Gewichtungen werden immer dann aktualisiert, wenn Verläufe von einer beliebigen Maschine empfangen werden und die Gewichtungsaktualisierungen atomar sind. Allerdings ist die Reihenfolge nicht garantiert.

Standardeinstellung: –

label_width

Die Bezeichnungsbreite des Force Padding, die zum Synchronisieren der Trainings- und Validierungsdaten verwendet werden soll. Beispiel: Wenn ein Bild in den Daten maximal 10 Objekte enthält und die Anmerkung der einzelnen Objekte mit 5 Zahlen angegeben wird, [class_id, left, top, width, height], dann sollte label_width nicht kleiner als (10*5+Header-Informationslänge) sein. Die Header-Informationslänge beträgt in der Regel 2. Wir empfehlen die Verwendung einer etwas größeren label_width für das Training, z. B. 60 für dieses Beispiel.

Optional

Gültige Werte: Positive Ganzzahl, die groß genug ist, um die größte Anmerkungsinformationslänge in den Daten aufzunehmen.

Standard: 350

learning_rate

Die anfängliche Lernrate.

Optional

Gültige Werte: Gleitkommazahl. in (0, 1]

Standard: 0.001

lr_scheduler_factor

Das Verhältnis zur Reduzierung der Lernrate. Verwendet in Verbindung mit dem Parameter lr_scheduler_step, der mit lr_new = lr_old * lr_scheduler_factor definiert wird.

Optional

Gültige Werte: Gleitkommazahl. in (0, 1)

Standard: 0.1

lr_scheduler_step

Die Epochen für das Reduzieren der Lernrate. Die Lernrate wird um lr_scheduler_factor in Epochen reduziert, die in einer durch Komma getrennten Zeichenfolge aufgeführt werden: "epoch1, epoch2, ...". Wenn beispielsweise der Wert auf "10, 20" und der lr_scheduler_factor auf 1/2 festgelegt ist, wird die Lernrate nach der 10. Epoche halbiert und nach der 20. Epoche nochmals halbiert.

Optional

Gültige Werte: Zeichenfolge

Standard: leere Zeichenfolge

mini_batch_size

Die Batch-Größe für das Training. In einer Multi-GPU-Umgebung auf einer einzelnen Maschine verarbeitet jede GPU mini_batch_size/num_gpu-Trainingsbeispiele. Für Trainings auf mehreren Maschinen im dist_sync-Modus ist die tatsächliche Stapelgröße mini_batch_size * der Anzahl der Maschinen. Eine große mini_batch_size beschleunigt in der Regel das Training, kann jedoch zu Speicherplatzproblemen führen. Die Speichernutzung steht im Zusammenhang mit der mini_batch_size-, – image_shapeund base_network-Architektur. Beispiel: Auf einer p3.2xlarge-Instance beträgt die größte mini_batch_size, ohne dass ein Fehler wegen fehlendem Speicherplatz auftritt, 32, wobei base_network auf "resnet-50" und image_shape auf 300 festgelegt ist. Mit derselben Instance können Sie 64 als mini_batch_size mit dem Basisnetzwerk vgg-16 und einem image_shape-Wert von 300 verwenden.

Optional

Gültige Werte: positive Ganzzahl

Standard: 32

momentum

Der Impulsfaktor für sgd. Wird für andere Optimierer ignoriert.

Optional

Gültige Werte: Gleitkommazahl. in (0, 1]

Standard: 0.9

nms_threshold

Der nicht maximale Unterdrückungsgrenzwert.

Optional

Gültige Werte: Gleitkommazahl. in (0, 1]

Standard: 0.45

optimizer

Die Optimierer-Typen. Weitere Informationen zu Optimiererwerten finden Sie unter MXNet-API.

Optional

Gültige Werte: ['sgd', 'adam', 'rmsprop', 'adadelta']

Standard: "sgd"

overlap_threshold

Die Schwellenwert für die Auswertungsüberlappung.

Optional

Gültige Werte: Gleitkommazahl. in (0, 1]

Standard: 0.5

use_pretrained_model

Gibt an, ob ein vortrainiertes Modell für das Training verwendet werden soll. Wenn dieser Wert auf 1 festgelegt ist, wird das vorgeschulte Modell mit der entsprechenden Architektur geladen und für das Training verwendet. Andernfalls wird das Netzwerk von Grund auf neu trainiert.

Optional

Gültige Werte: 0 oder 1

Standard: 1

weight_decay

Der Weight-Decay-Koeffizient für sgd und rmsprop. Wird für andere Optimierer ignoriert.

Optional

Gültige Werte: Gleitkommazahl. in (0, 1)

Standard: 0.0005