

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 - TensorFlow
<a name="image-classification-tensorflow"></a>

Der Amazon SageMaker Image Classification — TensorFlow Algorithmus ist ein überwachter Lernalgorithmus, der Transfer-Learning mit vielen vortrainierten Modellen aus dem [TensorFlow Hub](https://tfhub.dev/s?fine-tunable=yes&module-type=image-classification&subtype=module,placeholder&tf-version=tf2) unterstützt. Verwenden Sie Transfer Learning, um eines der verfügbaren vortrainierten Modelle anhand Ihres eigenen Datensatzes zu optimieren, auch wenn eine große Menge an Bilddaten nicht verfügbar ist. Der Bildklassifizierungsalgorithmus verwendet ein Bild als Eingabe und gibt für jede angegebene Klassenbeschriftung eine Wahrscheinlichkeit aus. Trainingsdatensätze müssen aus Bildern im .jpg, .jpeg oder .png Format bestehen. Diese Seite enthält Informationen zu Amazon EC2 EC2-Instance-Empfehlungen und Beispielnotizbücher für Image Classification - TensorFlow.

**Topics**
+ [So verwenden Sie den SageMaker Image Classification — Algorithmus TensorFlow](IC-TF-how-to-use.md)
+ [Eingabe- und Ausgabeschnittstelle für den Algorithmus zur Bildklassifizierung TensorFlow](IC-TF-inputoutput.md)
+ [Amazon EC2 EC2-Instance-Empfehlung für den Image Classification — Algorithmus TensorFlow](#IC-TF-instances)
+ [Bildklassifizierung — TensorFlow Beispiele für Notizbücher](#IC-TF-sample-notebooks)
+ [So TensorFlow funktioniert die Bildklassifizierung](IC-TF-HowItWorks.md)
+ [TensorFlow Hub-Modelle](IC-TF-Models.md)
+ [Bildklassifizierung — TensorFlow Hyperparameter](IC-TF-Hyperparameter.md)
+ [Optimieren Sie ein Modell zur Bildklassifizierung TensorFlow](IC-TF-tuning.md)

# So verwenden Sie den SageMaker Image Classification — Algorithmus TensorFlow
<a name="IC-TF-how-to-use"></a>

Sie können Image Classification TensorFlow als integrierten Algorithmus von Amazon SageMaker AI verwenden. Im folgenden Abschnitt wird beschrieben, wie Sie Image Classification verwenden — TensorFlow mit dem SageMaker AI Python SDK. Informationen zur Verwendung TensorFlow von Image Classification — über die Amazon SageMaker Studio Classic-Benutzeroberfläche — finden Sie unter[SageMaker JumpStart vortrainierte Modelle](studio-jumpstart.md).

Der Image Classification — TensorFlow Algorithmus unterstützt Transfer Learning unter Verwendung aller kompatiblen vortrainierten TensorFlow Hub-Modelle. Eine Liste aller verfügbaren vortrainierten Modelle finden Sie unter [TensorFlow Hub-Modelle](IC-TF-Models.md). Jedes vortrainierte Modell hat ein Unikat `model_id`. Im folgenden Beispiel wird MobileNet V2 1.00 224 (`model_id`:`tensorflow-ic-imagenet-mobilenet-v2-100-224-classification-4`) zur Feinabstimmung eines benutzerdefinierten Datensatzes verwendet. Die vortrainierten Modelle werden alle vorab vom TensorFlow Hub heruntergeladen und in Amazon S3 S3-Buckets gespeichert, sodass Trainingsjobs netzwerkisoliert ausgeführt werden können. Verwenden Sie diese vorgenerierten Modelltrainingsartefakte, um einen AI Estimator zu erstellen. SageMaker 

Rufen Sie zunächst den Docker-Image-URI, den Trainingsskript-URI und den vortrainierten Modell-URI ab. Ändern Sie dann die Hyperparameter nach Bedarf. Sie können ein Python-Wörterbuch mit allen verfügbaren Hyperparametern und ihren Standardwerten mit `hyperparameters.retrieve_default` sehen. Weitere Informationen finden Sie unter [Bildklassifizierung — TensorFlow Hyperparameter](IC-TF-Hyperparameter.md). Verwenden Sie diese Werte, um einen SageMaker AI-Schätzer zu erstellen.

**Anmerkung**  
Die Standard-Hyperparameterwerte sind für verschiedene Modelle unterschiedlich. Bei größeren Modellen ist die Standard-Batch-Größe kleiner und der `train_only_top_layer` Hyperparameter ist auf `"True"` eingestellt.

In diesem Beispiel wird der [https://www.tensorflow.org/datasets/catalog/tf_flowers](https://www.tensorflow.org/datasets/catalog/tf_flowers) Datensatz verwendet, der fünf Klassen von Blumenbildern enthält. Wir haben den Datensatz TensorFlow unter der Apache 2.0-Lizenz vorab heruntergeladen und mit Amazon S3 verfügbar gemacht. Rufen Sie zur Feinabstimmung Ihres Modells an, `.fit` indem Sie den Amazon S3-Speicherort Ihres Trainingsdatensatzes verwenden.

```
from sagemaker import image_uris, model_uris, script_uris, hyperparameters
from sagemaker.estimator import Estimator

model_id, model_version = "tensorflow-ic-imagenet-mobilenet-v2-100-224-classification-4", "*"
training_instance_type = "ml.p3.2xlarge"

# Retrieve the Docker image
train_image_uri = image_uris.retrieve(model_id=model_id,model_version=model_version,image_scope="training",instance_type=training_instance_type,region=None,framework=None)

# Retrieve the training script
train_source_uri = script_uris.retrieve(model_id=model_id, model_version=model_version, script_scope="training")

# Retrieve the pretrained model tarball for transfer learning
train_model_uri = model_uris.retrieve(model_id=model_id, model_version=model_version, model_scope="training")

# Retrieve the default hyper-parameters for fine-tuning the model
hyperparameters = hyperparameters.retrieve_default(model_id=model_id, model_version=model_version)

# [Optional] Override default hyperparameters with custom values
hyperparameters["epochs"] = "5"

# The sample training data is available in the following S3 bucket
training_data_bucket = f"jumpstart-cache-prod-{aws_region}"
training_data_prefix = "training-datasets/tf_flowers/"

training_dataset_s3_path = f"s3://{training_data_bucket}/{training_data_prefix}"

output_bucket = sess.default_bucket()
output_prefix = "jumpstart-example-ic-training"
s3_output_location = f"s3://{output_bucket}/{output_prefix}/output"

# Create SageMaker Estimator instance
tf_ic_estimator = Estimator(
    role=aws_role,
    image_uri=train_image_uri,
    source_dir=train_source_uri,
    model_uri=train_model_uri,
    entry_point="transfer_learning.py",
    instance_count=1,
    instance_type=training_instance_type,
    max_run=360000,
    hyperparameters=hyperparameters,
    output_path=s3_output_location,
)

# Use S3 path of the training data to launch SageMaker TrainingJob
tf_ic_estimator.fit({"training": training_dataset_s3_path}, logs=True)
```

# Eingabe- und Ausgabeschnittstelle für den Algorithmus zur Bildklassifizierung TensorFlow
<a name="IC-TF-inputoutput"></a>

Jedes der unter TensorFlow Hub-Modelle aufgelisteten vortrainierten Modelle kann auf jeden Datensatz mit einer beliebigen Anzahl von Bildklassen abgestimmt werden. Achten Sie darauf, wie Sie Ihre Trainingsdaten für die Eingabe in das Bildklassifizierungsmodell formatieren müssen. TensorFlow 
+ **Eingabeformat für Trainingsdaten:** Ihre Trainingsdaten sollten ein Verzeichnis mit so vielen Unterverzeichnissen wie die Anzahl der Klassen sein. Jedes Unterverzeichnis sollte Bilder, die zu dieser Klasse gehören, im Format .jpg, .jpeg oder .png enthalten.

Es folgt ein Beispiel für eine Eingabeverzeichnisstruktur. Dieser Beispieldatensatz hat zwei Klassen: `roses` und `dandelion`. Die Bilddateien in jedem Klassenordner können einen beliebigen Namen haben. Das Eingabeverzeichnis sollte in einem Amazon-S3-Bucket mit einem Pfad gehostet werden, der dem folgenden ähnelt: `s3://bucket_name/input_directory/`. Beachten Sie, dass das Trailing `/` erforderlich ist.

```
input_directory
    |--roses
        |--abc.jpg
        |--def.jpg
    |--dandelion
        |--ghi.jpg
        |--jkl.jpg
```

Trainierte Modelle geben Beschriftungs-Mapping-Dateien aus, die Klassenordnernamen den Indizes in der Liste der Ausgabeklassenwahrscheinlichkeiten zuordnen. Diese Zuordnung ist in alphabetischer Reihenfolge. Im vorherigen Beispiel hat die Löwenzahnklasse beispielsweise den Index 0 und die Rosenklasse den Index 1. 

Nach dem Training verfügen Sie über ein fein abgestimmtes Modell, das Sie mithilfe von inkrementellem Training weiter trainieren oder zu Inferenzzwecken einsetzen können. Der TensorFlow Bildklassifizierungsalgorithmus fügt dem fein abgestimmten Modell automatisch eine Signatur für die Vor- und Nachbearbeitung hinzu, sodass es Bilder als Eingabe aufnehmen und Klassenwahrscheinlichkeiten zurückgeben kann. Die Datei, die Klassenindizes Klassenbezeichnungen zuordnet, wird zusammen mit den Modellen gespeichert. 

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

Sie können das Training eines neuen Modells mit Artefakten aus einem Modell beginnen, das Sie zuvor mit KI trainiert haben. SageMaker Dieses inkrementelle Training verkürzt die Trainingsdauer, wenn Sie ein neues Modell mit denselben oder ähnlichen Daten trainieren möchten.

**Anmerkung**  
Sie können ein SageMaker TensorFlow Bildklassifizierungsmodell nur mit einem anderen, in SageMaker KI trainierten TensorFlow Image-Classification-Modell auswerten. 

Sie können jeden Datensatz für das inkrementelle Training verwenden, solange der Klassensatz derselbe bleibt. Der inkrementelle Trainingsschritt ähnelt dem Feinabstimmungsschritt, aber anstatt mit einem vortrainierten Modell zu beginnen, beginnen Sie mit einem vorhandenen fein abgestimmten Modell. Ein Beispiel für ein inkrementelles Training mit dem SageMaker TensorFlow KI-Algorithmus [zur SageMaker TensorFlow Bildklassifizierung finden Sie im Beispielnotizbuch Einführung in die Bildklassifizierung](https://github.com/aws/amazon-sagemaker-examples/blob/main/introduction_to_amazon_algorithms/image_classification_tensorflow/Amazon_TensorFlow_Image_Classification.ipynb).

## Inferenz mit dem Algorithmus zur Bildklassifizierung TensorFlow
<a name="IC-TF-inference"></a>

Sie können das fein abgestimmte Modell, das aus Ihrem TensorFlow Bildklassifizierungstraining resultiert, als Inferenz hosten. Jedes Eingabebild für die Inferenz muss sich in `.jpg`, `jpeg` oder `.png`-Format befinden und vom Inhaltstyp `application/x-image` sein. Der TensorFlow Algorithmus zur Bildklassifizierung passt die Größe der Eingabebilder automatisch an. 

Das Ausführen von Inferenzen führt zu Wahrscheinlichkeitswerten, Klassenbezeichnungen für alle Klassen und dem vorhergesagten Label, das dem Klassenindex mit der höchsten Wahrscheinlichkeit entspricht, kodiert im JSON-Format. Das TensorFlow Bildklassifizierungsmodell verarbeitet ein einzelnes Bild pro Anfrage und gibt nur eine Zeile aus. Nachfolgend finden Sie ein Beispiel für eine Antwort im JSON Lines-Format:

```
accept: application/json;verbose

 {"probabilities": [prob_0, prob_1, prob_2, ...],
  "labels":        [label_0, label_1, label_2, ...],
  "predicted_label": predicted_label}
```

Wenn `accept` auf `application/json` gesetzt ist, gibt das Modell nur Wahrscheinlichkeiten aus. Weitere Informationen zum Training und zur Inferenz mit dem TensorFlow Bildklassifizierungsalgorithmus finden Sie im Beispielnotizbuch [Einführung in die Bildklassifizierung](https://github.com/aws/amazon-sagemaker-examples/blob/main/introduction_to_amazon_algorithms/image_classification_tensorflow/Amazon_TensorFlow_Image_Classification.ipynb). SageMaker TensorFlow 

## Amazon EC2 EC2-Instance-Empfehlung für den Image Classification — Algorithmus TensorFlow
<a name="IC-TF-instances"></a>

Der Image Classification — TensorFlow Algorithmus unterstützt alle CPU- und GPU-Instances für das Training, einschließlich:
+ `ml.p2.xlarge`
+ `ml.p2.16xlarge`
+ `ml.p3.2xlarge`
+ `ml.p3.16xlarge`
+ `ml.g4dn.xlarge`
+ `ml.g4dn.16.xlarge`
+ `ml.g5.xlarge`
+ `ml.g5.48xlarge`

Wir empfehlen die Verwendung von GPU-Instances mit mehr Arbeitsspeicher zum Training mit großen Stapelgrößen. Sowohl CPU- (wie M5) als auch GPU-Instances (P2, P3, G4dn oder G5) können für Inferenzen verwendet werden.

## Bildklassifizierung — TensorFlow Beispiele für Notizbücher
<a name="IC-TF-sample-notebooks"></a>

Weitere Informationen zur Verwendung des SageMaker TensorFlow Bildklassifizierungsalgorithmus für Transfer-Learning an einem benutzerdefinierten Datensatz finden Sie im Notizbuch [Einführung in SageMaker TensorFlow — Bildklassifizierung](https://github.com/aws/amazon-sagemaker-examples/blob/main/introduction_to_amazon_algorithms/image_classification_tensorflow/Amazon_TensorFlow_Image_Classification.ipynb).

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 die Registerkarte **SageMaker KI-Beispiele** aus, um eine Liste aller KI-Beispiele anzuzeigen. SageMaker Zum Öffnen eines Notebooks wählen Sie die Registerkarte **Verwenden** und dann **Kopie erstellen** aus.

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

Der TensorFlow Algorithmus zur Bildklassifizierung verwendet ein Bild als Eingabe und klassifiziert es in eines der Ausgabeklassenlabels. Verschiedene Deep-Learning-Netzwerke wie MobileNet, ResNet, Inception und EfficientNet sind bei der Bildklassifizierung sehr genau. Es gibt auch Deep-Learning-Netzwerke, die auf großen Bilddatensätzen trainiert werden ImageNet, z. B. mit über 11 Millionen Bildern und fast 11.000 Klassen. Nachdem ein Netzwerk mit ImageNet Daten trainiert wurde, können Sie das Netzwerk anhand eines Datensatzes mit einem bestimmten Fokus feinabstimmen, um spezifischere Klassifizierungsaufgaben auszuführen. Der Amazon SageMaker Image Classification — TensorFlow Algorithmus unterstützt Transfer Learning auf vielen vortrainierten Modellen, die im TensorFlow Hub verfügbar sind.

Entsprechend der Anzahl der Klassenbezeichnungen in Ihren Trainingsdaten wird dem vortrainierten TensorFlow Hub-Modell Ihrer Wahl eine Klassifizierungsebene hinzugefügt. Die Klassifikationsschicht besteht aus einer Dropout-Schicht, einer dichten Schicht und einer vollständig verbundenen Layer mit 2-Norm-Regularizer, die mit zufälliger Gewichtung initialisiert wird. Das Modell verfügt über Hyperparameter für die Dropout-Rate der Dropout-Schicht und den L2-Regularisierungsfaktor für die dichte Schicht. Anschließend können Sie entweder das gesamte Netzwerk (einschließlich des vortrainierten Modells) oder nur die oberste Klassifikationsebene anhand neuer Trainingsdaten feinabstimmen. Mit dieser Methode des Transfer Learning ist ein Training mit kleineren Datensätzen möglich.

# TensorFlow Hub-Modelle
<a name="IC-TF-Models"></a>

Die folgenden vortrainierten Modelle können für das Transferlernen mit dem TensorFlow Bildklassifizierungsalgorithmus verwendet werden. 

Die folgenden Modelle unterscheiden sich erheblich in Größe, Anzahl der Modellparameter, Trainingszeit und Inferenzlatenz für einen bestimmten Datensatz. Welches Modell am besten für Ihren Anwendungsfall geeignet ist, hängt von der Komplexität Ihres Feinabstimmungsdatensatzes und allen Anforderungen ab, die Sie an Trainingszeit, Inferenzlatenz oder Modellgenauigkeit haben.


| Modellname | `model_id` | Quelle | 
| --- | --- | --- | 
| MobileNet V2 1.00 224 | `tensorflow-ic-imagenet-mobilenet-v2-100-224-classification-4` | [TensorFlow Hub-Verbindung](https://tfhub.dev/google/imagenet/mobilenet_v2_100_224/classification/4) | 
| MobileNet V2 0,75 224 | `tensorflow-ic-imagenet-mobilenet-v2-075-224-classification-4` | [TensorFlow Hub-Verbindung](https://tfhub.dev/google/imagenet/mobilenet_v2_075_224/classification/4) | 
| MobileNet V2 0,50 224 | `tensorflow-ic-imagenet-mobilenet-v2-050-224-classification-4` | [TensorFlow Hub-Verbindung](https://tfhub.dev/google/imagenet/mobilenet_v2_050_224/classification/4) | 
| MobileNet V2 0,35 224 | `tensorflow-ic-imagenet-mobilenet-v2-035-224-classification-4` | [TensorFlow Hub-Verbindung](https://tfhub.dev/google/imagenet/mobilenet_v2_035_224/classification/4) | 
| MobileNet V2 1.40 224 | `tensorflow-ic-imagenet-mobilenet-v2-140-224-classification-4` | [TensorFlow Hub-Verbindung](https://tfhub.dev/google/imagenet/mobilenet_v2_140_224/classification/4) | 
| MobileNet V2 1.30 224 | `tensorflow-ic-imagenet-mobilenet-v2-130-224-classification-4` | [TensorFlow Hub-Verbindung](https://tfhub.dev/google/imagenet/mobilenet_v2_130_224/classification/4) | 
| MobileNet V2 | `tensorflow-ic-tf2-preview-mobilenet-v2-classification-4` | [TensorFlow Hub-Verbindung](https://tfhub.dev/google/tf2-preview/mobilenet_v2/classification/4) | 
| Inception V3 | `tensorflow-ic-imagenet-inception-v3-classification-4` | [TensorFlow Hub-Verbindung](https://tfhub.dev/google/imagenet/inception_v3/classification/4) | 
| Inception V2 | `tensorflow-ic-imagenet-inception-v2-classification-4` | [TensorFlow Hub-Verbindung](https://tfhub.dev/google/imagenet/inception_v2/classification/4) | 
| Inception V1 | `tensorflow-ic-imagenet-inception-v1-classification-4` | [TensorFlow Hub-Verbindung](https://tfhub.dev/google/imagenet/inception_v1/classification/4) | 
| Inception V3 Vorschau | `tensorflow-ic-tf2-preview-inception-v3-classification-4` | [TensorFlow Hub-Verbindung](https://tfhub.dev/google/tf2-preview/inception_v3/classification/4) | 
| Beginn V2 ResNet  | `tensorflow-ic-imagenet-inception-resnet-v2-classification-4` | [TensorFlow Hub-Verbindung](https://tfhub.dev/google/imagenet/inception_resnet_v2/classification/4) | 
| ResNet V2 50 | `tensorflow-ic-imagenet-resnet-v2-50-classification-4` | [TensorFlow Hub-Verbindung](https://tfhub.dev/google/imagenet/resnet_v2_50/classification/4) | 
| ResNet V2 101 | `tensorflow-ic-imagenet-resnet-v2-101-classification-4` | [TensorFlow Hub-Verbindung](https://tfhub.dev/google/imagenet/resnet_v2_101/classification/4) | 
| ResNet V2 152 | `tensorflow-ic-imagenet-resnet-v2-152-classification-4` | [TensorFlow Hub-Verbindung](https://tfhub.dev/google/imagenet/resnet_v2_152/classification/4) | 
| ResNet V1 50 | `tensorflow-ic-imagenet-resnet-v1-50-classification-4` | [TensorFlow Hub-Verbindung](https://tfhub.dev/google/imagenet/resnet_v1_50/classification/4) | 
| ResNet V1 101 | `tensorflow-ic-imagenet-resnet-v1-101-classification-4` | [TensorFlow Hub-Verbindung](https://tfhub.dev/google/imagenet/resnet_v1_101/classification/4) | 
| ResNet V1 152 | `tensorflow-ic-imagenet-resnet-v1-152-classification-4` | [TensorFlow Hub-Verbindung](https://tfhub.dev/google/imagenet/resnet_v1_152/classification/4) | 
| ResNet 50 | `tensorflow-ic-imagenet-resnet-50-classification-4` | [TensorFlow Hub-Verbindung](https://tfhub.dev/google/imagenet/resnet_50/classification/1) | 
| EfficientNet B0 | `tensorflow-ic-efficientnet-b0-classification-1` | [TensorFlow Hub-Verbindung](https://tfhub.dev/google/efficientnet/b0/classification/1) | 
| EfficientNet B1 | `tensorflow-ic-efficientnet-b1-classification-1` | [TensorFlow Hub-Verbindung](https://tfhub.dev/google/efficientnet/b1/classification/1) | 
| EfficientNet B2 | `tensorflow-ic-efficientnet-b2-classification-1` | [TensorFlow Hub-Verbindung](https://tfhub.dev/google/efficientnet/b2/classification/1) | 
| EfficientNet B3 | `tensorflow-ic-efficientnet-b3-classification-1` | [TensorFlow Hub-Verbindung](https://tfhub.dev/google/efficientnet/b3/classification/1) | 
| EfficientNet B4 | `tensorflow-ic-efficientnet-b4-classification-1` | [TensorFlow Hub-Verbindung](https://tfhub.dev/google/efficientnet/b4/classification/1) | 
| EfficientNet B5 | `tensorflow-ic-efficientnet-b5-classification-1` | [TensorFlow Hub-Verbindung](https://tfhub.dev/google/efficientnet/b5/classification/1) | 
| EfficientNet B6 | `tensorflow-ic-efficientnet-b6-classification-1` | [TensorFlow Hub-Verbindung](https://tfhub.dev/google/efficientnet/b6/classification/1) | 
| EfficientNet B7 | `tensorflow-ic-efficientnet-b7-classification-1` | [TensorFlow Hub-Verbindung](https://tfhub.dev/google/efficientnet/b7/classification/1) | 
| EfficientNet B0 Lite | `tensorflow-ic-efficientnet-lite0-classification-2` | [TensorFlow Hub-Verbindung](https://tfhub.dev/tensorflow/efficientnet/lite0/classification/2) | 
| EfficientNet B1 Lite | `tensorflow-ic-efficientnet-lite1-classification-2` | [TensorFlow Hub-Verbindung](https://tfhub.dev/tensorflow/efficientnet/lite1/classification/2) | 
| EfficientNet B2 Lite | `tensorflow-ic-efficientnet-lite2-classification-2` | [TensorFlow Hub-Verbindung](https://tfhub.dev/tensorflow/efficientnet/lite2/classification/2) | 
| EfficientNet B3 Lite | `tensorflow-ic-efficientnet-lite3-classification-2` | [TensorFlow Hub-Verbindung](https://tfhub.dev/tensorflow/efficientnet/lite3/classification/2) | 
| EfficientNet B4 Lite | `tensorflow-ic-efficientnet-lite4-classification-2` | [TensorFlow Hub-Verbindung](https://tfhub.dev/tensorflow/efficientnet/lite4/classification/2) | 
| MobileNet V1 1.00 224 | `tensorflow-ic-imagenet-mobilenet-v1-100-224-classification-4` | [TensorFlow Hub-Verbindung](https://tfhub.dev/google/imagenet/mobilenet_v1_100_224/classification/4) | 
| MobileNet V1 1.00 192 | `tensorflow-ic-imagenet-mobilenet-v1-100-192-classification-4` | [TensorFlow Hub-Verbindung](https://tfhub.dev/google/imagenet/mobilenet_v1_100_192/classification/4) | 
| MobileNet V1 1.00 160 | `tensorflow-ic-imagenet-mobilenet-v1-100-160-classification-4` | [TensorFlow Hub-Verbindung](https://tfhub.dev/google/imagenet/mobilenet_v1_100_160/classification/4) | 
| MobileNet V1 1.00 128 | `tensorflow-ic-imagenet-mobilenet-v1-100-128-classification-4` | [TensorFlow Hub-Verbindung](https://tfhub.dev/google/imagenet/mobilenet_v1_100_128/classification/4) | 
| MobileNet V1 0,75 224 | `tensorflow-ic-imagenet-mobilenet-v1-075-224-classification-4` | [TensorFlow Hub-Verbindung](https://tfhub.dev/google/imagenet/mobilenet_v1_075_224/classification/4) | 
| MobileNet V1 0,75 192 | `tensorflow-ic-imagenet-mobilenet-v1-075-192-classification-4` | [TensorFlow Hub-Verbindung](https://tfhub.dev/google/imagenet/mobilenet_v1_075_192/classification/4) | 
| MobileNet V1 0,75 160 | `tensorflow-ic-imagenet-mobilenet-v1-075-160-classification-4` | [TensorFlow Hub-Verbindung](https://tfhub.dev/google/imagenet/mobilenet_v1_075_160/classification/4) | 
| MobileNet V1 0,75 128 | `tensorflow-ic-imagenet-mobilenet-v1-075-128-classification-4` | [TensorFlow Hub-Verbindung](https://tfhub.dev/google/imagenet/mobilenet_v1_075_128/classification/4) | 
| MobileNet V1 0.50 224 | `tensorflow-ic-imagenet-mobilenet-v1-050-224-classification-4` | [TensorFlow Hub-Verbindung](https://tfhub.dev/google/imagenet/mobilenet_v1_050_224/classification/4) | 
| MobileNet V1 0.50 192 | `tensorflow-ic-imagenet-mobilenet-v1-050-192-classification-4` | [TensorFlow Hub-Verbindung](https://tfhub.dev/google/imagenet/mobilenet_v1_050_192/classification/4) | 
| MobileNet V1 1.00 160 | `tensorflow-ic-imagenet-mobilenet-v1-050-160-classification-4` | [TensorFlow Hub-Verbindung](https://tfhub.dev/google/imagenet/mobilenet_v1_050_160/classification/4) | 
| MobileNet V1 0,50 128 | `tensorflow-ic-imagenet-mobilenet-v1-050-128-classification-4` | [TensorFlow Hub-Verbindung](https://tfhub.dev/google/imagenet/mobilenet_v1_050_128/classification/4) | 
| MobileNet V1 0,25 224 | `tensorflow-ic-imagenet-mobilenet-v1-025-224-classification-4` | [TensorFlow Hub-Verbindung](https://tfhub.dev/google/imagenet/mobilenet_v1_025_224/classification/4) | 
| MobileNet V1 0,25 192 | `tensorflow-ic-imagenet-mobilenet-v1-025-192-classification-4` | [TensorFlow Hub-Verbindung](https://tfhub.dev/google/imagenet/mobilenet_v1_025_192/classification/4) | 
| MobileNet V1 0,25 160 | `tensorflow-ic-imagenet-mobilenet-v1-025-160-classification-4` | [TensorFlow Hub-Verbindung](https://tfhub.dev/google/imagenet/mobilenet_v1_025_160/classification/4) | 
| MobileNet V1 0,25 128 | `tensorflow-ic-imagenet-mobilenet-v1-025-128-classification-4` | [TensorFlow Hub-Verbindung](https://tfhub.dev/google/imagenet/mobilenet_v1_025_128/classification/4) | 
| Bit-S R50x1 | `tensorflow-ic-bit-s-r50x1-ilsvrc2012-classification-1` | [TensorFlow Hub-Verbindung](https://tfhub.dev/google/bit/s-r50x1/ilsvrc2012_classification/1) | 
| Bit-S R50x3 | `tensorflow-ic-bit-s-r50x3-ilsvrc2012-classification-1` | [TensorFlow Hub-Verbindung](https://tfhub.dev/google/bit/s-r50x3/ilsvrc2012_classification/1) | 
| Bit-S R101x1 | `tensorflow-ic-bit-s-r101x1-ilsvrc2012-classification-1` | [TensorFlow Hub-Verbindung](https://tfhub.dev/google/bit/s-r101x1/ilsvrc2012_classification/1) | 
| Bit-S R101x3 | `tensorflow-ic-bit-s-r101x3-ilsvrc2012-classification-1` | [TensorFlow Hub-Verbindung](https://tfhub.dev/google/bit/s-r101x3/ilsvrc2012_classification/1) | 
| Bit-M R50x1 | `tensorflow-ic-bit-m-r50x1-ilsvrc2012-classification-1` | [TensorFlow Hub-Verbindung](https://tfhub.dev/google/bit/m-r50x1/ilsvrc2012_classification/1) | 
| Bit-M R50x3 | `tensorflow-ic-bit-m-r50x3-ilsvrc2012-classification-1` | [TensorFlow Hub-Verbindung](https://tfhub.dev/google/bit/m-r50x3/ilsvrc2012_classification/1) | 
| Bit-M R101x1 | `tensorflow-ic-bit-m-r101x1-ilsvrc2012-classification-1` | [TensorFlow Hub-Verbindung](https://tfhub.dev/google/bit/m-r101x1/ilsvrc2012_classification/1) | 
| Bit-M R101x3 | `tensorflow-ic-bit-m-r101x3-ilsvrc2012-classification-1` | [TensorFlow Hub-Verbindung](https://tfhub.dev/google/bit/m-r101x3/ilsvrc2012_classification/1) | 
| Bit-M R50x1 -21 k ImageNet | `tensorflow-ic-bit-m-r50x1-imagenet21k-classification-1` | [TensorFlow Hub-Verbindung](https://tfhub.dev/google/bit/m-r50x1/imagenet21k_classification/1) | 
| Bit-M R50x3 -21 k ImageNet | `tensorflow-ic-bit-m-r50x3-imagenet21k-classification-1` | [TensorFlow Hub-Verbindung](https://tfhub.dev/google/bit/m-r50x3/imagenet21k_classification/1) | 
| Bit-M R101x1 -21 k ImageNet | `tensorflow-ic-bit-m-r101x1-imagenet21k-classification-1` | [TensorFlow Hub-Verbindung](https://tfhub.dev/google/bit/m-r101x1/imagenet21k_classification/1) | 
| Bit-M R101x3 -21 k ImageNet | `tensorflow-ic-bit-m-r101x3-imagenet21k-classification-1` | [TensorFlow Hub-Verbindung](https://tfhub.dev/google/bit/m-r101x3/imagenet21k_classification/1) | 

# Bildklassifizierung — TensorFlow Hyperparameter
<a name="IC-TF-Hyperparameter"></a>

Hyperparameter sind Parameter, die festgelegt werden, bevor ein Machine-Learning-Modell mit dem Lernen beginnt. Die folgenden Hyperparameter werden vom in Amazon SageMaker AI integrierten Image Classification — TensorFlow Algorithmus unterstützt. Weitere Informationen zur Hyperparameter-Optimierung finden Sie unter [Optimieren Sie ein Modell zur Bildklassifizierung TensorFlow](IC-TF-tuning.md). 


| Name des Parameters | Description | 
| --- | --- | 
| augmentation |  Legen Sie auf `"True"` fest, damit `augmentation_random_flip`, `augmentation_random_rotation`, und `augmentation_random_zoom` auf die Trainingsdaten angewendet werden.  Gültige Werte: Zeichenfolge, entweder: (`"True"` or `"False"`). Standardwert: `"False"`.  | 
| augmentation\$1random\$1flip |  Gibt an, welcher Umkehrmodus für die Datenerweiterung verwendet werden soll, wenn `augmentation` auf `"True"` festgelegt ist. Weitere Informationen finden Sie [RandomFlip](https://www.tensorflow.org/api_docs/python/tf/keras/layers/RandomFlip)in der TensorFlow Dokumentation. Gültige Werte: String, einer der folgenden Werte: (`"horizontal_and_vertical"`, `"vertical"` oder `"None"`). Standardwert: `"horizontal_and_vertical"`.  | 
| augmentation\$1random\$1rotation |  Gibt an, wie viel Rotation für die Datenerweiterung verwendet werden soll, wenn `augmentation` auf `"True"` festgelegt ist. Werte stellen einen Bruchteil von 2π dar. Positive Werte drehen sich gegen den Uhrzeigersinn, negative Werte drehen sich im Uhrzeigersinn. `0` bedeutet keine Rotation. Weitere Informationen finden Sie [RandomRotation](https://www.tensorflow.org/api_docs/python/tf/keras/layers/RandomRotation)in der TensorFlow Dokumentation. Gültige Werte: Float, Bereich: [`-1.0`, `1.0`]. Standardwert: `0.2`.  | 
| augmentation\$1random\$1zoom |  Gibt an, wie viel vertikaler Zoom für die Datenvergrößerung verwendet werden soll, wenn `augmentation` auf `"True"` festgelegt ist. Bei positiven Werten wird herausgezoomt, bei negativen Werten hineingezoomt. `0` bedeutet kein Zoomen. Weitere Informationen finden Sie [RandomZoom](https://www.tensorflow.org/api_docs/python/tf/keras/layers/RandomZoom)in der TensorFlow Dokumentation. Gültige Werte: Float, Bereich: [`-1.0`, `1.0`]. Standardwert: `0.1`.  | 
| batch\$1size |  Die Batch-Größe für das Training. Für Schulungen an Instanzen mit mehreren GPUs wird diese Batchgröße überall verwendet GPUs.  Gültige Werte: positive Ganzzahl. Standardwert: `32`.  | 
| beta\$11 |  Die Beta1-Version für den `"adam"` Optimierer. Die exponentielle Zerfallsrate für Schätzwerte im ersten Schritt. Wird für andere Optimierer ignoriert. Gültige Werte: Float, Bereich: [`0.0`, `1.0`]. Standardwert: `0.9`.  | 
| beta\$12 |  Die Beta2 für den Optimierer. `"adam"` Die exponentielle Zerfallsrate für Schätzwerte im zweiten Schritt. Wird für andere Optimierer ignoriert. Gültige Werte: Float, Bereich: [`0.0`, `1.0`]. Standardwert: `0.999`.  | 
| binary\$1mode |  Wenn `binary_mode` auf `"True"` gesetzt ist, gibt das Modell eine einzelne Wahrscheinlichkeitszahl für die positive Klasse zurück und kann zusätzliche `eval_metric` Optionen verwenden. Nur für binäre Klassifikationsprobleme verwenden. Gültige Werte: String, entweder: (`"True"` oder `"False"`). Standardwert: `"False"`.  | 
| dropout\$1rate | Die Abbrecherquote für die Dropout-Ebene in der obersten Klassifizierungsebene. Gültige Werte: Float, Bereich: [`0.0`, `1.0`]. Standardwert: `0.2` | 
| early\$1stopping |  Setz auf `"True"`, um die Logik zum Early-Stopping während des Trainings zu verwenden. Falls `"False"`, wird vorzeitiges Abbrechen nicht verwendet. Gültige Werte: Zeichenfolge, entweder: (`"True"` oder `"False"`). Standardwert: `"False"`.  | 
| early\$1stopping\$1min\$1delta | Die geringste Änderung, die erforderlich ist, um als Verbesserung zu gelten. Eine absolute Änderung, die unter dem Wert von early\$1stopping\$1min\$1delta liegt, gilt nicht als Verbesserung. Wird nur verwendet, wenn für early\$1stopping der Wert "True" festgelegt ist.Gültige Werte: Float, Bereich: [`0.0`, `1.0`].Standardwert: `0.0`. | 
| early\$1stopping\$1patience |  Die Anzahl der Epochen, in denen die Ausbildung ohne Verbesserung fortgesetzt wird. Wird nur verwendet, wenn für `early_stopping` der Wert `"True"` festgelegt ist. Gültige Werte: positive Ganzzahl. Standardwert: `5`.  | 
| epochs |  Die Anzahl der Trainingsepochen. Gültige Werte: positive Ganzzahl. Standardwert: `3`.  | 
| epsilon |  Das Epsilon für `"adam"`, `"rmsprop"`, `"adadelta"`, und `"adagrad"`. Normalerweise auf einen kleinen Wert eingestellt, um eine Division durch 0 zu vermeiden. Wird für andere Optimierer ignoriert. Gültige Werte: Float, Bereich: [`0.0`, `1.0`]. Standardwert: `1e-7`.  | 
| eval\$1metric |  Wenn `binary_mode` auf `"False"` festgelegt ist, kann `eval_metric` nur `"accuracy"` sein. Wenn `binary_mode` `"True"` ist, wählen Sie einen der gültigen Werte aus. Weitere Informationen finden Sie in der TensorFlow Dokumentation unter [Metriken](https://www.tensorflow.org/api_docs/python/tf/keras/metrics). Gültige Werte: String, einer der folgenden Werte: (`"accuracy"`, `"precision"`, `"recall"`, `"auc"` oder`"prc"`). Standardwert: `"accuracy"`.  | 
| image\$1resize\$1interpolation |  Gibt die Interpolationsmethode an, die bei der Größenänderung von Bildern verwendet wird. Weitere Informationen finden Sie unter [image.resize in der Dokumentation](https://www.tensorflow.org/api_docs/python/tf/image/resize). TensorFlow  Gültige Werte: string, einer der folgenden Werte: (`"bilinear"`, `"nearest"`, `"bicubic"`, `"area"`, ` "lanczos3"`, `"lanczos5"`, `"gaussian"` oder `"mitchellcubic"`). Standardwert: `"bilinear"`.  | 
| initial\$1accumulator\$1value |  Der Startwert für die Akkumulatoren oder die Impulswerte pro Parameter für den `"adagrad"` Optimierer. Wird für andere Optimierer ignoriert. Gültige Werte: Float, Bereich: [`0.0`, `1.0`]. Standardwert: `0.0001`.  | 
| label\$1smoothing |  Gibt an, um wie viel das Vertrauen in Label-Werte gelockert werden soll. Wenn beispielsweise `label_smoothing` `0.1` ist, dann sind Beschriftungen, die nicht zu den Zielbezeichnungen gehören, `0.1/num_classes ` und Zielbeschriftungen sind `0.9+0.1/num_classes`.  Gültige Werte: Float, Bereich: [`0.0`, `1.0`]. Standardwert: `0.1`.  | 
| learning\$1rate | Die Lernrate des Optimierers. Gültige Werte: Float, Bereich: [`0.0`, `1.0`].Standardwert: `0.001`. | 
| momentum |  Die Dynamik für `"sgd"`, `"nesterov"` und `"rmsprop"`-Optimierer. Wird für andere Optimierer ignoriert. Gültige Werte: Float, Bereich: [`0.0`, `1.0`]. Standardwert: `0.9`.  | 
| optimizer |  Der Optimierer-Typ. Weitere Informationen finden Sie in der Dokumentation unter [Optimizers](https://www.tensorflow.org/api_docs/python/tf/keras/optimizers). TensorFlow  Gültige Werte: Zeichenfolge, einer der folgenden Werte: (`"adam"`, `"sgd"`, `"nesterov"`, `"rmsprop"`,` "adagrad"` , `"adadelta"`). Standardwert: `"adam"`.  | 
| regularizers\$1l2 |  Der L2-Regularisierungsfaktor für die dichte Schicht in der Klassifizierungsschicht.  Gültige Werte: Float, Bereich: [`0.0`, `1.0`]. Standardwert: `.0001`.  | 
| reinitialize\$1top\$1layer |  Wenn dieser Wert auf `"Auto"` gesetzt ist, werden die Parameter der obersten Klassifikationsschicht während der Feinabstimmung neu initialisiert. Beim inkrementellen Training werden die Parameter der obersten Klassifikationsschicht nur dann neu initialisiert, wenn sie auf `"True"` gesetzt sind. Gültige Werte: Zeichenfolge, einer der folgenden Werte: (`"Auto"`, `"True"` oder `"False"`). Standardwert: `"Auto"`.  | 
| rho |  Der Abzinsungsfaktor für den Gradienten der `"adadelta"` und `"rmsprop"` Optimierer. Wird für andere Optimierer ignoriert.  Gültige Werte: Float, Bereich: [`0.0`, `1.0`]. Standardwert: `0.95`.  | 
| train\$1only\$1top\$1layer |  Falls `"True"`, werden nur die Parameter der obersten Klassifikationsschicht fein abgestimmt. Falls `"False"`, werden alle Modellparameter fein abgestimmt. Gültige Werte: Zeichenfolge, entweder: (`"True"` or `"False"`). Standardwert: `"False"`.  | 

# Optimieren Sie ein Modell zur Bildklassifizierung TensorFlow
<a name="IC-TF-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).

## Mit dem Image Classification — Algorithmus berechnete Metriken TensorFlow
<a name="IC-TF-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 | 

## Einstellbare Bildklassifizierung — Hyperparameter TensorFlow
<a name="IC-TF-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: `batch_size`, `learning_rate` und `optimizer`. Optimieren Sie die auf den Optimierer bezogenen Hyperparameter, wie `momentum`, `regularizers_l2`, `beta_1`, `beta_2` und `eps` 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 `optimizer` verwendet werden, finden Sie unter [Bildklassifizierung — TensorFlow Hyperparameter](IC-TF-Hyperparameter.md).


| Name des Parameters | Parametertyp | Empfohlene Bereiche | 
| --- | --- | --- | 
| batch\$1size | IntegerParameterRanges | MinValue: 8, MaxValue: 512 | 
| beta\$11 | ContinuousParameterRanges | MinValue: 1e-6, MaxValue: 0,99 | 
| beta\$12 | ContinuousParameterRanges | MinValue: 1e-6,: 0,999 MaxValue | 
| eps | ContinuousParameterRanges | MinValue: 1e-8,: 1,0 MaxValue | 
| learning\$1rate | ContinuousParameterRanges | MinValue: 1e-6,: 0,5 MaxValue | 
| momentum | ContinuousParameterRanges | MinValue: 0,0,: 0,99 MaxValue | 
| optimizer | CategoricalParameterRanges | ['sgd', 'adam', 'rmsprop', 'nesterov', 'adagrad', 'adadelta'] | 
| regularizers\$1l2 | ContinuousParameterRanges | MinValue: 0,0, MaxValue: 0,99 | 
| train\$1only\$1top\$1layer | ContinuousParameterRanges | ['True', 'False'] | 