Solução de problemas de inferência de aprendizado de máquina - AWS IoT Greengrass

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á.

Solução de problemas de inferência de aprendizado de máquina

Use as informações e soluções de solução de problemas nesta seção para ajudar a resolver problemas com seus componentes de aprendizado de máquina. Para os componentes públicos de inferência de aprendizado de máquina, consulte as mensagens de erro nos seguintes registros de componentes:

Linux or Unix
  • /greengrass/v2/logs/aws.greengrass.DLRImageClassification.log

  • /greengrass/v2/logs/aws.greengrass.DLRObjectDetection.log

  • /greengrass/v2/logs/aws.greengrass.TensorFlowLiteImageClassification.log

  • /greengrass/v2/logs/aws.greengrass.TensorFlowLiteObjectDetection.log

Windows
  • C:\greengrass\v2\logs\aws.greengrass.DLRImageClassification.log

  • C:\greengrass\v2\logs\aws.greengrass.DLRObjectDetection.log

  • C:\greengrass\v2\logs\aws.greengrass.TensorFlowLiteImageClassification.log

  • C:\greengrass\v2\logs\aws.greengrass.TensorFlowLiteObjectDetection.log

Se um componente for instalado corretamente, o registro do componente conterá a localização da biblioteca que ele usa para inferência.

Falha ao buscar a biblioteca

O erro a seguir ocorre quando o script do instalador não consegue baixar uma biblioteca necessária durante a implantação em um dispositivo Raspberry Pi.

Err:2 http://raspbian.raspberrypi.org/raspbian buster/main armhf python3.7-dev armhf 3.7.3-2+deb10u1 404 Not Found [IP: 93.93.128.193 80] E: Failed to fetch http://raspbian.raspberrypi.org/raspbian/pool/main/p/python3.7/libpython3.7-dev_3.7.3-2+deb10u1_armhf.deb 404 Not Found [IP: 93.93.128.193 80]

Execute sudo apt-get update e implante seu componente novamente.

Cannot open shared object file

Você pode ver erros semelhantes aos seguintes quando o script do instalador não consegue baixar uma dependência necessária opencv-python durante a implantação em um dispositivo Raspberry Pi.

ImportError: libopenjp2.so.7: cannot open shared object file: No such file or directory

Execute o comando a seguir para instalar manualmente as dependências paraopencv-python:

sudo apt-get install libopenjp2-7 libilmbase23 libopenexr-dev libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libgtk-3-0 libwebp-dev

Error: ModuleNotFoundError: No module named '<library>'

Talvez você veja esse erro nos registros do componente de tempo de execução de ML (variant.DLR.logouvariant.TensorFlowLite.log) quando a biblioteca de tempo de execução de ML ou suas dependências não estiverem instaladas corretamente. Esse erro pode ocorrer nos seguintes casos:

  • Se você usar a UseInstaller opção, que é ativada por padrão, esse erro indica que o componente de tempo de execução de ML falhou ao instalar o tempo de execução ou suas dependências. Faça o seguinte:

    1. Configure o componente de tempo de execução de ML para desativar a UseInstaller opção.

    2. Instale o tempo de execução do ML e suas dependências e disponibilize-os para o usuário do sistema que executa os componentes do ML. Para ver mais informações, consulte:

  • Se você não usar a UseInstaller opção, esse erro indica que o tempo de execução do ML ou suas dependências não estão instalados para o usuário do sistema que executa os componentes do ML. Faça o seguinte:

    1. Verifique se a biblioteca está instalada para o usuário do sistema que executa os componentes de ML. Substitua ggc_user pelo nome do usuário do sistema e substitua tflite_runtime pelo nome da biblioteca a ser verificada.

      Linux or Unix
      sudo -H -u ggc_user bash -c "python3 -c 'import tflite_runtime'"
      Windows
      runas /user:ggc_user "py -3 -c \"import tflite_runtime\""
    2. Se a biblioteca não estiver instalada, instale-a para esse usuário. Substitua ggc_user pelo nome do usuário do sistema e substitua tflite_runtime pelo nome da biblioteca.

      Linux or Unix
      sudo -H -u ggc_user bash -c "python3 -m pip install --user tflite_runtime"
      Windows
      runas /user:ggc_user "py -3 -m pip install --user tflite_runtime"

      Para obter mais informações sobre as dependências de cada tempo de execução de ML, consulte o seguinte:

    3. Se o problema persistir, instale a biblioteca para outro usuário para confirmar se esse dispositivo pode instalar a biblioteca. O usuário pode ser, por exemplo, seu usuário, o usuário root ou um usuário administrador. Se você não conseguir instalar a biblioteca com êxito para nenhum usuário, talvez seu dispositivo não seja compatível com a biblioteca. Consulte a documentação da biblioteca para analisar os requisitos e solucionar problemas de instalação.

