AWS IoT Greengrass Version 1 entrou na fase de vida útil prolongada em 30 de junho de 2023. Para obter mais informações, consulte política de manutenção do AWS IoT Greengrass V1. Após essa data, AWS IoT Greengrass V1 não lançaremos atualizações que forneçam recursos, aprimoramentos, correções de erros ou patches de segurança. Os dispositivos que funcionam AWS IoT Greengrass V1 não serão interrompidos e continuarão operando e se conectando à nuvem. É altamente recomendável que você migre para AWS IoT Greengrass Version 2, o que adiciona novos recursos significativos e suporte para plataformas adicionais.
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á.
Opcional: configurar o dispositivo para qualificação de ML
O IDT do AWS IoT Greengrass fornece testes de qualificação de machine learning (ML) para validar se os dispositivos podem realizar inferências de ML localmente usando modelos treinados em nuvem.
Para executar testes de qualificação de ML, primeiro é preciso configurar os dispositivos conforme descrito em Configure seu dispositivo para executar testes de IDT. Depois, siga as etapas deste tópico para instalar dependências para as estruturas de ML que você deseja executar.
É necessária a versão 3.1.0 ou posterior do IDT para executar testes de qualificação de ML.
Instalar dependências de estrutura do ML
Todas as dependências de estrutura do ML devem ser instaladas no diretório /usr/local/lib/python3.x/site-packages
. Para certificar-se de que estão instaladas no diretório correto, é recomendado usar permissões raiz sudo
ao instalar as dependências. Os ambientes virtuais não oferecem suporte a testes de qualificação.
nota
Se você estiver testando funções do Lambda executadas com conteinerização (no modo de Contêiner do Greengrass, a criação de symlinks para bibliotecas Python em /usr/local/lib/python3.x
não é compatível. Para evitar erros, instale as dependências no diretório correto.
Siga as etapas para instalar as dependências na estrutura de destino:
Instalar dependências do Apache MxNet
Os testes de qualificação do IDT para esta estrutura têm as seguintes dependências:
-
Python 3.6 ou Python 3.7.
nota
Se estiver usando Python 3.6, você deve criar um symblink de Python 3.7 para binários Python 3.6. Isso configura seu dispositivo para atender ao requisito Python para AWS IoT Greengrass. Por exemplo:
sudo ln -s
path-to-python-3.6
/python3.6path-to-python-3.7
/python3.7 -
Apache MXNet v1.2.1 ou posterior.
-
NumPy. A versão deve ser compatível com a sua versão do MXNet.
Instalar o MXNet
Siga as instruções na documentação do MXNet para instalar o MXNet
nota
Se o Python 2.x e o Python 3.x estiverem instalados no seu dispositivo, use o Python 3.x nos comandos executados para instalar as dependências.
Validar a instalação do MXNet
Selecione uma das opções a seguir para validar a instalação do MXNet.
Opção 1: usar SSH para o seu dispositivo e executar scripts
-
SSH para o seu dispositivo.
-
Execute o script a seguir para verificar se as dependências estão instaladas corretamente.
sudo python3.7 -c "import mxnet; print(mxnet.__version__)"
sudo python3.7 -c "import numpy; print(numpy.__version__)"
A saída imprime o número da versão e o script deve sair sem erro.
Opção 2: executar o teste de dependência de IDT
-
Certifique-se de que
device.json
esteja configurado para qualificação de ML. Para obter mais informações, consulte Configurar device.json para qualificação de ML. -
Execute o teste de dependências para a estrutura.
devicetester_
[linux | mac | win_x86-64]
run-suite --group-id mldependencies --test-id mxnet_dependency_checkO resumo do teste exibe um resultado
PASSED
paramldependencies
.
Instalar dependências do TensorFlow
Os testes de qualificação do IDT para esta estrutura têm as seguintes dependências:
-
Python 3.6 ou Python 3.7.
nota
Se estiver usando Python 3.6, você deve criar um symblink de Python 3.7 para binários Python 3.6. Isso configura seu dispositivo para atender ao requisito Python para AWS IoT Greengrass. Por exemplo:
sudo ln -s
path-to-python-3.6
/python3.6path-to-python-3.7
/python3.7 -
TensorFlow 1.x.
Como instalar o TensorFlow
Siga as instruções na documentação do TensorFlow para instalar o TensorFlow 1.x com pip
nota
Se o Python 2.x e o Python 3.x estiverem instalados no seu dispositivo, use o Python 3.x nos comandos executados para instalar as dependências.
Validar a instalação do TensorFlow
Selecione uma das seguintes opções para validar a instalação do TensorFlow.
Opção 1: usar SSH para o seu dispositivo e executar um script
-
SSH para o seu dispositivo.
-
Execute o script a seguir para verificar se a dependência está instalada corretamente.
sudo python3.7 -c "import tensorflow; print(tensorflow.__version__)"
A saída imprime o número da versão e o script deve sair sem erro.
Opção 2: executar o teste de dependência de IDT
-
Certifique-se de que
device.json
esteja configurado para qualificação de ML. Para obter mais informações, consulte Configurar device.json para qualificação de ML. -
Execute o teste de dependências para a estrutura.
devicetester_
[linux | mac | win_x86-64]
run-suite --group-id mldependencies --test-id tensorflow_dependency_checkO resumo do teste exibe um resultado
PASSED
paramldependencies
.
Instalar dependências de runtime de aprendizado profundo (DLR) do Amazon SageMaker Neo
Os testes de qualificação do IDT para esta estrutura têm as seguintes dependências:
-
Python 3.6 ou Python 3.7.
nota
Se estiver usando Python 3.6, você deve criar um symblink de Python 3.7 para binários Python 3.6. Isso configura seu dispositivo para atender ao requisito Python para AWS IoT Greengrass. Por exemplo:
sudo ln -s
path-to-python-3.6
/python3.6path-to-python-3.7
/python3.7 -
DLR do SageMaker Neo.
-
numpy.
Depois de instalar as dependências de teste do DLR, é preciso compilar o modelo.
Instalar o DLR
Siga as instruções na documentação do DLR para instalar o Neo DLR
nota
Se o Python 2.x e o Python 3.x estiverem instalados no seu dispositivo, use o Python 3.x nos comandos executados para instalar as dependências.
Validar a instalação do DLR
Selecione uma das opções a seguir para validar a instalação do DLR.
Opção 1: usar SSH para o seu dispositivo e executar scripts
-
SSH para o seu dispositivo.
-
Execute o script a seguir para verificar se as dependências estão instaladas corretamente.
sudo python3.7 -c "import dlr; print(dlr.__version__)"
sudo python3.7 -c "import numpy; print(numpy.__version__)"
A saída imprime o número da versão e o script deve sair sem erro.
Opção 2: executar o teste de dependência de IDT
-
Certifique-se de que
device.json
esteja configurado para qualificação de ML. Para obter mais informações, consulte Configurar device.json para qualificação de ML. -
Execute o teste de dependências para a estrutura.
devicetester_
[linux | mac | win_x86-64]
run-suite --group-id mldependencies --test-id dlr_dependency_checkO resumo do teste exibe um resultado
PASSED
paramldependencies
.
Compilar o modelo de DLR
Você deve compilar o modelo de DLR antes de usá-lo para testes de qualificação de ML. Selecione uma das seguintes opções para saber mais detalhes:
Opção 1: use o Amazon SageMaker para compilar o modelo
Siga estas etapas para usar o SageMaker para compilar o modelo de ML fornecido pelo IDT. Este modelo é pré-treinado com Apache MXNet.
-
Verifique se o dispositivo é compatível com o SageMaker. Para obter mais informações, consulte as opções do dispositivo de destino na Referência de API do Amazon SageMaker. Se, no momento, o seu tipo de dispositivo não for compatível com o SageMaker, siga as etapas em Opção 2: usar o TVM para compilar o modelo de DLR.
nota
A execução do teste de DLR com um modelo compilado pelo SageMaker pode demorar 4 ou 5 minutos. Não interrompa o IDT durante esse período.
-
Faça download do arquivo tarball que contém o modelo MXNet pré-treinado e não compilado para DLR:
-
Descompacte o tarball. Esse comando gera a seguinte estrutura de diretório.
-
Mova o arquivo
synset.txt
do diretórioresnet18
para outro local. Anote o novo local. Posteriormente, copie este arquivo para o diretório do modelo compilado. -
Compacte o conteúdo do diretório
resnet18
.tar cvfz model.tar.gz resnet18v1-symbol.json resnet18v1-0000.params
-
Faça upload do arquivo compactado para um bucket do Amazon S3 em sua Conta da AWS e siga as etapas em Compile um modelo (console) para criar um trabalho de compilação.
-
Em Configuração de entrada, use os seguintes valores:
-
Em Configuração de dados de entrada, digite
{"data": [1, 3, 224, 224]}
. -
Em Estrutura de machine learning, selecione
MXNet
.
-
-
Em Configuração de saída, use os seguintes valores:
-
Em Local de saída do S3, insira o caminho para o bucket do Amazon S3 ou a pasta onde deseja armazenar o modelo compilado.
-
Em Dispositivo de destino, selecione o tipo de dispositivo.
-
-
-
Faça download do modelo compilado do local de saída especificado e descompacte o arquivo.
-
Copie
synset.txt
para o diretório do modelo compilado. -
Altere o nome do diretório do modelo compilado para
resnet18
.O diretório do modelo compilado deve ter a seguinte estrutura de diretório.
Opção 2: usar o TVM para compilar o modelo de DLR
Siga estas etapas para usar o TVM para compilar o modelo de ML fornecido pelo IDT. Este modelo é pré-treinado com o Apache MXNet, portanto, é necessário instalar o MXNet no computador ou dispositivo onde o modelo será compilado. Para instalar o MxNet, siga as instruções na documentação do MxNet
nota
Recomendamos que você compile o modelo no dispositivo de destino. Essa prática é opcional, mas pode ajudar a garantir a compatibilidade e mitigar possíveis problemas.
-
Faça download do arquivo tarball que contém o modelo MXNet pré-treinado e não compilado para DLR:
-
Descompacte o tarball. Esse comando gera a seguinte estrutura de diretório.
-
Siga as instruções na documentação do TVM para criar e instalar o TVM da origem para a sua plataforma
. -
Depois de criar o TVM, execute a compilação do TVM para o modelo resnet18. As etapas a seguir são baseadas no Quick Start Tutorial for Compiling Deep Learning Models
na documentação do TVM. -
Abra o arquivo
relay_quick_start.py
a partir do repositório do TVM clonado. -
Atualize o código que define uma rede neural em retransmissão
. Você pode usar uma das opções a seguir: -
Opção 1: usar
mxnet.gluon.model_zoo.vision.get_model
para obter o módulo e os parâmetros de retransmissão:from mxnet.gluon.model_zoo.vision import get_model block = get_model('resnet18_v1', pretrained=True) mod, params = relay.frontend.from_mxnet(block, {"data": data_shape})
-
Opção 2: copiar os seguintes arquivos do modelo não compilado que você baixou na etapa 1 para o mesmo diretório que o arquivo
relay_quick_start.py
. Esses arquivos contêm o módulo e os parâmetros de retransmissão.-
resnet18v1-symbol.json
-
resnet18v1-0000.params
-
-
-
Atualize o código que salva e carrega o módulo compilado
para usar o código a seguir. from tvm.contrib import util path_lib = "deploy_lib.so" # Export the model library based on your device architecture lib.export_library("deploy_lib.so", cc="aarch64-linux-gnu-g++") with open("deploy_graph.json", "w") as fo: fo.write(graph) with open("deploy_param.params", "wb") as fo: fo.write(relay.save_param_dict(params))
-
Crie o modelo:
python3 tutorials/relay_quick_start.py --build-dir ./model
Este comando gera os seguintes arquivos.
-
deploy_graph.json
-
deploy_lib.so
-
deploy_param.params
-
-
-
Copie os arquivos de modelo gerados em um diretório chamado
resnet18
. Este é o diretório do modelo compilado. -
Copie o diretório do modelo compilado para o computador host. Depois, copie o arquivo
synset.txt
do modelo não compilado que você baixou na etapa 1 para o diretório do modelo compilado.O diretório do modelo compilado deve ter a seguinte estrutura de diretório.
Depois, configure as credenciais da AWS e o arquivo device.json.