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á.
Pré-requisitos
SageMaker O Neo é um recurso que permite treinar modelos de aprendizado de máquina uma vez e executá-los em qualquer lugar na nuvem e na borda. Antes de poder compilar e otimizar seus modelos com o Neo, há alguns pré-requisitos que você precisa configurar. Você deve instalar as bibliotecas Python necessárias, configurar suas AWS credenciais, criar uma IAM função com as permissões necessárias e configurar um bucket do S3 para armazenar artefatos do modelo. Você também deve ter um modelo de aprendizado de máquina treinado pronto. As etapas a seguir orientam você na configuração:
-
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
Você precisa configurar as credenciais da Amazon Web Services no seu dispositivo SDK para executar o 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 IAM função e anexe políticas.
O Neo precisa acessar seu bucket URI S3. Crie uma IAM função que possa ser executada SageMaker e tenha permissão para acessar o S3URI. Você pode criar uma IAM função usando SDK para Python (Boto3), o console ou o. AWS CLI O exemplo a seguir ilustra como criar uma IAM função usando 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 IAM função com o console ou por meio do AWS API, consulte Criação de um IAM usuário em sua AWS conta. AWS CLI
Crie um dicionário descrevendo a IAM política que você está anexando. Essa política é usada para criar uma nova IAM função.
policy = { 'Statement': [ { 'Action': 'sts:AssumeRole', 'Effect': 'Allow', 'Principal': {'Service': 'sagemaker.amazonaws.com'}, }], 'Version': '2012-10-17' }
Crie uma nova IAM função 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 Amazon Resource Name (ARN) ao 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. Opcionalmente, você pode carregar seu modelo treinado localmente diretamente em um bucket do Amazon URI 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 COCOconjuntode dados. 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.