

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.

# Voraussetzungen
<a name="neo-getting-started-edge-step0"></a>

SageMaker Neo ist eine Funktion, mit der Sie Modelle für maschinelles Lernen einmal trainieren und sie dann überall in der Cloud und am Edge ausführen können. Bevor Sie Ihre Modelle mit Neo kompilieren und optimieren können, müssen Sie einige Voraussetzungen einrichten. Sie müssen die erforderlichen Python-Bibliotheken installieren, Ihre AWS Anmeldeinformationen konfigurieren, eine IAM-Rolle mit den erforderlichen Berechtigungen erstellen und einen S3-Bucket zum Speichern von Modellartefakten einrichten. Außerdem müssen Sie über ein trainiertes Machine-Learning-Modell verfügen. Die folgenden Schritte führen Sie durch die Einrichtung:

1. **Installieren Sie Boto3**

   Wenn Sie diese Befehle auf Ihrem Edge-Gerät ausführen, müssen Sie den AWS SDK für Python (Boto3) installieren. Führen Sie in einer Python-Umgebung (vorzugsweise einer virtuellen Umgebung) Folgendes lokal auf dem Terminal Ihres Edge-Geräts oder in einer Jupyter-Notebook-Instance aus: 

------
#### [ Terminal ]

   ```
   pip install boto3
   ```

------
#### [ Jupyter Notebook ]

   ```
   !pip install boto3
   ```

------