Nenhum dispositivo compatível com CUDA foi detectado

Você pode ver o erro a seguir ao usar a aceleração de GPU. Execute o comando a seguir para habilitar o acesso à GPU para o usuário do Greengrass.

sudo usermod -a -G video ggc_user

Esse arquivo ou diretório não existe

Os erros a seguir indicam que o componente de tempo de execução não conseguiu configurar o ambiente virtual corretamente:

  • MLRootPath/greengrass_ml_dlr_conda/bin/conda: No such file or directory

  • MLRootPath/greengrass_ml_dlr_venv/bin/activate: No such file or directory

  • MLRootPath/greengrass_ml_tflite_conda/bin/conda: No such file or directory

  • MLRootPath/greengrass_ml_tflite_venv/bin/activate: No such file or directory

Verifique os registros para se certificar de que todas as dependências de tempo de execução foram instaladas corretamente. Para obter mais informações sobre as bibliotecas instaladas pelo script do instalador, consulte os tópicos a seguir:

Por padrão, o ML RootPath está definido como/greengrass/v2/work/component-name/greengrass_ml. Para alterar esse local, inclua o componente Tempo de execução do DLR ou TensorFlow Tempo de execução leve runtime diretamente em sua implantação e especifique um valor modificado para o MLRootPath parâmetro em uma atualização de mesclagem de configuração. Para obter mais informações sobre a configuração do componente, consulteAtualizar configurações de componentes.

nota

Para o componente DLR v1.3.x, você define o MLRootPath parâmetro na configuração do componente de inferência e o valor padrão é. $HOME/greengrass_ml

RuntimeError: module compiled against API version 0xf but this version of NumPy is <version>

Você pode ver os seguintes erros ao executar a inferência de aprendizado de máquina em um Raspberry Pi executando o Raspberry Pi OS Bullseye.

RuntimeError: module compiled against API version 0xf but this version of numpy is 0xd ImportError: numpy.core.multiarray failed to import

Esse erro ocorre porque o Raspberry Pi OS Bullseye inclui uma versão anterior à versão exigida pelo NumPy OpenCV. Para corrigir esse problema, execute o comando a seguir para atualizar NumPy para a versão mais recente.

pip3 install --upgrade numpy

picamera.exc.PiCameraError: Camera is not enabled

Você pode ver o seguinte erro ao executar a inferência de aprendizado de máquina em um Raspberry Pi executando o Raspberry Pi OS Bullseye.

picamera.exc.PiCameraError: Camera is not enabled. Try running 'sudo raspi-config' and ensure that the camera has been enabled.

Esse erro ocorre porque o Raspberry Pi OS Bullseye inclui uma nova pilha de câmeras que não é compatível com os componentes de ML. Para corrigir esse problema, ative a pilha de câmeras antiga.

Para habilitar a pilha de câmeras antiga
  1. Execute o comando a seguir para abrir a ferramenta de configuração do Raspberry Pi.

    sudo raspi-config
  2. Selecione Opções de interface.

  3. Selecione Câmera antiga para ativar a pilha de câmeras antigas.

  4. Reinicie o Raspberry Pi.

Erros de memória

Os erros a seguir geralmente ocorrem quando o dispositivo não tem memória suficiente e o processo do componente é interrompido.

  • stderr. Killed.

  • exitCode=137

Recomendamos um mínimo de 500 MB de memória para implantar um componente público de inferência de aprendizado de máquina.

Erros de espaço em disco

O no space left on device erro geralmente ocorre quando um dispositivo não tem armazenamento suficiente. Verifique se há espaço em disco suficiente disponível em seu dispositivo antes de implantar o componente novamente. Recomendamos um mínimo de 500 MB de espaço livre em disco para implantar um componente público de inferência de aprendizado de máquina.

Erros de tempo limite

Os componentes públicos de aprendizado de máquina baixam grandes arquivos de modelo de aprendizado de máquina com mais de 200 MB. Se o download expirar durante a implantação, verifique a velocidade da sua conexão com a Internet e tente implantar novamente.