

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

# Solucionar erros
<a name="neo-troubleshooting"></a>

Esta seção contém informações sobre como entender e evitar erros comuns, as mensagens de erro que eles geram e orientações sobre como resolver esses erros. Antes de prosseguir, pergunte-se:

 **Você encontrou um erro antes de implantar seu modelo?** Se sim, [Solucionar erros de compilação do Neo](https://docs.aws.amazon.com/sagemaker/latest/dg/neo-troubleshooting-compilation.html). 

 **Você encontrou um erro depois de compilar seu modelo?** Se sim, consulte [Solucionar erros de inferência do Neo](https://docs.aws.amazon.com/sagemaker/latest/dg/neo-troubleshooting-inference.html). 

**Você encontrou um erro ao tentar compilar seu modelo para dispositivos Ambarella?** Se sim, veja [Solucionar erros Ambarella](neo-troubleshooting-target-devices-ambarella.md).

## Tipos de classificação de erros
<a name="neo-error-messages"></a>

Essa lista classifica os *erros de usuários* que você pode receber do Neo. Isso inclui erros de acesso e permissão e erros de carregamento para cada uma das estruturas com suporte. Todos os outros erros são *erros do sistema*.

### Erro de permissão do cliente
<a name="neo-error-client-permission"></a>

 O Neo transmite os erros para esses dados diretamente do serviço dependente. 
+ *Acesso negado* ao chamar sts: AssumeRole
+ Qualquer erro *400* ao chamar o S3 para fazer download ou upload de um modelo de cliente.
+ Erro *PassRole*

### Erro de carregamento
<a name="collapsible-section-2"></a>

Supondo que o compilador do Neo tenha carregado com êxito um .tar.gz do Amazon S3, verifique se o tarball contém os arquivos necessários para a compilação. Os critérios de verificação são específicos da estrutura: 
+ **TensorFlow**: Espera somente o arquivo protobuf (\$1.pb ou \$1.pbtxt). Para modelos salvos, espera uma pasta de variáveis. 
+ **Pytorch**: Espera apenas um arquivo pytorch (\$1.pth).
+ **MXNET**: Espera apenas um arquivo de símbolos (\$1.json) e um arquivo de parâmetros (\$1.params).
+ **XGBoost**: Espere apenas um arquivo de XGBoost modelo (\$1.model). O modelo de entrada tem limitação de tamanho.

### Erros de compilação
<a name="neo-error-compilation"></a>

Supondo que o compilador Neo tenha carregado com sucesso o arquivo .tar.gz de Amazon S3 e que o tarball contenha arquivos necessários para compilação. O critério de verificação é: 
+ **OperatorNotImplemented**: Um operador não foi implementado.
+ **OperatorAttributeNotImplemented**: o atributo no operador especificado não foi implementado. 
+ **OperatorAttributeRequired**: é necessário um atributo para um gráfico de símbolos interno, mas ele não está listado no gráfico do modelo de entrada do usuário. 
+ **OperatorAttributeValueNotValid**: o valor do atributo no operador específico não é válido. 

**Topics**
+ [Tipos de classificação de erros](#neo-error-messages)
+ [Solucionar erros de compilação do Neo](neo-troubleshooting-compilation.md)
+ [Solucione erros de inferência do Neo.](neo-troubleshooting-inference.md)
+ [Solucionar erros Ambarella](neo-troubleshooting-target-devices-ambarella.md)

# Solucionar erros de compilação do Neo
<a name="neo-troubleshooting-compilation"></a>

Esta seção contém informações sobre como entender e evitar erros comuns de compilação, as mensagens de erro que eles geram e orientações sobre como resolver esses erros. 

**Topics**
+ [Como usar esta página](#neo-troubleshooting-compilation-how-to-use)
+ [Erros relacionados à estrutura](#neo-troubleshooting-compilation-framework-related-errors)
+ [Erros relacionados à infraestrutura](#neo-troubleshooting-compilation-infrastructure-errors)
+ [Verifique seu registro de compilação](#neo-troubleshooting-compilation-logs)

## Como usar esta página
<a name="neo-troubleshooting-compilation-how-to-use"></a>

Tente resolver seu erro percorrendo essas seções na seguinte ordem:

1. Verifique se a entrada do seu trabalho de compilação satisfaz os requisitos de entrada. Consulte [Quais formatos de dados de entrada o SageMaker Neo espera?](neo-compilation-preparing-model.md#neo-job-compilation-expected-inputs)

1.  Verifique erros comuns [específicos da estrutura](https://docs.aws.amazon.com/sagemaker/latest/dg/neo-troubleshooting-compilation.html#neo-troubleshooting-compilation-framework-related-errors). 

1.  Verifique se seu erro é um [erro de infraestrutura](https://docs.aws.amazon.com/sagemaker/latest/dg/neo-troubleshooting-compilation.html#neo-troubleshooting-compilation-infrastructure-errors). 

1. Verifique seu [registro de compilação](https://docs.aws.amazon.com/sagemaker/latest/dg/neo-troubleshooting-compilation.html#neo-troubleshooting-compilation-logs).

## Erros relacionados à estrutura
<a name="neo-troubleshooting-compilation-framework-related-errors"></a>

### Keras
<a name="neo-troubleshooting-compilation-framework-related-errors-keras"></a>


| Erro | Solução | 
| --- | --- | 
|   `InputConfiguration: No h5 file provided in <model path>`   |   Verifique se o seu arquivo h5 está no URI do Amazon S3 que você especificou.  *Ou* Verifique se o [arquivo h5 está formatado corretamente](https://www.tensorflow.org/guide/keras/save_and_serialize#keras_h5_format).   | 
|   `InputConfiguration: Multiple h5 files provided, <model path>, when only one is allowed`   |  Verifique se você está fornecendo apenas um arquivo`h5`.  | 
|   `ClientError: InputConfiguration: Unable to load provided Keras model. Error: 'sample_weight_mode'`   |  Verifique se a versão do Keras especificada é compatível. Veja, estruturas compatíveis para [instâncias de nuvem](https://docs.aws.amazon.com/sagemaker/latest/dg/neo-supported-cloud.html) e [dispositivos periféricos](https://docs.aws.amazon.com/sagemaker/latest/dg/neo-supported-devices-edge.html).   | 
|   `ClientError: InputConfiguration: Input input has wrong shape in Input Shape dictionary. Input shapes should be provided in NCHW format. `   |   Verifique se a entrada do modelo segue o formato NCHW. Consulte [Quais formatos de dados de entrada o SageMaker Neo espera?](https://docs.aws.amazon.com/sagemaker/latest/dg/neo-job-compilation.html#neo-job-compilation-expected-inputs)   | 

### MXNet
<a name="neo-troubleshooting-compilation-framework-related-errors-mxnet"></a>


| Erro | Solução | 
| --- | --- | 
|   `ClientError: InputConfiguration: Only one parameter file is allowed for MXNet model. Please make sure the framework you select is correct.`   |   SageMaker O Neo selecionará o primeiro arquivo de parâmetros fornecido para compilação.   | 

### TensorFlow
<a name="neo-troubleshooting-compilation-framework-related-errors-tensorflow"></a>


| Erro | Solução | 
| --- | --- | 
|   `InputConfiguration: Exactly one .pb file is allowed for TensorFlow models.`   |  Certifique-se de fornecer apenas um arquivo .pb ou .pbtxt.  | 
|  `InputConfiguration: Exactly one .pb or .pbtxt file is allowed for TensorFlow models.`  |  Certifique-se de fornecer apenas um arquivo .pb ou .pbtxt.  | 
|   ` ClientError: InputConfiguration: TVM cannot convert <model zoo> model. Please make sure the framework you selected is correct. The following operators are not implemented: {<operator name>} `   |   Verifique se a operadora que você escolheu é compatível. Consulte [Estruturas e operadores suportados pelo SageMaker Neo](https://aws.amazon.com/releasenotes/sagemaker-neo-supported-frameworks-and-operators/).   | 

### PyTorch
<a name="neo-troubleshooting-compilation-framework-related-errors-pytorch"></a>


| Erro | Solução | 
| --- | --- | 
|   `InputConfiguration: We are unable to extract DataInputConfig from the model due to input_config_derivation_error. Please override by providing a DataInputConfig during compilation job creation.`  |  Realize um dos procedimentos a seguir: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/neo-troubleshooting-compilation.html)  | 

## Erros relacionados à infraestrutura
<a name="neo-troubleshooting-compilation-infrastructure-errors"></a>


| Erro | Solução | 
| --- | --- | 
|   `ClientError: InputConfiguration: S3 object does not exist. Bucket: <bucket>, Key: <bucket key>`   |  Verifique o URI do Amazon S3 que você forneceu.  | 
|   ` ClientError: InputConfiguration: Bucket <bucket name> is in region <region name> which is different from AWS Sagemaker service region <service region> `   |   Crie um bucket do Amazon S3 que esteja na mesma região do serviço.   | 
|   ` ClientError: InputConfiguration: Unable to untar input model. Please confirm the model is a tar.gz file `   |   Verifique se seu modelo no Amazon S3 está compactado em um arquivo `tar.gz`.   | 

## Verifique seu registro de compilação
<a name="neo-troubleshooting-compilation-logs"></a>

1. Navegue até a Amazon CloudWatch em [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Selecione a região na qual você criou o trabalho de compilação na lista suspensa **Região** no canto superior direito.

1. No painel de navegação da Amazon CloudWatch, escolha **Logs**. Selecione **Grupo de logs**.

1. Pesquise o grupo de logs chamado `/aws/sagemaker/CompilationJobs`. Selecione o grupo de logs .

1. Pesquise o fluxo de registros com o nome do trabalho de compilação. Selecione o stream de logs.

# Solucione erros de inferência do Neo.
<a name="neo-troubleshooting-inference"></a>

Esta seção contém informações sobre como evitar e resolver alguns dos erros comuns que você pode encontrar ao implantar e and/or invocar o endpoint. Esta seção se aplica à **PyTorch versão 1.4.0 ou posterior** e à **MXNetv1.7.0** ou posterior. 
+ Certifique-se de que a primeira inferência (inferência de aquecimento) em um dado de entrada válido seja feita em `model_fn()`, se você definiu a `model_fn` em seu script de inferência, caso contrário, a seguinte mensagem de erro poderá ser vista no terminal quando [https://sagemaker.readthedocs.io/en/stable/api/inference/predictors.html#sagemaker.predictor.Predictor.predict](https://sagemaker.readthedocs.io/en/stable/api/inference/predictors.html#sagemaker.predictor.Predictor.predict) for chamada: 

  ```
  An error occurred (ModelError) when calling the InvokeEndpoint operation: Received server error (0) from <users-sagemaker-endpoint> with message "Your invocation timed out while waiting for a response from container model. Review the latency metrics for each container in Amazon CloudWatch, resolve the issue, and try again."                
  ```
+ Certifique-se de que as variáveis ​​de ambiente na tabela a seguir estão definidas. Se não estiverem definidas, a seguinte mensagem de erro poderá aparecer: 

  **No terminal:**

  ```
  An error occurred (ModelError) when calling the InvokeEndpoint operation: Received server error (503) from <users-sagemaker-endpoint> with message "{ "code": 503, "type": "InternalServerException", "message": "Prediction failed" } ".
  ```

  **Em CloudWatch:**

  ```
  W-9001-model-stdout com.amazonaws.ml.mms.wlm.WorkerLifeCycle - AttributeError: 'NoneType' object has no attribute 'transform'
  ```    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/neo-troubleshooting-inference.html)
+ Certifique-se de que a variável de `MMS_DEFAULT_RESPONSE_TIMEOUT` ambiente esteja definida como 500 ou um valor maior ao criar o modelo Amazon SageMaker AI; caso contrário, a seguinte mensagem de erro poderá ser vista no terminal: 

  ```
  An error occurred (ModelError) when calling the InvokeEndpoint operation: Received server error (0) from <users-sagemaker-endpoint> with message "Your invocation timed out while waiting for a response from container model. Review the latency metrics for each container in Amazon CloudWatch, resolve the issue, and try again."
  ```

# Solucionar erros Ambarella
<a name="neo-troubleshooting-target-devices-ambarella"></a>

SageMaker O Neo exige que os modelos sejam empacotados em um arquivo TAR compactado ()`*.tar.gz`. Os dispositivos Ambarella exigem que arquivos adicionais sejam incluídos no arquivo TAR compactado antes que ele seja enviado para compilação. Inclua os seguintes arquivos em seu arquivo TAR comprimido se quiser compilar um modelo para destinos Ambarella com o Neo: SageMaker 
+ Um modelo treinado usando uma estrutura suportada pelo SageMaker Neo 
+ Um arquivo de configuração JSON
+ Imagens de calibração

Por exemplo, o conteúdo do seu arquivo TAR compactado será semelhante ao seguinte exemplo:

```
├──amba_config.json
├──calib_data
|    ├── data1
|    ├── data2
|    ├── .
|    ├── .
|    ├── .
|    └── data500
└──mobilenet_v1_1.0_0224_frozen.pb
```

O diretório é configurado da seguinte forma:
+ `amba_config.json`: Arquivo de configuração
+ `calib_data`: Pasta contendo imagens de calibração
+ `mobilenet_v1_1.0_0224_frozen.pb`: TensorFlow modelo salvo como um gráfico congelado

Para obter informações sobre estruturas suportadas pelo SageMaker Neo, consulte[Estruturas compatíveis](neo-supported-devices-edge-frameworks.md).

## Configurando o arquivo de configuração
<a name="neo-troubleshooting-target-devices-ambarella-config"></a>

O arquivo de configuração fornece as informações exigidas pela cadeia de ferramentas Ambarella para compilar o modelo. O arquivo de configuração deve ser salvo como um arquivo JSON e o nome do arquivo deve terminar com `*config.json`. O gráfico a seguir mostra o conteúdo do arquivo de configuração.


| Chave | Description | Exemplo | 
| --- | --- | --- | 
| inputs | Dicionário camadas entradas de mapa para atributo. | <pre>{inputs:{"data":{...},"data1":{...}}}</pre> | 
| “data” | Nome da camada de entrada. Nota: “data” é um exemplo do nome que você pode usar para rotular a camada de entrada. | “data” | 
| formato | Descreve a forma da entrada para o modelo. Isso segue as mesmas convenções que SageMaker o Neo usa. | “forma”: “1,3,224.224" | 
| filePath | Caminho relativo para o diretório contendo imagens de calibração. Eles podem ser arquivos binários ou de imagem, como JPG ou PNG. | “caminho do arquivo”: “calib\$1data/” | 
| colorformat | Formato de cor que o modelo espera. Isso será usado ao converter imagens em binário. Valores suportados: [RGB, BGR]. O padrão é RGB. | "colorformat":"RGB" | 
| médio | Valor médio a ser subtraído da entrada. Pode ser um valor único ou uma lista de valores. Quando a média é fornecida como uma lista, o número de entradas deve corresponder à dimensão do canal da entrada. | “média”: 128,0 | 
| escalar | Valor da escala a ser usado para normalizar a entrada. Pode ser um valor único ou uma lista de valores. Quando a escala é fornecida como uma lista, o número de entradas deve corresponder à dimensão do canal da entrada. | “escala”: 255,0 | 

O exemplo a seguir é um arquivo de configuração de amostra: 

```
{
    "inputs": {
        "data": {
                "shape": "1, 3, 224, 224",
                "filepath": "calib_data/",
                "colorformat": "RGB",
                "mean":[128,128,128],
                "scale":[128.0,128.0,128.0]
        }
    }
}
```

## Imagens de calibração
<a name="neo-troubleshooting-target-devices-ambarella-calibration-images"></a>

Quantize seu modelo treinado fornecendo imagens de calibração. Quantizar seu modelo melhora o desempenho do CVFlow motor em um sistema Ambarella em um chip (SoC). O conjunto de ferramentas Ambarella usa as imagens de calibração para determinar como cada camada no modelo deve ser quantizada para obter desempenho e precisão ideais. Cada camada é quantizada independentemente dos INT16 formatos INT8 ou formatos. O modelo final tem uma mistura INT8 e INT16 camadas após a quantização.

**Quantas imagens você deve usar?**

É recomendável incluir entre 100 e 200 imagens que representem os tipos de cenas que o modelo deve manipular. O tempo de compilação do modelo aumenta linearmente com o número de imagens de calibração no arquivo de entrada.

**Quais são os formatos de imagem recomendados?**

As imagens de calibração podem estar em um formato binário bruto ou em formatos de imagem como JPG e PNG.

Sua pasta de calibração pode conter uma mistura de imagens e arquivos binários. Se a pasta de calibração contiver imagens e arquivos binários, o conjunto de ferramentas primeiro converterá as imagens em arquivos binários. Quando a conversão é concluída, ela usa os arquivos binários recém-gerados junto com os arquivos binários que estavam originalmente na pasta.

**Posso converter as imagens em formato binário primeiro?**

Sim. Você pode converter as imagens para o formato binário com pacotes de código aberto, como [OpenCV](https://opencv.org/) ou [PIL.](https://python-pillow.org/) Corte e redimensione as imagens para que elas satisfaçam a camada de entrada do seu modelo treinado.



## Média e escala
<a name="neo-troubleshooting-target-devices-ambarella-mean-scale"></a>

Você pode especificar as opções de pré-processamento médio e de escala para o conjunto de ferramentas Amberalla. Essas operações são incorporadas à rede e aplicadas durante a inferência em cada entrada. Não forneça dados processados se você especificar a média ou a escala. Mais especificamente, não forneça dados dos quais você tenha subtraído a média ou aplicado a escala.

## Verifique seu registro de compilação
<a name="neo-troubleshooting-target-devices-ambarella-compilation"></a>

Para obter informações sobre como verificar o registro de compilação de dispositivos Ambarella, consulte [Verifique seu registro de compilação](neo-troubleshooting-compilation.md#neo-troubleshooting-compilation-logs).