1.  **Anmeldeinformationen einrichten AWS ** 

   Sie müssen Anmeldedaten für Amazon Web Services auf Ihrem Gerät einrichten, um SDK for Python (Boto3) ausführen zu können. Standardmäßig sollten die AWS Anmeldeinformationen in der Datei `~/.aws/credentials` auf Ihrem Edge-Gerät gespeichert werden. In der Datei mit den Anmeldeinformationen sollten Sie zwei Umgebungsvariablen sehen: `aws_access_key_id` und `aws_secret_access_key`. 

   Führen Sie in Ihrem Terminal aus: 

   ```
   $ more ~/.aws/credentials
   
   [default]
   aws_access_key_id = {{YOUR_ACCESS_KEY}}
   aws_secret_access_key = {{YOUR_SECRET_KEY}}
   ```

   Das [AWS allgemeine Referenzhandbuch](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys) enthält Anweisungen, wie Sie die erforderlichen `aws_access_key_id` und `aws_secret_access_key` erhalten. Weitere Informationen zur Einrichtung von Anmeldeinformationen auf Ihrem Gerät finden Sie in der [Boto3](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html#configuration) Dokumentation. 

1.  **Richten Sie eine IAM-Rolle ein und fügen Sie Richtlinien hinzu.** 

   Neo benötigt Zugriff auf Ihre S3-Bucket-URI. Erstellen Sie eine IAM-Rolle, die SageMaker KI ausführen kann und über die Berechtigung verfügt, auf die S3-URI zuzugreifen. Sie können eine IAM-Rolle erstellen, indem Sie entweder SDK for Python (Boto3), die Konsole oder AWS CLI. Das folgende Beispiel veranschaulicht, wie eine IAM-Rolle mit SDK for Python (Boto3) erstellt wird: 

   ```
   import boto3
   
   AWS_REGION = {{'aws-region'}}
   
   # Create an IAM client to interact with IAM
   iam_client = boto3.client('iam', region_name=AWS_REGION)
   role_name = {{'role-name'}}
   ```

   Weitere Informationen zum Erstellen einer IAM-Rolle mit der Konsole oder über die AWS API finden Sie unter [Einen IAM-Benutzer in Ihrem Konto erstellen](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html#id_users_create_api). AWS CLI AWS 

    Erstellen Sie ein Wörterbuch, das die IAM-Richtlinie beschreibt, die Sie anhängen. Diese Richtlinie wird verwendet, um eine neue IAM-Rolle zu erstellen. 

   ```
   policy = {
       'Statement': [
           {
               'Action': 'sts:AssumeRole',
               'Effect': 'Allow',
               'Principal': {'Service': 'sagemaker.amazonaws.com'},
           }],  
        'Version': '2012-10-17		 	 	 '
   }
   ```

   Erstellen Sie eine neue IAM-Rolle mit der Richtlinie, die Sie oben definiert haben:

   ```
   import json 
   
   new_role = iam_client.create_role(
       AssumeRolePolicyDocument=json.dumps(policy),
       Path='/',
       RoleName=role_name
   )
   ```

   Sie müssen wissen, wie Ihr Amazon-Ressourcenname (ARN) lautet, wenn Sie in einem späteren Schritt einen Kompilierungsauftrag erstellen. Speichern Sie ihn daher auch in einer Variablen. 

   ```
   role_arn = new_role['Role']['Arn']
   ```

    Nachdem Sie eine neue Rolle erstellt haben, fügen Sie die Berechtigungen hinzu, die sie für die Interaktion mit Amazon SageMaker AI und Amazon S3 benötigt: 

   ```
   iam_client.attach_role_policy(
       RoleName=role_name,
       PolicyArn='arn:aws:iam::aws:policy/AmazonSageMakerFullAccess'
   )
   
   iam_client.attach_role_policy(
       RoleName=role_name,
       PolicyArn='arn:aws:iam::aws:policy/AmazonS3FullAccess'
   );
   ```

1. **Erstellen Sie einen Amazon-S3-Bucket zur Speicherung Ihrer Modellartefakte**

   SageMaker Neo wird von Amazon S3 aus auf Ihre Modellartefakte zugreifen

------
#### [ Boto3 ]

   ```
   # Create an S3 client
   s3_client = boto3.client('s3', region_name=AWS_REGION)
   
   # Name buckets
   bucket='name-of-your-bucket'
   
   # Check if bucket exists
   if boto3.resource('s3').Bucket(bucket) not in boto3.resource('s3').buckets.all():
       s3_client.create_bucket(
           Bucket=bucket,
           CreateBucketConfiguration={
               'LocationConstraint': AWS_REGION
           }
       )
   else:
       print(f'Bucket {bucket} already exists. No action needed.')
   ```

------
#### [ CLI ]

   ```
   aws s3 mb s3://{{'name-of-your-bucket'}} --region {{specify-your-region}} 
   
   # Check your bucket exists
   aws s3 ls s3://{{'name-of-your-bucket'}}/
   ```

------

1. **Trainieren eines Machine-Learning-Modells**

   Weitere Informationen zum [Trainieren eines Modells für maschinelles Lernen mit Amazon SageMaker AI](https://docs.aws.amazon.com/sagemaker/latest/dg/how-it-works-training.html) finden Sie unter Train a Model with Amazon SageMaker AI. Sie können Ihr lokal trainiertes Modell optional direkt in einen Amazon-S3-URI-Bucket hochladen. 
**Anmerkung**  
 Stellen Sie sicher, dass das Modell je nach verwendetem Framework korrekt formatiert ist. Weitere Informationen finden Sie unter [Welche Formen der Eingabedaten erwartet SageMaker Neo?](https://docs.aws.amazon.com/sagemaker/latest/dg/neo-job-compilation.html#neo-job-compilation-expected-inputs) 

   Wenn Sie noch kein Modell haben, verwenden Sie den `curl` Befehl, um eine lokale Kopie des `coco_ssd_mobilenet` Modells von TensorFlow der Website abzurufen. Das Modell, das Sie gerade kopiert haben, ist ein Objekterkennungsmodell, das anhand des [COCO-Datensatzes](https://cocodataset.org/#home) trainiert wurde. Geben Sie Folgendes in Ihr Jupyter Notebook ein:

   ```
   model_zip_filename = './coco_ssd_mobilenet_v1_1.0.zip'
   !curl http://storage.googleapis.com/download.tensorflow.org/models/tflite/coco_ssd_mobilenet_v1_1.0_quant_2018_06_29.zip \
       --output {model_zip_filename}
   ```

   Beachten Sie, dass dieses spezielle Beispiel in eine .zip-Datei gepackt wurde. Entpacken Sie diese Datei und verpacken Sie sie als komprimierte TAR-Datei (`.tar.gz`) neu, bevor Sie sie in späteren Schritten verwenden. Geben Sie Folgendes in Ihr Jupyter Notebook ein: 

   ```
   # Extract model from zip file
   !unzip -u {model_zip_filename}
   
   model_filename = 'detect.tflite'
   model_name = model_filename.split('.')[0]
   
   # Compress model into .tar.gz so SageMaker Neo can use it
   model_tar = model_name + '.tar.gz'
   !tar -czf {model_tar} {model_filename}
   ```

1. **Laden Sie das trainierte Modell in einen S3-Bucket hoch**

   Sobald Sie Ihren Modus für Machine Learning trainiert haben, speichern Sie ihn in einem S3-Bucket. 

------
#### [ Boto3 ]

   ```
   # Upload model        
   s3_client.upload_file(Filename=model_filename, Bucket=bucket, Key=model_filename)
   ```

------
#### [ CLI ]

   Ersetzen Sie `your-model-filename` und `amzn-s3-demo-bucket` durch den Namen Ihres Amazon-S3-Buckets. 

   ```
   aws s3 cp {{your-model-filename}} s3://{{amzn-s3-demo-bucket}}
   ```

------