

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.

# Bildklassifizierung - MXNet
<a name="image-classification"></a>

Der SageMaker Amazon-Bildklassifizierungsalgorithmus ist ein überwachter Lernalgorithmus, der die Klassifizierung mehrerer Labels unterstützt. Ein Bild wird als Eingabe herangezogen und es werden eine oder mehrere Kennzeichnungen ausgegeben, die diesem Bild zugewiesen sind. Er verwendet ein neuronales Faltungsnetzwerk, das von Grund auf trainiert werden kann oder mittels Transfer Learning, wenn keine große Anzahl von Trainings-Images zur Verfügung steht. 

Das empfohlene Eingabeformat für die Amazon SageMaker AI-Bildklassifizierungsalgorithmen ist Apache MXNet [RecordIO](https://mxnet.apache.org/api/faq/recordio). Sie können jedoch auch unpräparierte Bilder im JPEG- oder PNG-Format verwenden. In [dieser Diskussion](https://mxnet.apache.org/api/architecture/note_data_loading) finden Sie einen umfassenden Überblick über die effiziente Datenaufbereitung und das Laden für Machine-Learning-Systeme. 

**Anmerkung**  
Um eine bessere Interoperabilität mit bestehenden Deep-Learning-Frameworks aufrechtzuerhalten, unterscheidet sich dies von den Protobuf-Datenformaten, die üblicherweise von anderen Amazon SageMaker AI-Algorithmen verwendet werden.

Weitere Informationen zu Faltungsnetzwerken finden Sie unter: 
+ [Deep residual learning for image recognition](https://arxiv.org/abs/1512.03385) Kaiming He, et al., 2016 IEEE Conference on Computer Vision and Pattern Recognition
+ [ImageNet Bilddatenbank](http://www.image-net.org/)
+ [Bildklassifizierung mit Gluon-CV und MXNet](https://gluon-cv.mxnet.io/build/examples_classification/index.html)

**Topics**
+ [E/A-Schnittstelle für den Bildklassifikationsalgorithmus](#IC-inputoutput)
+ [EC2-Instance-Empfehlung für den Bildklassifikationsalgorithmus](#IC-instances)
+ [Beispiel-Notebooks für die Bildklassifizierung](#IC-sample-notebooks)
+ [So funktioniert Bildklassifizierung](IC-HowItWorks.md)
+ [Bildklassifizierungs-Hyperparameter](IC-Hyperparameter.md)
+ [Optimieren eines Bildklassifizierungsmodells](IC-tuning.md)

## E/A-Schnittstelle für den Bildklassifikationsalgorithmus
<a name="IC-inputoutput"></a>

Der SageMaker AI Image Classification-Algorithmus unterstützt sowohl die Inhaltstypen RecordIO (`application/x-recordio`) als auch image (`image/png``image/jpeg`, und`application/x-image`) für das Training im Dateimodus und unterstützt den Inhaltstyp RecordIO (`application/x-recordio`) für das Training im Pipe-Modus. Sie können jedoch das Training mithilfe der Bilddateien (`image/png`, `image/jpeg` und `application/x-image`) auch im Pipe-Modus ausführen, ohne RecordIO-Dateien zu erstellen, indem Sie das augmentierte Manifestformat verwenden.

Verteilte Trainings werden für den Dateimodus und den Pipe-Modus unterstützt. Wenn Sie den Inhaltstyp RecordIO im Pipe-Modus verwenden, müssen Sie den `S3DataDistributionType` von `S3DataSource` auf `FullyReplicated` festlegen. Der Algorithmus unterstützt ein vollständig repliziertes Modell, bei dem Ihre Daten auf jeden Computer kopiert werden.

Der Algorithmus unterstützt `image/png`, `image/jpeg` und `application/x-image` für Inferenzen.

### Trainieren mit dem RecordIO-Format
<a name="IC-recordio-training"></a>

Wenn Sie das RecordIO-Format für Trainings verwenden, geben Sie sowohl den – `train`als auch den und `validation`-Kanal als Werte für den `InputDataConfig`-Parameter der [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html)-Anforderung an. Geben Sie eine RecordIO-Datei (`.rec`) im `train`-Kanal und eine RecordIO-Datei im `validation`-Kanal an. Legen Sie den Inhaltstyp für beide Kanäle auf `application/x-recordio` fest. 

### Trainieren mit dem Bildformat
<a name="IC-image-training"></a>

Wenn Sie das Image-Format für Trainings verwenden, geben Sie `train`-, `validation`-, – `train_lst`und `validation_lst`-Kanäle als Werte für den `InputDataConfig`-Parameter der [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html)-Anforderung an. Geben Sie die einzelnen Bilddaten (`.jpg`- oder `.png`-Dateien) für die Kanäle `train` und `validation` an. Geben Sie eine `.lst`-Datei im – `train_lst`und im `validation_lst`-Kanal an. Legen Sie den Inhaltstyp für alle vier Kanäle auf `application/x-image` fest. 

**Anmerkung**  
SageMaker KI liest die Trainings- und Validierungsdaten getrennt von verschiedenen Kanälen, sodass Sie die Trainings- und Validierungsdaten in verschiedenen Ordnern speichern müssen.

Eine `.lst`-Datei ist eine tabulatorgetrennte Datei mit drei Spalten, die eine Liste mit Bilddateien enthält. Die erste Spalte gibt den Bildindex an, die zweite Spalte gibt den Klassenbezeichnungsindex für das Bild an und die dritte Spalte gibt den relativen Pfad der Bilddatei an. Der Bildindex in der ersten Spalte muss über alle Bilder hinweg eindeutig sein. Die Klassenbezeichnungsindizes sind aufeinanderfolgend nummeriert und die Nummerierung sollte mit 0 beginnen. Beispiel: 0 für die Klasse "cat", 1 für die Klasse "dog" und so weiter für zusätzliche Klassen. 

 Im Folgenden wird ein Beispiel für eine `.lst`-Datei dargestellt: 

```
5      1   your_image_directory/train_img_dog1.jpg
1000   0   your_image_directory/train_img_cat1.jpg
22     1   your_image_directory/train_img_dog2.jpg
```

Wenn beispielsweise Ihre Trainings-Imageer unter `s3://<your_bucket>/train/class_dog`, `s3://<your_bucket>/train/class_cat` usw. gespeichert sind, geben Sie den Pfad für Ihren `train`-Kanal als `s3://<your_bucket>/train` an, das oberste Verzeichnis für Ihre Daten. Geben Sie in der `.lst`-Datei den relativen Pfad für eine einzelne Datei mit dem Namen `train_image_dog1.jpg` im `class_dog`-Klassenverzeichnis als `class_dog/train_image_dog1.jpg` an. Sie können auch all Ihre Bilddateien in einem Unterverzeichnis innerhalb des `train`-Verzeichnisses speichern. In diesem Fall verwenden Sie dieses Unterverzeichnis für den relativen Pfad. Beispiel, `s3://<your_bucket>/train/your_image_directory`. 

### Trainieren mit dem erweiterten Manifest-Image-Format
<a name="IC-augmented-manifest-training"></a>

Im erweiterten Manifestformat können Sie das Training mit den Bilddateien im Pipe-Modus vornehmen, ohne RecordIO-Dateien erstellen zu müssen. Sie müssen sowohl den train- als auch den und validation-Kanal als Werte für den `InputDataConfig`-Parameter der [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html)-Anforderung angeben. Beim Verwenden dieses Formats muss eine S3-Manifestdatei generiert werden, die die Liste der Bilder und der entsprechenden Anmerkungen enthält. Das Manifestdateiformat sollte im [JSON Lines](http://jsonlines.org/)-Format vorliegen, bei dem jede Zeile ein Muster darstellt. Die Bilder werden mithilfe des `'source-ref'`-Tags, das auf den S3-Speicherort der Bilder zeigt, angegeben. Die Anmerkungen werden unter dem Parameterwert `"AttributeNames"` bereitgestellt, wie in der Anforderung [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html) angegeben. Es können auch zusätzliche Metadaten unter dem `metadata`-Tag enthalten sein. Diese werden jedoch vom Algorithmus ignoriert. Im folgenden Beispiel sind die `"AttributeNames"` in der Liste der Bild- und Anmerkungsreferenzen `["source-ref", "class"]` enthalten. Der entsprechende Bezeichnungswert ist `"0"` für das erste Bild und `“1”` für das zweite Bild:

```
{"source-ref":"s3://image/filename1.jpg", "class":"0"}
{"source-ref":"s3://image/filename2.jpg", "class":"1", "class-metadata": {"class-name": "cat", "type" : "groundtruth/image-classification"}}
```

Die Reihenfolge `"AttributeNames"` der Eingabedateien spielt beim Training des ImageClassification Algorithmus eine Rolle. Er akzeptiert Daten, die in einer bestimmten Reihenfolge übergeben werden. Dabei kommt `image` zuerst, gefolgt von `label`. Die "AttributeNames" in diesem Beispiel werden also `"source-ref"` zuerst mit angegeben, gefolgt von`"class"`. Wenn Sie den ImageClassification Algorithmus mit Augmented Manifest verwenden, muss der Wert des `RecordWrapperType` Parameters sein`"RecordIO"`.

Multi-Label-Training wird auch durch die Angabe eines JSON-Arrays von Werten unterstützt. Der `num_classes`-Hyperparameter muss so eingestellt werden, dass er der Gesamtzahl der Klassen entspricht. Es gibt zwei gültige Beschriftungsformate: multi-hot und class-id. 

Im Multi-Hot-Format ist jede Beschriftung ein Multi-Hot-codierter Vektor aller Klassen, wobei jede Klasse den Wert 0 oder 1 annimmt. Im folgenden Beispiel werden drei Klassen beschrieben. Das erste Bild ist mit den Klassen 0 und 2 beschriftet, während das zweite Bild nur mit Klasse 2 beschriftet ist: 

```
{"image-ref": "s3://amzn-s3-demo-bucket/sample01/image1.jpg", "class": "[1, 0, 1]"}
{"image-ref": "s3://amzn-s3-demo-bucket/sample02/image2.jpg", "class": "[0, 0, 1]"}
```

Im Klassen-ID-Format ist jede Beschriftung eine Liste der Klassen-IDs aus [0, `num_classes`), die für den Datenpunkt gelten. Das vorherige Beispiel würde stattdessen wie folgt aussehen:

```
{"image-ref": "s3://amzn-s3-demo-bucket/sample01/image1.jpg", "class": "[0, 2]"}
{"image-ref": "s3://amzn-s3-demo-bucket/sample02/image2.jpg", "class": "[2]"}
```

Das Multi-Hot-Format ist die Standardeinstellung, kann aber im Inhaltstyp mit dem folgenden `label-format` Parameter explizit festgelegt werden: `"application/x-recordio; label-format=multi-hot".` Das Klassen-ID-Format, das das Format ist, von dem ausgegeben wird GroundTruth, muss explizit festgelegt werden: `"application/x-recordio; label-format=class-id".`

Weitere Informationen zu erweiterten Manifestdateien finden Sie unter [Erweiterte Manifestdateien für Trainingsjobs](augmented-manifest.md).

### Inkrementelles Training
<a name="IC-incremental-training"></a>

Sie können das Training eines neuen Modells auch mit den Artefakten eines Modells beginnen, das Sie zuvor mit KI trainiert haben. SageMaker Inkrementelles Training spart Trainingszeit, wenn Sie ein neues Modell mit denselben oder ähnlichen Daten trainieren möchten. SageMaker KI-Bildklassifizierungsmodelle können nur mit einem anderen integrierten, in SageMaker KI trainierten Bildklassifizierungsmodell erstellt werden.

Um ein vortrainiertes Modell zu verwenden, geben Sie in der [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html)-Anforderung den `ChannelName` als "model" im `InputDataConfig`-Parameter an. Legen Sie den `ContentType` für den Modellkanal auf `application/x-sagemaker-model` fest. Die Eingabehyperparameter des neuen und des vortrainierten Modells, die Sie in den Modellkanal hochladen, müssen die gleichen Einstellungen für die Eingabeparameter `num_layers`, `image_shape` und `num_classes` besitzen. Diese Parameter definieren die Netzwerkarchitektur. Verwenden Sie für die vortrainierte Modelldatei die komprimierten Modellartefakte (im Format .tar.gz), die von AI ausgegeben werden. SageMaker Sie können entweder RecordIO- oder Bildformate als Eingabedaten verwenden.

### Inferenz mit dem Bildklassifizierungsalgorithmus
<a name="IC-inference"></a>

Die generierten Modelle können zum Inferieren gehostet werden und unterstützen kodierte – `.jpg`und `.png`-Bildformate als – `image/png, image/jpeg`und `application/x-image`-Inhaltstyp. Die Größe des Eingabebilds wird automatisch geändert. Bei Stapeltransformationen werden für alle Klassen die Wahrscheinlichkeitswerte ausgegeben, im JSON-Format oder im [JSON Lines-Textformat](http://jsonlines.org/) kodiert. Das Bildklassifizierungsmodell verarbeitet ein Bild pro Anforderung und gibt daher nur eine Zeile im JSON- oder JSON Lines-Format aus. Nachfolgend finden Sie ein Beispiel für eine Antwort im JSON Lines-Format:

```
accept: application/jsonlines

 {"prediction": [prob_0, prob_1, prob_2, prob_3, ...]}
```

Weitere Details zu Training und Inferenz finden Sie in den Beispiel-Notebook-Instances zur Bildklassifizierung, auf die in der Einführung verwiesen wurde.

## EC2-Instance-Empfehlung für den Bildklassifikationsalgorithmus
<a name="IC-instances"></a>

Für die Bildklassifizierung unterstützen wir P2-, P3-, G4dn- und G5-Instances. Wir empfehlen die Verwendung von GPU-Instances mit mehr Arbeitsspeicher zum Training mit großen Stapelgrößen. Sie können den Algorithmus auch in Multi-GPU- und Multi-Maschinen-Umgebungen für verteiltes Training ausführen. Sowohl CPU-Instances (wie C4) als auch GPU-Instances (P2, P3, G4dn oder G5) können für Inferenzen verwendet werden.

## Beispiel-Notebooks für die Bildklassifizierung
<a name="IC-sample-notebooks"></a>

Ein Beispielnotizbuch, das den SageMaker KI-Algorithmus zur Bildklassifizierung verwendet, finden Sie unter [Erstellen und Registrieren eines MXNet Bildklassifizierungsmodells](https://github.com/aws-samples/amazon-sagemaker-pipelines-mxnet-image-classification/blob/main/image-classification-sagemaker-pipelines.ipynb) über Pipelines. SageMaker Anweisungen zum Erstellen und Zugreifen auf Jupyter-Notebook-Instanzen, mit denen Sie das Beispiel in SageMaker KI ausführen können, finden Sie unter. [SageMaker Amazon-Notebook-Instanzen](nbi.md) Nachdem Sie eine Notebook-Instanz erstellt und geöffnet haben, wählen Sie den Tab **SageMaker KI-Beispiele** aus, um eine Liste aller KI-Beispiele zu sehen. SageMaker Die Beispiel-Notebooks für die Bildklassifizierung befinden sich im Abschnitt **Einführung in die Amazon-Algorithmen**. Zum Öffnen eines Notebooks klicken Sie auf die Registerkarte **Use (Verwenden)** und wählen Sie **Create copy (Kopie erstellen)** aus.

# So funktioniert Bildklassifizierung
<a name="IC-HowItWorks"></a>

Der Bildklassifikationsalgorithmus nimmt ein Bild als Eingabe und klassifiziert es in eine der Ausgabekategorien. Deep Learning hat die Domain der Bildklassifizierung revolutioniert und großartige Leistungen erzielt. Verschiedene Deep-Learning-Netzwerke wie [ResNet[DenseNet](https://arxiv.org/abs/1608.06993)](https://arxiv.org/abs/1512.03385),, [Inception](https://arxiv.org/pdf/1409.4842.pdf) usw. wurden so entwickelt, dass sie bei der Bildklassifizierung sehr genau sind. Gleichzeitig wurden Anstrengungen unternommen, markierte Bilddaten zu sammeln, die für das Training dieser Netzwerke unerlässlich sind. [ImageNet](https://www.image-net.org/)ist ein so großer Datensatz mit mehr als 11 Millionen Bildern mit etwa 11.000 Kategorien. Sobald ein Netzwerk mit ImageNet Daten trainiert wurde, kann es durch einfache Neuanpassung oder Feinabstimmung auch zur Generalisierung mit anderen Datensätzen verwendet werden. Bei diesem Transfer-Learning-Ansatz wird ein Netzwerk mit Gewichten initialisiert (in diesem Beispiel mit Gewichten trainiert ImageNet), die später für eine Bildklassifizierungsaufgabe in einem anderen Datensatz verfeinert werden können. 

Die Bildklassifizierung in Amazon SageMaker AI kann in zwei Modi ausgeführt werden: vollständiges Training und Transferlernen. Im vollständigen Trainingsmodus wird das Netzwerk mit zufälligen Gewichtungen initialisiert und mit Benutzerdaten von Grund auf neu trainiert. Im Transferlernmodus wird das Netzwerk mit vortrainierten Gewichtungen initialisiert und nur die oberste vollständig verbundene Schicht wird mit zufälligen Gewichtungen initialisiert. Dann wird das gesamte Netzwerk mit neuen Daten optimiert. In diesem Modus ist auch das Trainieren mit einem kleineren Datenset möglich. Der Grund hierfür ist, dass das Netzwerk bereits trainiert ist und deshalb in Situationen ohne ausreichende Trainingsdaten verwendet werden kann.

# Bildklassifizierungs-Hyperparameter
<a name="IC-Hyperparameter"></a>

Hyperparameter sind Parameter, die festgelegt werden, bevor ein Machine-Learning-Modell mit dem Lernen beginnt. Die folgenden Hyperparameter werden vom integrierten Bildklassifizierungsalgorithmus von Amazon SageMaker AI unterstützt. Informationen [Optimieren eines Bildklassifizierungsmodells](IC-tuning.md) zum Optimieren von Hyperparametern für die Bildklassifizierung finden Sie unter. 


| Name des Parameters | Description | 
| --- | --- | 
| num\$1classes | Anzahl der Ausgabeklassen. Dieser Parameter definiert die Dimensionen der Netzwerkausgabe und ist in der Regel auf die Anzahl der Klassen im Datensatz festgelegt. Neben der Mehrklassen-Klassifizierung wird auch die Multi-Label-Klassifizierung unterstützt. Weitere Informationen zur Arbeit mit Multi-Label-Klassifizierung mit erweiterten Manifestdateien finden Sie unter [E/A-Schnittstelle für den Bildklassifikationsalgorithmus](image-classification.md#IC-inputoutput).  **Erforderlich** Gültige Werte: positive Ganzzahl  | 
| num\$1training\$1samples | Anzahl der Trainingsbeispiele im Eingabedatensatz. Wenn keine Übereinstimmung zwischen diesem Wert und der Anzahl der Beispiele im Trainingssatz 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  | 
| augmentation\$1type |  Datenaugmentationstyp. Die Eingabebilder können auf verschiedene Weise erweitert werden, wie unten angegeben. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/IC-Hyperparameter.html) **Optional**  Gültige Werte: `crop`, `crop_color` oder `crop_color_transform`. Standardwert: keiner  | 
| beta\$11 | Der beta1-Wert für `adam`, d. h. exponentielle Zerfallsrate für die ersten Momentschätzungen. **Optional**  Gültige Werte: Gleitkommazahl. Bereich [0, 1]. Standardwert: 0.9 | 
| beta\$12 | Der beta2-Wert für `adam`, d. h. exponentielle Zerfallsrate für die zweiten Momentschätzungen. **Optional**  Gültige Werte: Gleitkommazahl. Bereich [0, 1]. Standardwert: 0.999 | 
| checkpoint\$1frequency | Zeitraum für das Speichern der Modellparameter (in Anzahl von Epochen). Beachten Sie, dass alle Prüfpunktdateien als Teil der endgültigen Modelldatei „model.tar.gz“ gespeichert und in S3 an den angegebenen Modellspeicherort hochgeladen werden. Dadurch wird die Größe der Modelldatei proportional zur Anzahl der während des Trainings gespeicherten Prüfpunkte erhöht. **Optional** Gültige Werte: positive Ganzzahl, die nicht größer ist als `epochs`. Standardwert: keiner (speichern Sie den Prüfpunkt in der Epoche mit der besten Validierungsgenauigkeit). | 
| early\$1stopping | 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\$1stopping\$1min\$1epochs | 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\$1stopping\$1patience | Die Anzahl der abzuwartenden Epochen, bevor das Training endet, wenn keine Verbesserung in der entsprechenden Metrik erzielt wird. Sie wird nur verwendet, wenn `early_stopping` = `True`. **Optional** Gültige Werte: positive Ganzzahl Standardwert: 5 | 
| early\$1stopping\$1tolerance | Relative Toleranz zur Messung von Verbesserungen der Genauigkeitsvalidierungsmetrik. Wenn das Verhältnis der Genauigkeitsverbesserung dividiert durch die vorherige beste Genauigkeit kleiner als der `early_stopping_tolerance`-Wert ist, betrachtet der Prozess zum frühzeitigen Beenden die Verbesserung als nicht vorhanden. Sie wird nur verwendet, wenn `early_stopping` = `True`. **Optional** Gültige Werte: 0 ≤ Float ≤ 1 Standardwert: 0.0 | 
| epochs | Anzahl der Trainingsepochen. **Optional** Gültige Werte: positive Ganzzahl Standardwert: 30 | 
| eps | Die epsilon-Wert für `adam` und `rmsprop`. Er ist in der Regel auf einen kleinen Wert festgelegt, um eine Division durch 0 zu verhindern. **Optional** Gültige Werte: Gleitkommazahl. Bereich [0, 1]. Standardwert: 1e-8 | 
| gamma | Der gamma-Wert für `rmsprop`, der Zerfallsfaktor des gleitenden Durchschnitts des Verlaufs im Quadrat. **Optional** Gültige Werte: Gleitkommazahl. Bereich [0, 1]. Standardwert: 0.9 | 
| image\$1shape | Die Abmessungen des Eingabebildes, was der Größe der Eingabeschicht des Netzwerks entspricht. Das Format ist definiert als "`num_channels`, Höhe, Breite". Die Bildabmessung kann auf einen beliebigen Wert festgelegt werden, da das Netzwerk unterschiedliche Abmessungen der Eingabe verarbeiten kann. Es kann jedoch zu Speicherplatzbeschränkungen kommen, wenn eine größere Bildgröße verwendet wird. Vortrainierte Modelle können nur eine feste Bildgröße von 224 x 224 verwenden. Typische Bildabmessungen für die Bildklassifizierung sind "3.224.224". Das ist dem Datensatz ähnlich. ImageNet  Beim Training schlägt das Training fehl, wenn ein Eingabebild in einer beliebigen Dimension kleiner als dieser Parameter ist. Wenn ein Bild größer ist, wird ein Teil des Bilds beschnitten, wobei der beschnittene Bereich durch diesen Parameter festgelegt wird. Wenn der Hyperparameter gesetzt `augmentation_type` ist, erfolgt der Zuschnitt nach dem Zufallsprinzip; andernfalls erfolgt der Bildausschnitt in der Mitte.  Bei der Inferenz wird die Größe der Eingabebilder an die Größe angepasst, `image_shape` die beim Training verwendet wurde. Das Seitenverhältnis wird nicht beibehalten, und Bilder werden nicht beschnitten. **Optional** Gültige Werte: Zeichenfolge Standardwert: '3.224.224' | 
| kv\$1store |  Synchronisierungsmodus der Gewichtungsaktualisierungen während des verteilten Trainings. Die Gewichtungsaktualisierungen 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 Informationen finden Sie unter Distributed Training in MXNet . Dieser Parameter gilt nicht für das Einzel-Maschinen-Training. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/IC-Hyperparameter.html) **Optional** Gültige Werte: `dist_sync` oder `dist_async`. Standardwert: keiner  | 
| learning\$1rate | Anfängliche Lernrate. **Optional** Gültige Werte: Gleitkommazahl. Bereich [0, 1]. Standardwert: 0.1 | 
| lr\$1scheduler\$1factor | Das Verhältnis zur Reduzierung der Lernrate, verwendet in Verbindung mit dem `lr_scheduler_step`-Parameter, definiert als `lr_new` = `lr_old` \$1 `lr_scheduler_factor`. **Optional** Gültige Werte: Gleitkommazahl. Bereich [0, 1]. Standardwert: 0.1 | 
| lr\$1scheduler\$1step | Die Epochen für das Reduzieren der Lernrate. Wie im `lr_scheduler_factor`-Parameter erklärt, wird die Lernrate bei diesen Epochen um `lr_scheduler_factor` reduziert. Wenn beispielsweise der Wert auf "10, 20" festgelegt ist, wird die Lernrate nach der 10. Epoche um `lr_scheduler_factor` reduziert und nach der 20. Epoche nochmals um `lr_scheduler_factor`. Die Epochen werden durch "," getrennt. **Optional** Gültige Werte: Zeichenfolge Standardwert: keiner | 
| mini\$1batch\$1size | Die Batch-Größe für das Training. In einer Multi-GPU-Umgebung auf einer einzelnen Maschine verarbeitet jede GPU `mini_batch_size`/num\$1gpu-Trainingsbeispiele. Beim Trainieren auf mehreren Maschinen im dist\$1sync-Modus ist die tatsächliche Stapelgröße `mini_batch_size` \$1 Anzahl der Maschinen. Weitere Informationen finden Sie in den MXNet Dokumenten. **Optional** Gültige Werte: positive Ganzzahl Standardwert: 32 | 
| momentum | Das Moment für `sgd` und `nag`, ignoriert für andere Optimierer. **Optional** Gültige Werte: Gleitkommazahl. Bereich [0, 1]. Standardwert: 0.9 | 
| multi\$1label |  Flag für die Multi-Label-Klassifizierung, wobei jedem Beispiel mehrere Bezeichnungen zugewiesen werden können. Durchschnittliche Genauigkeit für alle protokollierten Klassen. **Optional** Gültige Werte: 0 oder 1 Standardwert: 0  | 
| num\$1layers | Anzahl der Schichten für das Netzwerk. Für Daten mit einer großen Bildgröße (z. B. 224x224 ImageNet) empfehlen wir, die Anzahl der Ebenen aus dem Satz [18, 34, 50, 101, 152, 200] auszuwählen. Für Daten mit kleiner Bildgröße (z. B. 28x28 wie CIFAR) wird empfohlen, die Anzahl der Schichten aus dem Satz [20, 32, 44, 56, 110] auszuwählen. Die Anzahl der Schichten in jedem Satz basiert auf dem ResNet paper. Für Transferlernen definiert die Anzahl der Schichten die Architektur des Basisnetzwerks und kann somit nur aus dem Satz [18, 34, 50, 101, 152, 200] ausgewählt werden. **Optional** Gültige Werte: positive Ganzzahl in [18, 34, 50, 101, 152, 200] oder [20, 32, 44, 56, 110]. Standardwert: 152 | 
| optimizer | Der Optimierer-Typ. Weitere Informationen zu den Parametern für die Optimierer finden Sie in MXNet der API. **Optional** Gültige Werte: Entweder `sgd`, `adam`, `rmsprop` oder `nag`. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/IC-Hyperparameter.html) Standardwert: `sgd` | 
| precision\$1dtype | Die Genauigkeit der Gewichtungen, die für das Training verwendet werden. Der Algorithmus kann entweder einfache Präzision (`float32`) oder halbe Präzision (`float16`) für die Gewichtungen verwenden. Die Verwendung halber Präzision für Gewichtungen führt zu reduzierten Speicherverbrauch. **Optional** Gültige Werte: `float32` oder `float16`. Standardwert: `float32` | 
| resize | Die Anzahl der Pixel auf der kürzesten Seite eines Bilds nach der Größenänderung für das Training. Wenn der Parameter nicht festgelegt ist, werden die Trainingsdaten ohne Änderung der Größe verwendet. Der Parameter sollte größer sein als die Breiten- und die Höhenkomponente von `image_shape`, um Trainingsversagen zu verhindern. **Erforderlich** bei Verwendung von Bildinhaltstypen **Optional** bei Verwendung des Inhaltstyps RecordIO Gültige Werte: positive Ganzzahl Standardwert: keiner  | 
| top\$1k | Meldet die Top-K-Genauigkeit während des Trainings. Dieser Parameter muss größer als 1 sein, da die Top-1-Trainingsgenauigkeit dasselbe ist wie die reguläre Trainingsgenauigkeit, die bereits gemeldet wurde. **Optional** Gültige Werte: positive Ganzzahl größer als 1. Standardwert: keiner | 
| use\$1pretrained\$1model | Kennzeichen, das angibt, ob ein vortrainiertes Modell für das Training verwendet werden soll. Wenn dieser Wert auf 1 festgelegt ist, wird das vortrainierte Modell mit der entsprechenden Anzahl von Schichten geladen und für das Training verwendet. Nur die obere, vollständig verbundene Schichtwird mit zufälligen Gewichtungen neu initialisiert. Andernfalls wird das Netzwerk von Grund auf neu trainiert. **Optional** Gültige Werte: 0 oder 1 Standardwert: 0 | 
| use\$1weighted\$1loss |  Flag, das angibt, ob der gewichteten Kreuz-Entropie-Verlust für die Multi-Label-Klassifizierung verwendet werden soll (nur verwendet, wenn `multi_label` = 1), wobei die Gewichtungen basierend auf der Verteilung von Klassen berechnet werden. **Optional** Gültige Werte: 0 oder 1 Standardwert: 0  | 
| weight\$1decay | Der Zerfall der Gewichtung des Koeffizienten für `sgd` und `nag`, ignoriert für andere Optimierer. **Optional** Gültige Werte: Gleitkommazahl. Bereich [0, 1]. Standardwert: 0.0001 | 

# Optimieren eines Bildklassifizierungsmodells
<a name="IC-tuning"></a>

Die *automatische Modelloptimierung*, auch bekannt als Hyperparameteroptimierung, sucht die beste Version eines Modells, indem viele Aufträge ausgeführt werden, die einen Bereich von Hyperparametern in Ihrem Datensatz testen. Sie wählen die optimierbaren Hyperparameter, eine Reihe von Werten für jeden Parameter und eine objektive Metrik aus. Sie wählen die objektive Metrik aus den Metriken aus, die der Algorithmus berechnet. Die automatische Modelloptimierung durchsucht die ausgewählten Hyperparameter nach der Kombination von Werten, die das Modell ergeben, das die objektive Metrik optimiert.

Mehr Informationen über die Modelloptimierung finden Sie unter [Automatische Modelloptimierung mit KI SageMaker](automatic-model-tuning.md).

## Vom Bildklassifikationsalgorithmus berechnete Metriken
<a name="IC-metrics"></a>

Der Bildklassifizierungsalgorithmus ist ein überwachter Algorithmus. Er meldet eine Genauigkeitsmetrik, die während des Trainings berechnet wird. Wählen Sie diese Metrik beim Optimieren des Modells als objektive Metrik aus.


| Metrikname | Description | Optimierungsrichtung | 
| --- | --- | --- | 
| validation:accuracy | Das Verhältnis der Anzahl von richtigen Prognosen zur Gesamtzahl der erstellten Voraussagen. | Maximieren | 

## Optimierbare Bildklassifizierungs-Hyperparameter
<a name="IC-tunable-hyperparameters"></a>

Optimieren Sie ein Bildklassifizierungsmodell mit den folgenden Hyperparameter. Die Hyperparameter mit den größten Auswirkungen auf die objektiven Metriken der Bildklassifizierung sind: `mini_batch_size`, `learning_rate` und `optimizer`. Optimieren Sie die auf den Optimierer bezogenen Hyperparameter, wie `momentum`, `weight_decay`, `beta_1`, `beta_2`, `eps` und `gamma`, basierend auf dem ausgewählten `optimizer`. Verwenden Sie z. B. `beta_1` und `beta_2` nur, wenn `adam` der `optimizer` ist.

Weitere Informationen dazu, welche Hyperparameter für die einzelnen Optimierer verwendet werden, finden Sie unter [Bildklassifizierungs-Hyperparameter](IC-Hyperparameter.md).


| Name des Parameters | Parametertyp | Empfohlene Bereiche | 
| --- | --- | --- | 
| beta\$11 | ContinuousParameterRanges | MinValue: 1e-6,: 0,999 MaxValue | 
| beta\$12 | ContinuousParameterRanges | MinValue: 1e-6,: 0,999 MaxValue | 
| eps | ContinuousParameterRanges | MinValue: 1e-8,: 1,0 MaxValue | 
| gamma | ContinuousParameterRanges | MinValue: 1e-8,: 0,99 MaxValue | 
| learning\$1rate | ContinuousParameterRanges | MinValue: 1e-6,: 0,5 MaxValue | 
| mini\$1batch\$1size | IntegerParameterRanges | MinValue: 8, MaxValue: 512 | 
| momentum | ContinuousParameterRanges | MinValue: 0,0, MaxValue: 0,99 | 
| optimizer | CategoricalParameterRanges | ['sgd', ‘adam’, ‘rmsprop’, 'nag'] | 
| weight\$1decay | ContinuousParameterRanges | MinValue: 0,0, MaxValue: 0,99 | 