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.
Erste Schritte mit Neo auf Edge-Geräten
Dieser Leitfaden für die ersten Schritte mit Amazon SageMaker Neo zeigt Ihnen, wie Sie ein Modell kompilieren, Ihr Gerät einrichten und Rückschlüsse auf Ihrem Gerät ziehen. Die meisten Codebeispiele verwenden Boto3. Wir stellen Befehle mit bereit, AWS CLI sofern zutreffend, sowie Anweisungen zur Erfüllung der Voraussetzungen für Neo.
Anmerkung
Sie können die folgenden Codeausschnitte auf Ihrem lokalen Computer, in einem SageMaker Notebook, in SageMaker Studio oder (je nach Edge-Gerät) auf Ihrem Edge-Gerät ausführen. Die Einrichtung ist ähnlich. Es gibt jedoch zwei Hauptausnahmen, wenn Sie diesen Leitfaden innerhalb einer SageMaker Notebook-Instance oder SageMaker Studio-Sitzung ausführen:
-
Boto3 muss nicht installiert werden.
-
Sie müssen die
‘AmazonSageMakerFullAccess’
IAM-Richtlinie nicht hinzufügen
In diesem Handbuch wird davon ausgegangen, dass Sie die folgenden Anweisungen auf Ihrem Edge-Gerät ausführen.
Voraussetzungen
-
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-Instanz aus:
-
Einrichten von AWS Anmeldeinformationen
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 ausgeführt SageMaker werden kann und über die Berechtigung zum Zugriff auf den S3-URI verfügt. 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 AWS CLI oder über die AWS API finden Sie unter Erstellen eines IAM-Benutzers in Ihrem AWS Konto.
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 nun eine neue Rolle erstellt haben, fügen Sie die Berechtigungen hinzu, die für die Interaktion mit Amazon SageMaker und Amazon S3 erforderlich sind:
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 Modell-Artefakte
SageMaker Neo greift von Amazon S3 aus auf Ihre Modellartefakte zu
-
Trainieren eines Machine Learning-Modells
Weitere Informationen zum Trainieren eines Machine-Learning-Modells mit Amazon SageMaker finden Sie unter Trainieren eines Modells mit Amazon SageMaker. 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. Siehe Welche Eingabedatenformen erwartet SageMaker Neo?
Wenn Sie noch kein Modell haben, verwenden Sie den
curl
Befehl , um eine lokale Kopie descoco_ssd_mobilenet
Modells von der Website TensorFlowvon 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 packen 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.