Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Nozioni di base sui dispositivi edge Neo
Questa guida per iniziare a usare Amazon SageMaker Neo mostra come compilare un modello, configurare il dispositivo e fare inferenze sul dispositivo. La maggior parte degli esempi di codice utilizza Boto3. Forniamo comandi, AWS CLI laddove applicabile, oltre a istruzioni su come soddisfare i prerequisiti per Neo.
Nota
È possibile eseguire i seguenti frammenti di codice sul computer locale, all'interno di un SageMaker notebook, all'interno di SageMaker Studio o (a seconda del dispositivo periferico) sul dispositivo periferico. La configurazione è simile; tuttavia, esistono due eccezioni principali se si esegue questa guida all'interno di un'istanza di SageMaker notebook o SageMaker di una sessione di Studio:
-
Non è necessario installare Boto3.
-
Non è necessario aggiungere la policy IAM
‘AmazonSageMakerFullAccess’
Questa guida presuppone che tu stia eseguendo le seguenti istruzioni sul tuo dispositivo edge.
Prerequisiti
-
Installa Boto3
Se stai eseguendo questi comandi sul tuo dispositivo edge, devi installare il AWS SDK for Python (Boto3). All'interno di un ambiente Python (preferibilmente un ambiente virtuale), esegui quanto segue localmente sul terminale del tuo dispositivo edge o all'interno di un'istanza del notebook Jupyter:
-
Configurare le credenziali AWS
Devi configurare le credenziali di Amazon Web Services sul dispositivo per eseguire SDK for Python (Boto3). Per impostazione predefinita, AWS le credenziali devono essere archiviate nel file
~/.aws/credentials
sul dispositivo perimetrale. All'interno del file delle credenziali, dovresti vedere due variabili di ambiente:aws_access_key_id
eaws_secret_access_key
.Nel tuo terminale, esegui:
$ more ~/.aws/credentials [default] aws_access_key_id =
YOUR_ACCESS_KEY
aws_secret_access_key =YOUR_SECRET_KEY
La Guida di riferimento AWS generale contiene istruzioni su come ottenere le informazioni necessarie
aws_access_key_id
eaws_secret_access_key
. Per ulteriori informazioni su come configurare le credenziali sul dispositivo, consulta la documentazione di Boto3. -
Configura un ruolo IAM e collega le policy.
Neo deve accedere all'URI del bucket S3. Crea un ruolo IAM che possa essere eseguito SageMaker e che disponga dell'autorizzazione per accedere all'URI S3. Puoi creare un ruolo IAM utilizzando SDK for Python (Boto3), la console o AWS CLI. Nel seguente esempio viene illustrato come creare un ruolo IAM utilizzando SDK per Python (Boto3):
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'
Per ulteriori informazioni su come creare un ruolo IAM con la console o tramite l' AWS API AWS CLI, consulta Creazione di un utente IAM nel tuo AWS account.
Crea un dizionario che descriva la policy IAM che stai collegando. Questa policy è utilizzata per creare un nuovo ruolo IAM.
policy = { 'Statement': [ { 'Action': 'sts:AssumeRole', 'Effect': 'Allow', 'Principal': {'Service': 'sagemaker.amazonaws.com'}, }], 'Version': '2012-10-17' }
Crea un nuovo ruolo IAM utilizzando la policy che hai definito sopra:
import json new_role = iam_client.create_role( AssumeRolePolicyDocument=json.dumps(policy), Path='/', RoleName=role_name )
Devi sapere qual è il tuo Amazon Resource Name (ARN) quando crei un lavoro di compilazione in una fase successiva, quindi memorizzalo anche in una variabile.
role_arn = new_role['Role']['Arn']
Ora che hai creato un nuovo ruolo, allega le autorizzazioni necessarie per interagire con Amazon SageMaker e Amazon S3:
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' );
-
Crea un bucket Amazon S3 per archiviare gli artefatti del modello
SageMaker Neo accederà agli artefatti del tuo modello da Amazon S3
-
Addestra un modello di machine learning
SageMakerPer ulteriori informazioni su come addestrare un modello di machine learning con Amazon, consulta Train a Model with Amazon SageMaker. Facoltativamente, puoi caricare il tuo modello addestrato localmente direttamente in un bucket URI Amazon S3.
Nota
Assicurati che il modello sia formattato correttamente a seconda del framework che hai utilizzato. Vedi Quali forme di dati di input si aspetta SageMaker Neo?
Se non hai ancora un modello, usa il
curl
comando per ottenere una copia locale delcoco_ssd_mobilenet
modello dal sito web TensorFlow del sito web. Il modello che hai appena copiato è un modello di rilevamento di oggetti addestrato dal set di dati COCO. Digita quanto segue nel tuo notebook Jupyter: 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}
Nota che questo particolare esempio è stato impacchettato in un file .zip. Decomprimi questo file e comprimilo nuovamente come tarfile compresso (
.tar.gz
) prima di utilizzarlo nei passaggi successivi. Digita quanto segue nel tuo notebook Jupyter:# 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}
-
Carica il modello addestrato in un bucket S3
Dopo aver addestrato la modalità di machine learning, archiviala in un bucket S3.