As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Conceitos básicos do Neo em dispositivos Edge
Este guia para começar a usar SageMaker o Amazon Neo mostra como compilar um modelo, configurar seu dispositivo e fazer inferências em seu dispositivo. A maioria dos exemplos de código usa o Boto3. Fornecemos comandos usando AWS CLI quando aplicável, bem como instruções sobre como satisfazer os pré-requisitos do Neo.
nota
Você pode executar os seguintes trechos de código em sua máquina local, em um SageMaker notebook, no SageMaker Studio ou (dependendo do seu dispositivo de borda) em seu dispositivo de borda. A configuração é semelhante; no entanto, há duas exceções principais se você executar este guia em uma instância de SageMaker notebook ou sessão do SageMaker Studio:
-
Não há necessidade de Instalar o Boto3.
-
Não há necessidade de adicionar a política
‘AmazonSageMakerFullAccess’
do IAM
Este guia pressupõe que você esteja executando as seguintes instruções em seu dispositivo Edge.
Pré-requisitos
-
Instale o Boto3
Se estiver executando esses comandos em seu dispositivo de borda, você deve instalar o AWS SDK for Python (Boto3). Em um ambiente Python (de preferência um ambiente virtual), execute o seguinte localmente no terminal do seu dispositivo de borda ou em uma instância do bloco de anotações Jupyter:
-
Configurar AWS credenciais
É necessário configurar credenciais do Amazon Web Services no seu dispositivo para executar o SDK para Python (Boto3). Por padrão, as AWS credenciais devem ser armazenadas no arquivo
~/.aws/credentials
em seu dispositivo de borda. No arquivo de credenciais, você deve ver duas variáveis de ambiente:aws_access_key_id
eaws_secret_access_key
.No seu terminal, execute:
$ more ~/.aws/credentials [default] aws_access_key_id =
YOUR_ACCESS_KEY
aws_secret_access_key =YOUR_SECRET_KEY
O Guia de Referência Geral AWS tem instruções sobre como obter o necessário
aws_access_key_id
eaws_secret_access_key
. Para obter mais informações sobre como configurar credenciais no seu dispositivo, consulte a documentação do Boto3. -
Configure uma função do IAM e anexe políticas.
O Neo precisa acessar o URI do seu bucket do S3. Crie uma função do IAM que possa ser executada SageMaker e tenha permissão para acessar o URI do S3. É possível criar um perfil do IAM usando o SDK para Python (Boto3), o console ou o AWS CLI. O exemplo a seguir ilustra como criar um perfil do IAM usando o SDK para 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'
Para obter mais informações sobre como criar uma função do IAM com o console ou por meio da AWS API, consulte Como criar um usuário do IAM em sua AWS conta. AWS CLI
Crie um dicionário descrevendo a política do IAM que você está anexando. Essa política é usada para criar um novo perfil do IAM.
policy = { 'Statement': [ { 'Action': 'sts:AssumeRole', 'Effect': 'Allow', 'Principal': {'Service': 'sagemaker.amazonaws.com'}, }], 'Version': '2012-10-17' }
Crie uma nova função do IAM usando a política que você definiu acima:
import json new_role = iam_client.create_role( AssumeRolePolicyDocument=json.dumps(policy), Path='/', RoleName=role_name )
Você precisa saber qual é o seu nome de recurso da Amazon (ARN) quando criar um trabalho de compilação em uma etapa posterior, portanto, armazene-o também em uma variável.
role_arn = new_role['Role']['Arn']
Agora que você criou uma nova função, anexe as permissões necessárias para interagir com a Amazon SageMaker e o 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' );
-
Crie um bucket do Amazon S3 para armazenar seus artefatos do modelo
SageMaker Neo acessará seus artefatos de modelo a partir do Amazon S3
-
Treinar um modelo de machine learning
Consulte Treinar um modelo com a Amazon SageMaker para obter mais informações sobre como treinar um modelo de aprendizado de máquina usando a Amazon SageMaker. Se preferir, carregue seu modelo treinado localmente diretamente em um bucket de URI do Amazon S3.
nota
Verifique se o modelo está formatado corretamente, dependendo da estrutura usada. Consulte Quais formatos de dados de entrada o SageMaker Neo espera?
Se você ainda não tiver um modelo, use o
curl
comando para obter uma cópia local dococo_ssd_mobilenet
modelo no site TensorFlow da empresa. O modelo que você acabou de copiar é um modelo de detecção de objetos treinado a partir do conjunto de dados COCO. Digite o seguinte em seu caderno 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}
Observe que esse exemplo específico foi empacotado em um arquivo .zip. Descompacte esse arquivo e reempacote-o como um arquivo tar comprimido (
.tar.gz
) antes de usá-lo em etapas posteriores. Digite o seguinte em seu bloco de anotações 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}
-
Carregue o modelo treinado em um bucket S3
Depois de treinar seu modo demachine learning, armazene-o em um bucket S3.