

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

# Classificação de imagens - MXNet
<a name="image-classification"></a>

O algoritmo de classificação de SageMaker imagens da Amazon é um algoritmo de aprendizado supervisionado que oferece suporte à classificação de vários rótulos. Ele recebe uma imagem como entrada e gera um ou mais rótulos atribuídos a essa imagem. Ele usa uma rede neural convolucional que pode ser treinada do zero ou treinada com aprendizado de transferência quando um grande número de imagens de treinamento não está disponível. 

O formato de entrada recomendado para os algoritmos de classificação de imagens da Amazon SageMaker AI é o Apache MXNet [Recordio](https://mxnet.apache.org/api/faq/recordio). No entanto, você também pode usar imagens brutas nos formatos .jpg ou .png. Consulte [esta discussão](https://mxnet.apache.org/api/architecture/note_data_loading) para obter uma visão geral ampla da preparação e carregamento eficientes de dados para sistemas de machine learning. 

**nota**  
Para manter uma melhor interoperabilidade com as estruturas de aprendizado profundo existentes, isso difere dos formatos de dados protobuf comumente usados por outros algoritmos de IA da Amazon. SageMaker 

Para obter mais informações sobre as redes convolucionais, consulte: 
+ [Deep residual learning for image recognition (Deep residual learning para o reconhecimento de imagens)](https://arxiv.org/abs/1512.03385) Kaiming He, et al., 2016 IEEE Conference on Computer Vision and Pattern Recognition
+ [ImageNet banco de dados de imagens](http://www.image-net.org/)
+ [Classificação de imagens com Gluon-CV e MXNet](https://gluon-cv.mxnet.io/build/examples_classification/index.html)

**Topics**
+ [Interface de entrada/saída para o algoritmo de classificação de imagens](#IC-inputoutput)
+ [Recomendação de instâncias do EC2 para o algoritmo de Classificação de imagens](#IC-instances)
+ [Blocos de anotações de amostra de Classificação de imagens](#IC-sample-notebooks)
+ [Como funciona a classificação de imagens](IC-HowItWorks.md)
+ [Hiperparâmetros de Classificação de imagens](IC-Hyperparameter.md)
+ [Ajustar um modelo de classificação de imagens](IC-tuning.md)

## Interface de entrada/saída para o algoritmo de classificação de imagens
<a name="IC-inputoutput"></a>

O algoritmo SageMaker AI Image Classification oferece suporte aos tipos de conteúdo recordIO (`application/x-recordio`) e imagem (`image/png``image/jpeg`,, e`application/x-image`) para treinamento no modo de arquivo e suporta o tipo de conteúdo recordIO (`application/x-recordio`) para treinamento no modo pipe. No entanto, também é possível treinar no modo Pipe por meio de arquivos de imagem (`image/png`, `image/jpeg` e `application/x-image`), sem criar arquivos RecordIO, usando o formato de manifesto aumentado.

O treinamento distribuído é compatível com o modo de Arquivo e o modo de Pipe. Ao usar o tipo de conteúdo RecordIO no modo de Pipe, você deve definir o `S3DataDistributionType` de `S3DataSource` como `FullyReplicated`. O algoritmo oferece suporte para um modelo totalmente replicado em que seus dados são copiados em cada máquina.

O algoritmo oferece suporte para `image/png`, `image/jpeg` e `application/x-image` para inferência.

### Treinar com o formato RecordIO
<a name="IC-recordio-training"></a>

Se você usar o formato RecordIO para treinamento, especifique os canais `train` e `validation` como valores para o parâmetro `InputDataConfig` da solicitação [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html). Especifique um arquivo RecordIO (`.rec`) no canal `train` e um arquivo RecordIO no canal `validation`. Defina o tipo de conteúdo para ambos os canais como `application/x-recordio`. 

### Treinar com o formato de imagem
<a name="IC-image-training"></a>

Se você usar o formato de imagens para treinamento, especifique os canais `train`, `validation`, `train_lst` e `validation_lst` como valores para o parâmetro `InputDataConfig` da solicitação [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html). Especifique dados de imagem individuais (arquivos `.jpg` ou `.png`) para os canais `train` e `validation`. Especifique um arquivo `.lst` em cada um dos canais `train_lst` e `validation_lst`. Defina o tipo de conteúdo para os quatro canais como `application/x-image`. 

**nota**  
SageMaker A IA lê os dados de treinamento e validação separadamente de diferentes canais, então você deve armazenar os dados de treinamento e validação em pastas diferentes.

Um arquivo `.lst` é um arquivo separado por tabulação com três colunas que contém uma lista de arquivos de imagem. A primeira coluna especifica o índice de imagens; a segunda, o índice de rótulos de classe da imagem; e a terceira, o caminho relativo do arquivo de imagem. O índice de imagens na primeira coluna deve ser exclusivo em todas as imagens. O conjunto dos índices de rótulos de classe é numerado sucessivamente, e a numeração deve começar com 0. Por exemplo, 0 para a classe de cães, 1 para a classe de gatos, e assim por diante para as classes adicionais. 

 Este é um exemplo de um arquivo `.lst`: 

```
5      1   your_image_directory/train_img_dog1.jpg
1000   0   your_image_directory/train_img_cat1.jpg
22     1   your_image_directory/train_img_dog2.jpg
```

Por exemplo, se as imagens de treinamento estiverem armazenadas em `s3://<your_bucket>/train/class_dog`, `s3://<your_bucket>/train/class_cat` e assim por diante, especifique o caminho para o canal `train` como `s3://<your_bucket>/train`, que é o diretório de nível superior dos seus dados. No arquivo `.lst`, especifique o caminho relativo de um arquivo individual chamado `train_image_dog1.jpg` no diretório de classes `class_dog` como `class_dog/train_image_dog1.jpg`. Também é possível armazenar todos os seus arquivos de imagem em um subdiretório dentro do diretório `train`. Nesse caso, use esse subdiretório para o caminho relativo. Por exemplo, .`s3://<your_bucket>/train/your_image_directory` 

### Treinar com o formato de imagem de manifesto aumentado
<a name="IC-augmented-manifest-training"></a>

O formato de manifesto aumentado permite que você faça treinamentos no modo de Pipe usando arquivos de imagem, sem precisar criar arquivos RecordIO. Você precisa especificar ambos os canais de treinamento e de validação como valores para o parâmetro `InputDataConfig` da solicitação [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html). Ao usar esse formato, é necessário gerar um arquivo de manifesto do S3 contendo a lista de imagens e suas anotações correspondentes. O formato de arquivo de manifesto deve estar no formato [linhas JSON](http://jsonlines.org/), em que cada linha representa uma amostra. As imagens são especificadas usando a tag `'source-ref'`, que aponta para a localização do S3 da imagem. As anotações são fornecidas sob o valor do parâmetro `"AttributeNames"`, conforme especificado na solicitação [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html). Elas também podem conter metadados adicionais sob a tag `metadata`, mas estas são ignoradas pelo algoritmo. No exemplo abaixo, os `"AttributeNames"` estão contidos na lista de referências de imagem e anotação `["source-ref", "class"]`. O valor de rótulo correspondente é `"0"` para a primeira imagem e `“1”` para a segunda imagem:

```
{"source-ref":"s3://image/filename1.jpg", "class":"0"}
{"source-ref":"s3://image/filename2.jpg", "class":"1", "class-metadata": {"class-name": "cat", "type" : "groundtruth/image-classification"}}
```

A ordem dos arquivos `"AttributeNames"` de entrada é importante ao treinar o ImageClassification algoritmo. Ele aceita dados redirecionados em uma ordem específica, com `image` primeiro, seguido por `label`. Portanto, os AttributeNames "" neste exemplo são fornecidos `"source-ref"` primeiro, seguidos por`"class"`. Ao usar o ImageClassification algoritmo com o Manifesto Aumentado, o valor do `RecordWrapperType` parâmetro deve ser`"RecordIO"`.

O treinamento com vários rótulos também é compatível com a especificação de uma matriz de valores JSON. O hiperparâmetro `num_classes` deve ser definido para corresponder ao número total de classes. Existem dois formatos de rótulo válidos: multi-hot e class-id. 

No formato multi-hot, cada rótulo é um vetor codificado multi-hot de todas as classes, em que cada classe leva o valor de 0 ou de 1. No exemplo a seguir, existem três classes. A primeira imagem é rotulada com as classes 0 e 2, enquanto a segunda imagem é rotulada apenas com a classe 2: 

```
{"image-ref": "s3://amzn-s3-demo-bucket/sample01/image1.jpg", "class": "[1, 0, 1]"}
{"image-ref": "s3://amzn-s3-demo-bucket/sample02/image2.jpg", "class": "[0, 0, 1]"}
```

No formato class-id, cada rótulo é uma lista dos IDs de classe, de (0, `num_classes`), que se aplicam ao ponto de dados. Em vez disso, o exemplo anterior seria parecido com isto:

```
{"image-ref": "s3://amzn-s3-demo-bucket/sample01/image1.jpg", "class": "[0, 2]"}
{"image-ref": "s3://amzn-s3-demo-bucket/sample02/image2.jpg", "class": "[2]"}
```

O formato multi-hot é o padrão, mas pode ser definido explicitamente no tipo de conteúdo com o `label-format` parâmetro: `"application/x-recordio; label-format=multi-hot".` O formato class-id, que é o formato gerado por GroundTruth, deve ser definido explicitamente: `"application/x-recordio; label-format=class-id".`

Para obter mais informações sobre arquivos manifestos aumentados, consulte [Arquivos de Manifestos Aumentados em Trabalhos de Treinamento](augmented-manifest.md).

### Treinamento incremental
<a name="IC-incremental-training"></a>

Você também pode semear o treinamento de um novo modelo com os artefatos de um modelo que você treinou anteriormente com SageMaker IA. O treinamento incremental economiza tempo de treinamento quando você deseja treinar um novo modelo com dados iguais ou similares. SageMaker Os modelos de classificação de imagens de IA só podem ser implantados com outro modelo de classificação de imagem integrado treinado em SageMaker IA.

Para usar um modelo pré-treinado, na solicitação [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html), especifique `ChannelName` como "modelo" no parâmetro `InputDataConfig`. Defina o `ContentType` para o canal do modelo como `application/x-sagemaker-model`. Os hiperparâmetros de entrada do novo modelo e do modelo pré-treinado que você transfere por upload para o canal do modelo devem ter as mesmas configurações para os parâmetros de entrada `num_layers`, `image_shape` e `num_classes`. Esses parâmetros definem a arquitetura da rede. Para o arquivo de modelo pré-treinado, use os artefatos do modelo compactado (no formato.tar.gz) produzidos pela AI. SageMaker Você pode usar os formatos RecordIO ou de imagem para dados de entrada.

### Inferência com o algoritmo de classificação de imagens
<a name="IC-inference"></a>

Os modelos gerados podem ser hospedados para inferência e oferecem suporte aos formatos de imagem `.jpg` e `.png` codificados como `image/png, image/jpeg` e content-type `application/x-image`. A imagem de entrada é redimensionada automaticamente. A saída são os valores de probabilidade para todas as classes codificados no formato JSON, ou no formato de texto [JSON Lines para ](http://jsonlines.org/)transformação em lote. O modelo de classificação de imagem processa uma única imagem por solicitação e, portanto, exibe apenas uma linha no formato JSON ou JSON Lines. Veja a seguir um exemplo de uma resposta no formato JSON Lines:

```
accept: application/jsonlines

 {"prediction": [prob_0, prob_1, prob_2, prob_3, ...]}
```

Para obter mais detalhes sobre treinamento e inferência, consulte as instâncias de bloco de anotações de amostra de classificação de imagens mencionadas na introdução.

## Recomendação de instâncias do EC2 para o algoritmo de Classificação de imagens
<a name="IC-instances"></a>

Para classificação de imagens, oferecemos suporte às instâncias P2, P3, G4dn e G5. Recomendamos o uso de instâncias de GPU com mais memória para treinamento com grandes tamanhos de lote. Você também pode executar o algoritmo em configurações de várias GPUs e várias máquinas para treinamento distribuído. Tanto as instâncias de CPU (como C4) quanto as de GPU (P2, P3, G4dn ou G5) podem ser usadas para inferência.

## Blocos de anotações de amostra de Classificação de imagens
<a name="IC-sample-notebooks"></a>

Para ver uma amostra de caderno que usa o algoritmo de classificação de imagens de SageMaker IA, consulte [Criar e registrar um modelo de classificação de MXNet imagens por meio de SageMaker pipelines](https://github.com/aws-samples/amazon-sagemaker-pipelines-mxnet-image-classification/blob/main/image-classification-sagemaker-pipelines.ipynb). Para obter instruções sobre como criar e acessar instâncias do notebook Jupyter que você pode usar para executar o exemplo em SageMaker IA, consulte. [Instâncias de SageMaker notebook da Amazon](nbi.md) Depois de criar uma instância do notebook e abri-la, selecione a guia **Exemplos de SageMaker IA** para ver uma lista de todas as amostras de SageMaker IA. Os exemplos de blocos de anotações de classificação de imagens estão localizados na seção **Introdução aos algoritmos da Amazon**. Para abrir um caderno, clique em sua guia **Uso** e selecione **Criar cópia**.

# Como funciona a classificação de imagens
<a name="IC-HowItWorks"></a>

O algoritmo de classificação de imagens pega uma imagem como entrada e a classifica em uma das categorias de saída. O deep learning revolucionou o domínio da classificação de imagens e obteve excelente desempenho. Várias redes de aprendizado profundo [ResNet](https://arxiv.org/abs/1512.03385), como, [DenseNet](https://arxiv.org/abs/1608.06993), [Inception](https://arxiv.org/pdf/1409.4842.pdf) e assim por diante, foram desenvolvidas para serem altamente precisas na classificação de imagens. Ao mesmo tempo, tem havido esforços para coletar dados de imagens rotuladas que são essenciais para treinar essas redes. [ImageNet](https://www.image-net.org/)é um desses grandes conjuntos de dados que tem mais de 11 milhões de imagens com cerca de 11.000 categorias. Depois que uma rede é treinada com ImageNet dados, ela também pode ser usada para generalizar com outros conjuntos de dados, por meio de um simples reajuste ou ajuste fino. Nessa abordagem de aprendizado por transferência, uma rede é inicializada com pesos (neste exemplo, treinados ImageNet), que podem ser posteriormente ajustados para uma tarefa de classificação de imagens em um conjunto de dados diferente. 

A classificação de imagens no Amazon SageMaker AI pode ser executada em dois modos: treinamento completo e aprendizado por transferência. No modo de treinamento completo, a rede é inicializada com pesos aleatórios e treinada nos dados do usuário do zero. No modo de aprendizagem de transferência, a rede é inicializada com pesos pré-treinados, e apenas a camada superior totalmente conectada é inicializada com pesos aleatórios. Em seguida, toda a rede é aperfeiçoada com novos dados. Nesse modo, o treinamento pode ser obtido mesmo com um conjunto de dados menor. Isso ocorre porque a rede já está treinada e, portanto, pode ser usada em situações de dados de treinamento insuficientes.

# Hiperparâmetros de Classificação de imagens
<a name="IC-Hyperparameter"></a>

Hiperparâmetros são parâmetros definidos antes de um modelo de machine learning começar a aprender. Os hiperparâmetros a seguir são compatíveis com o algoritmo de classificação de imagens integrado da Amazon SageMaker AI. Consulte [Ajustar um modelo de classificação de imagens](IC-tuning.md) para obter informações sobre o ajuste de hiperparâmetros de classificação de imagens. 


| Nome do parâmetro | Description | 
| --- | --- | 
| num\$1classes | Número de classes de saída. Esse parâmetro especifica as dimensões da rede de saída e geralmente é definido como o número de classes do conjunto de dados. Além da classificação de várias classes, a classificação de vários rótulos também é compatível. Consulte [Interface de entrada/saída para o algoritmo de classificação de imagens](image-classification.md#IC-inputoutput) para obter detalhes sobre como trabalhar com a classificação de vários rótulos com arquivos de manifesto aumentados.  **Obrigatório** Valores válidos: inteiro positivo  | 
| num\$1training\$1samples | Número de exemplos de treinamento no conjunto de dados de entrada. Se esse valor não corresponder ao número de amostras do conjunto de treinamento, o comportamento do parâmetro `lr_scheduler_step` será indefinido, e a precisão do treinamento distribuído poderá ser afetada. **Obrigatório** Valores válidos: inteiro positivo  | 
| augmentation\$1type |  O tipo de aumento dos dados. As imagens de entrada podem ser aumentadas de várias maneiras, conforme especificado abaixo. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/IC-Hyperparameter.html) **Opcional**  Valores válidos: `crop`, `crop_color` ou `crop_color_transform`. Valor padrão: nenhum valor padrão  | 
| beta\$11 | O beta1 para `adam`, que é a taxa de degradação exponencial para as estimativas do primeiro momento. **Opcional**  Valores válidos: flutuante. Intervalo em [0, 1]. Valor padrão: 0.9 | 
| beta\$12 | O beta2 para `adam`, que é a taxa de degradação exponencial para as estimativas do segundo momento. **Opcional**  Valores válidos: flutuante. Intervalo em [0, 1]. Valor padrão: 0.999 | 
| checkpoint\$1frequency | Período de armazenamento dos parâmetros do modelo (em número de epochs). Observe que todos os arquivos do ponto de verificação são salvos como parte do arquivo de modelo final "model.tar.gz" e o upload deles é feito no S3 no local do modelo especificado. Isso aumenta o tamanho do arquivo de modelo proporcionalmente ao número de pontos de verificação salvos durante o treinamento. **Opcional** Valores válidos: inteiro positivo maior que `epochs`. Valor padrão: nenhum valor padrão (Salva o ponto de verificação no epoch que possui a melhor precisão de validação) | 
| early\$1stopping | `True` para usar a lógica de interrupção precoce durante o treinamento. `False` para não usá-la. **Opcional** Valores válidos: `True` ou `False` Valor padrão: `False` | 
| early\$1stopping\$1min\$1epochs | O número mínimo de epochs que devem ser executados antes que a lógica de interrupção precoce possa ser invocada. Usado apenas quando `early_stopping` = `True`. **Opcional** Valores válidos: inteiro positivo Valor padrão: 10 | 
| early\$1stopping\$1patience | O número de epochs de espera antes de concluir o treinamento, se nenhuma melhora tiver ocorrido na métrica relevante. Usado apenas quando `early_stopping` = `True`. **Opcional** Valores válidos: inteiro positivo Valor padrão: 5 | 
| early\$1stopping\$1tolerance | Tolerância relativa para medir uma melhoria na métrica de validação de precisão. Se a relação entre a melhoria na precisão dividida pela melhor precisão anterior for menor que o conjunto de valores de `early_stopping_tolerance`, a interrupção precoce considerará que não há melhoria. Usado apenas quando `early_stopping` = `True`. **Opcional** Valores válidos: 0 ≤ flutuante ≤ 1 Valor padrão: 0.0 | 
| epochs | Número de epochs de treinamento. **Opcional** Valores válidos: inteiro positivo Valor padrão: 30 | 
| eps | O épsilon para `adam` e `rmsprop`. Geralmente é definido como um valor baixo, para evitar a divisão por 0. **Opcional** Valores válidos: flutuante. Intervalo em [0, 1]. Valor padrão: 1e-8 | 
| gamma | O gama para `rmsprop`, o fator de degradação para a média móvel do gradiente quadrado. **Opcional** Valores válidos: flutuante. Intervalo em [0, 1]. Valor padrão: 0.9 | 
| image\$1shape | As dimensões da imagem de entrada, que é o mesmo tamanho da camada de entrada da rede. O formato é definido como "`num_channels`, altura, largura". A dimensão da imagem pode assumir qualquer valor, já que a rede pode lidar com variadas dimensões da entrada. No entanto, poderá haver restrições de memória se uma dimensão de imagem maior for usada. Os modelos pré-treinados só podem usar um tamanho de imagem de valor fixo de 224 x 224. Normalmente, as dimensões das imagens para classificação de imagens são de “3,224,224”. Isso é semelhante ao ImageNet conjunto de dados.  Para treinamento, se alguma imagem de entrada for menor que esse parâmetro em qualquer dimensão, o treinamento falhará. Se uma imagem for maior, uma parte da imagem será cortada, com a área recortada especificada por esse parâmetro. Se o hiperparâmetro `augmentation_type` for definido, será feito um corte aleatório; caso contrário, o corte será central.  Na inferência, as imagens de entrada são redimensionadas para `image_shape`, conforme utilização durante o treinamento. A taxa de proporção não é preservada, e as imagens não são cortadas. **Opcional** Valores válidos: string Valor padrão: “3,224,224” | 
| kv\$1store |  Modo de sincronização das atualizações de peso durante o treinamento distribuído. As atualizações de peso podem ser feitas de maneira síncrona ou assíncrona nas máquinas. As atualizações síncronas geralmente oferecem mais precisão do que as assíncronas, mas podem ser mais lentas. Consulte o treinamento distribuído em MXNet para obter mais detalhes. Esse parâmetro não é aplicável a treinamentos em uma máquina só. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/IC-Hyperparameter.html) **Opcional** Valores válidos: `dist_sync` ou `dist_async` Valor padrão: nenhum valor padrão  | 
| learning\$1rate | A taxa de aprendizado inicial. **Opcional** Valores válidos: flutuante. Intervalo em [0, 1]. Valor padrão: 0.1 | 
| lr\$1scheduler\$1factor | O índice de redução da taxa de aprendizagem usado em conjunto com o parâmetro `lr_scheduler_step`, definido como `lr_new` = `lr_old` \$1 `lr_scheduler_factor`. **Opcional** Valores válidos: flutuante. Intervalo em [0, 1]. Valor padrão: 0.1 | 
| lr\$1scheduler\$1step | Os epochs nos quais a taxa de aprendizado deve ser reduzida. Como explicado no parâmetro `lr_scheduler_factor`, a taxa de aprendizagem é reduzida pelo `lr_scheduler_factor` desses epochs. Por exemplo, se o valor for definido como "10, 20", a taxa de aprendizagem será reduzida pelo `lr_scheduler_factor` após o 10º epoch e novamente pelo `lr_scheduler_factor` após o 20ºepoch. Os epochs são delimitados por ",". **Opcional** Valores válidos: string Valor padrão: nenhum valor padrão | 
| mini\$1batch\$1size | O tamanho do lote para treinamento. Em uma configuração com uma máquina e várias GPUs, cada GPU trata as amostras de treinamento `mini_batch_size` / num\$1gpu. Para o treinamento com várias máquinas no modo dist\$1sync, o tamanho do lote real é `mini_batch_size` \$1 número de máquinas. Consulte a MXNet documentação para obter mais detalhes. **Opcional** Valores válidos: inteiro positivo Valor padrão: 32 | 
| momentum | A dinâmica `sgd` e `nag`, ignorada para outros otimizadores. **Opcional** Valores válidos: flutuante. Intervalo em [0, 1]. Valor padrão: 0.9 | 
| multi\$1label |  Sinalizador a ser usado para classificação de vários rótulos, em que cada amostra pode receber vários rótulos. A precisão média em todas as classes é registrada. **Opcional** Valores válidos: 0 ou 1 Valor padrão: 0  | 
| num\$1layers | Número de camadas para a rede. Para dados com tamanho de imagem grande (por exemplo, 224x224 ImageNet), sugerimos selecionar o número de camadas do conjunto [18, 34, 50, 101, 152, 200]. Para dados com tamanho pequeno de imagens (por exemplo, 28 x 28, como o CIFAR), sugerimos selecionar o número de camadas do conjunto [20, 32, 44, 56, 110]. O número de camadas em cada conjunto é baseado no ResNet papel. Para aprendizagem de transferência, o número de camadas define a arquitetura da rede de base e, portanto, só pode ser selecionado do conjunto [18, 34, 50, 101, 152, 200]. **Opcional** Valores válidos: inteiro positivo em [18, 34, 50, 101, 152, 200] ou [20, 32, 44, 56, 110] Valor padrão: 152 | 
| optimizer | O tipo de otimizador. Para obter mais detalhes sobre os parâmetros dos otimizadores, consulte a API MXNet da. **Opcional** Valores válidos: Um de `sgd`, `adam`, `rmsprop` ou `nag`. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/IC-Hyperparameter.html) Valor padrão: `sgd` | 
| precision\$1dtype | A precisão dos pesos usados para treinamento. O algoritmo pode usar precisão simples (`float32`) ou meia precisão (`float16`) para os pesos. Usar a meia-precisão para pesos resulta em consumo de memória reduzido. **Opcional** Valores válidos: `float32` ou `float16` Valor padrão: `float32` | 
| resize | O número de pixels no lado mais curto de uma imagem depois de redimensioná-la para treinamento. Se o parâmetro não estiver definido, os dados de treinamento serão usados sem redimensionamento. O parâmetro deve ser maior que os componentes de largura e altura de `image_shape` para evitar falhas no treinamento. **Obrigatório** ao usar tipos de conteúdo de imagem **Opcional** ao usar o tipo de conteúdo RecordIO Valores válidos: inteiro positivo Valor padrão: nenhum valor padrão  | 
| top\$1k | Relata a precisão dos itens top-k durante o treinamento. Esse parâmetro deve ser maior que 1, já que a precisão do treinamento dos itens top-1 é a mesma que a do treinamento normal que já foi relatada. **Opcional** Valores válidos: inteiro positivo maior que 1. Valor padrão: nenhum valor padrão | 
| use\$1pretrained\$1model | Sinalizador para usar o modelo pré-treinado para treinamento. Se definido como 1, o modelo pré-treinado e o número correspondente de camadas serão carregados e usados para o treinamento. Somente as camadas FC superiores são reinicializadas com pesos aleatórios. Caso contrário, a rede é treinada do zero. **Opcional** Valores válidos: 0 ou 1 Valor padrão: 0 | 
| use\$1weighted\$1loss |  Sinalizador para usar a perda de entropia cruzada ponderada para classificação de vários rótulos (usada somente quando `multi_label` = 1), em que os pesos são calculados com base na distribuição de classes. **Opcional** Valores válidos: 0 ou 1 Valor padrão: 0  | 
| weight\$1decay | O coeficiente de decaimento de peso para `sgd` e `nag`, ignorado para outros otimizadores. **Opcional** Valores válidos: flutuante. Intervalo em [0, 1]. Valor padrão: 0.0001 | 

# Ajustar um modelo de classificação de imagens
<a name="IC-tuning"></a>

O *ajuste automático de modelos*, também conhecido como ajuste de hiperparâmetros, localiza a melhor versão de um modelo executando vários trabalhos que testam uma série de hiperparâmetros no seu conjunto de dados. Você escolhe os hiperparâmetros ajustáveis, um intervalo de valores para cada um e uma métrica objetiva. Você escolhe a métrica objetiva entre as métricas que o algoritmo calcula. O ajuste de modelo automático pesquisa os hiperparâmetros escolhidos para encontrar a combinação de valores que resultam no modelo que otimiza a métrica objetiva.

Para mais informações sobre o ajuste de modelos, consulte [Ajuste automático do modelo com SageMaker IA](automatic-model-tuning.md).

## Métricas calculadas pelo algoritmo de classificação de imagens
<a name="IC-metrics"></a>

O algoritmo de classificação de imagens é um algoritmo supervisionado. Ele relata uma métrica de precisão que é calculada durante o treinamento. Ao ajustar o modelo, escolha essa métrica como a métrica objetiva.


| Nome da métrica | Description | Direção de otimização | 
| --- | --- | --- | 
| validation:accuracy | A proporção do número de predições corretas para o número total de predições feitas. | Maximizar | 

## Hiperparâmetros ajustados de Classificação de imagens
<a name="IC-tunable-hyperparameters"></a>

Ajuste um modelo de classificação de imagem com os seguintes hiperparâmetros: Os hiperparâmetros que têm o maior impacto nas métricas objetivas de classificação de imagem são: `mini_batch_size`, `learning_rate` e `optimizer`. Os hiperparâmetros que têm o maior impacto nas métricas objetivas de classificação de imagem são `momentum`, `weight_decay`, `beta_1`, `beta_2`, `eps` e `gamma`, com base no `optimizer` selecionado. Por exemplo, use `beta_1` e `beta_2` somente quando `adam` for o `optimizer`.

Para obter mais informações sobre quais hiperparâmetros são usados em cada otimizador, consulte [Hiperparâmetros de Classificação de imagens](IC-Hyperparameter.md).


| Nome do parâmetro | Tipo de parâmetro | Intervalos recomendados | 
| --- | --- | --- | 
| beta\$11 | ContinuousParameterRanges | MinValue: 1e-6, 0,99 MaxValue | 
| beta\$12 | ContinuousParameterRanges | MinValue: 1e-6, 0,99 MaxValue | 
| eps | ContinuousParameterRanges | MinValue: 1e-8, MaxValue: 1,0 | 
| gamma | ContinuousParameterRanges | MinValue: 1e-8, 0,99 MaxValue | 
| learning\$1rate | ContinuousParameterRanges | MinValue: 1e-6, 0,5 MaxValue | 
| mini\$1batch\$1size | IntegerParameterRanges | MinValue: 8, MaxValue 512 | 
| momentum | ContinuousParameterRanges | MinValue: 0,0, MaxValue 0,99 | 
| optimizer | CategoricalParameterRanges | ['sgd', ‘adam’, ‘rmsprop’, 'nag'] | 
| weight\$1decay | ContinuousParameterRanges | MinValue: 0,0, MaxValue 0,99 | 