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
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 Modell für maschinelles Lernen verfügen. Die folgenden Schritte führen Sie durch die Einrichtung:
-
Installieren Sie Boto3
Wenn Sie diese Befehle auf Ihrem Edge-Gerät ausführen, müssen Sie den AWS SDK for 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:
-
AWS Zugangsdaten einrichten
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
undaws_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 enthält Anweisungen, wie Sie die erforderlichen
aws_access_key_id
undaws_secret_access_key
erhalten. Weitere Informationen zur Einrichtung von Anmeldeinformationen auf Ihrem Gerät finden Sie in der Boto3Dokumentation. -
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. 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' );
-
Erstellen Sie einen Amazon-S3-Bucket zur Speicherung Ihrer Modellartefakte
SageMaker Neo wird von Amazon S3 aus auf Ihre Modellartefakte zugreifen
-
Trainieren eines Machine-Learning-Modells
Weitere Informationen zum Trainieren eines Modells für maschinelles Lernen mit Amazon SageMaker AI 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?
Wenn Sie noch kein Modell haben, verwenden Sie den
curl
Befehl, um eine lokale Kopie descoco_ssd_mobilenet
Modells von TensorFlow der Website abzurufen. Das Modell, das Sie gerade kopiert haben, ist ein Objekterkennungsmodell, das anhand des COCO-Datensatzestrainiert 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}
-
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.