

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 texto - TensorFlow
<a name="text-classification-tensorflow"></a>

[O algoritmo Amazon SageMaker AI Text Classification - é um TensorFlow algoritmo de aprendizado supervisionado que oferece suporte ao aprendizado por transferência com muitos modelos pré-treinados do TensorFlow Hub.](https://tfhub.dev/) Use transferir aprendizado para ajustar um dos modelos pré-treinados disponíveis em seu próprio conjunto de dados, mesmo que uma grande quantidade de dados de texto não esteja disponível. O algoritmo de classificação de texto usa uma string de texto como de entrada e saída como uma probabilidade para cada um dos rótulos de classe. Os conjuntos de dados de treinamento devem estar no formato CSV. Esta página inclui informações sobre recomendações de instâncias do Amazon EC2 e exemplos de notebooks para classificação de texto -. TensorFlow

**Topics**
+ [Como usar o TensorFlow algoritmo SageMaker AI Text Classification](text-classification-tensorflow-how-to-use.md)
+ [Interface de entrada e saída para o TensorFlow algoritmo de classificação de texto](text-classification-tensorflow-inputoutput.md)
+ [Recomendação de instância do Amazon EC2 para o algoritmo de classificação de texto TensorFlow](#text-classification-tensorflow-instances)
+ [Classificação de texto - TensorFlow exemplos de cadernos](#text-classification-tensorflow-sample-notebooks)
+ [Como TensorFlow funciona a classificação de texto](text-classification-tensorflow-HowItWorks.md)
+ [TensorFlow Modelos de hub](text-classification-tensorflow-Models.md)
+ [Classificação de texto - TensorFlow Hiperparâmetros](text-classification-tensorflow-Hyperparameter.md)
+ [Ajustar uma classificação de texto - TensorFlow modelo](text-classification-tensorflow-tuning.md)

# Como usar o TensorFlow algoritmo SageMaker AI Text Classification
<a name="text-classification-tensorflow-how-to-use"></a>

Você pode usar a Classificação de Texto - TensorFlow como um algoritmo integrado da Amazon SageMaker AI. A seção a seguir descreve como usar a Classificação de Texto TensorFlow com o SageMaker SDK AI Python. Para obter informações sobre como usar a classificação de texto na interface TensorFlow do usuário do Amazon SageMaker Studio Classic, consulte[SageMaker JumpStart modelos pré-treinados](studio-jumpstart.md).

O TensorFlow algoritmo de Classificação de Texto suporta o aprendizado por transferência usando qualquer um dos TensorFlow modelos pré-treinados compatíveis. Para obter uma lista de todos os modelos pré-treinados disponíveis, consulte [TensorFlow Modelos de hub](text-classification-tensorflow-Models.md). Cada modelo pré-treinado tem um `model_id` exclusivo. O seguinte exemplo usa BERT Base Uncased (`model_id`:`tensorflow-tc-bert-en-uncased-L-12-H-768-A-12-2`) para ajustar um conjunto de dados personalizado. Os modelos pré-treinados são todos pré-baixados do TensorFlow Hub e armazenados em buckets do Amazon S3 para que os trabalhos de treinamento possam ser executados isoladamente na rede. Use esses artefatos de treinamento de modelos pré-gerados para criar um estimador de SageMaker IA.

Primeiro, recupere o URI da imagem do Docker, o URI do script de treinamento e o URI do modelo pré-treinado. Em seguida, altere os hiperparâmetros conforme desejar. Você pode ver um dicionário Python de todos os hiperparâmetros disponíveis e seus valores padrão com `hyperparameters.retrieve_default`. Para obter mais informações, consulte [Classificação de texto - TensorFlow Hiperparâmetros](text-classification-tensorflow-Hyperparameter.md). Use esses valores para criar um estimador de SageMaker IA.

**nota**  
Os valores padrão dos hiperparâmetros são diferentes para modelos diferentes. Por exemplo, para modelos maiores, o tamanho padrão do lote é menor. 

Este exemplo usa o conjunto de dados [https://www.tensorflow.org/datasets/catalog/glue#gluesst2](https://www.tensorflow.org/datasets/catalog/glue#gluesst2), que contém resenhas de filmes positivas e negativas. Nós pré-baixamos o conjunto de dados e o disponibilizamos com o Amazon S3. Para ajustar seu modelo, chame `.fit` usando a localização do Amazon S3 do seu conjunto de dados de treinamento. Qualquer bucket do S3 usado em um notebook deve estar na mesma AWS região da instância do notebook que o acessa.

```
from sagemaker import image_uris, model_uris, script_uris, hyperparameters
from sagemaker.estimator import Estimator

model_id, model_version = "tensorflow-tc-bert-en-uncased-L-12-H-768-A-12-2", "*"
training_instance_type = "ml.p3.2xlarge"

# Retrieve the Docker image
train_image_uri = image_uris.retrieve(model_id=model_id,model_version=model_version,image_scope="training",instance_type=training_instance_type,region=None,framework=None)

# Retrieve the training script
train_source_uri = script_uris.retrieve(model_id=model_id, model_version=model_version, script_scope="training")

# Retrieve the pretrained model tarball for transfer learning
train_model_uri = model_uris.retrieve(model_id=model_id, model_version=model_version, model_scope="training")

# Retrieve the default hyperparameters for fine-tuning the model
hyperparameters = hyperparameters.retrieve_default(model_id=model_id, model_version=model_version)

# [Optional] Override default hyperparameters with custom values
hyperparameters["epochs"] = "5"

# Sample training data is available in this bucket
training_data_bucket = f"jumpstart-cache-prod-{aws_region}"
training_data_prefix = "training-datasets/SST2/"

training_dataset_s3_path = f"s3://{training_data_bucket}/{training_data_prefix}"

output_bucket = sess.default_bucket()
output_prefix = "jumpstart-example-tc-training"
s3_output_location = f"s3://{output_bucket}/{output_prefix}/output"

# Create an Estimator instance
tf_tc_estimator = Estimator(
    role=aws_role,
    image_uri=train_image_uri,
    source_dir=train_source_uri,
    model_uri=train_model_uri,
    entry_point="transfer_learning.py",
    instance_count=1,
    instance_type=training_instance_type,
    max_run=360000,
    hyperparameters=hyperparameters,
    output_path=s3_output_location,
)

# Launch a training job
tf_tc_estimator.fit({"training": training_dataset_s3_path}, logs=True)
```

Para obter mais informações sobre como usar o TensorFlow algoritmo de Classificação de SageMaker Texto para transferir o aprendizado em um conjunto de dados personalizado, consulte o caderno [Introdução à JumpStart Classificação de Texto](https://github.com/aws/amazon-sagemaker-examples/blob/main/introduction_to_amazon_algorithms/jumpstart_text_classification/Amazon_JumpStart_Text_Classification.ipynb).

# Interface de entrada e saída para o TensorFlow algoritmo de classificação de texto
<a name="text-classification-tensorflow-inputoutput"></a>

Cada um dos modelos pré-treinados listados nos TensorFlow Hub Models pode ser ajustado a qualquer conjunto de dados composto por frases de texto com qualquer número de classes. O modelo pré-treinado anexa uma camada de classificação ao modelo de incorporação de texto e inicializa os parâmetros da camada com valores aleatórios. A dimensão de saída da camada de classificação é determinada com base no número de classes detectadas nos dados de entrada. 

Lembre-se de como formatar seus dados de treinamento para entrada no TensorFlow modelo de Classificação de Texto.
+ **Formato de entrada de dados de treinamento:** um diretório contendo um arquivo `data.csv`. Cada linha da primeira coluna deve ter rótulos de classe inteiros entre 0 e o número de classes. Cada linha da segunda coluna deve ter os dados de texto correspondentes.

Veja a seguir um exemplo de um arquivo de entrada CSV. Observe que o arquivo não deve ter nenhum cabeçalho. O arquivo deve ser hospedado em um bucket do Amazon S3 com um caminho semelhante ao seguinte: `s3://bucket_name/input_directory/`. Observe que o rastreamento `/` é obrigatório.

```
|   |  |
|---|---|
|0 |hide new secretions from the parental units|
|0 |contains no wit , only labored gags|
|1 |that loves its characters and communicates something rather beautiful about human nature|
|...|...|
```

## Treinamento incremental
<a name="text-classification-tensorflow-incremental-training"></a>

Você pode semear o treinamento de um novo modelo com artefatos de um modelo que você treinou anteriormente com SageMaker IA. Um treinamento incremental economiza tempo de treinamento quando você deseja treinar um novo modelo com dados iguais ou semelhantes.

**nota**  
Você só pode semear um modelo de Classificação de Texto de SageMaker IA com outro TensorFlow modelo de Classificação de Texto treinado em SageMaker IA. TensorFlow 

Você pode usar qualquer conjunto de dados para treinamento incremental, desde que o conjunto de classes permaneça o mesmo. A etapa de treinamento incremental é semelhante à etapa de ajuste, mas em vez de começar com um modelo pré-treinado, você começa com um modelo já ajustado. 

Para obter mais informações sobre como usar o treinamento incremental com o TensorFlow algoritmo SageMaker AI Text Classification, consulte o exemplo de caderno [Introdução à JumpStart Classificação de Texto](https://github.com/aws/amazon-sagemaker-examples/blob/main/introduction_to_amazon_algorithms/jumpstart_text_classification/Amazon_JumpStart_Text_Classification.ipynb).

## Inferência com a classificação de texto - algoritmo TensorFlow
<a name="text-classification-tensorflow-inference"></a>

Você pode hospedar o modelo ajustado que resulta do seu treinamento de Classificação de TensorFlow Texto para inferência. Qualquer formato de texto bruto para inferência deve ser do tipo de `application/x-text` conteúdo.

A execução da inferência resulta em valores de probabilidade, rótulos de classe para todas as classes e o rótulo previsto correspondente ao índice da classe com a maior probabilidade codificada no formato JSON. O TensorFlow modelo Text Classification - processa uma única string por solicitação e gera somente uma linha. Veja a seguir um exemplo de resposta no formato JSON.

```
accept: application/json;verbose

{"probabilities": [prob_0, prob_1, prob_2, ...],
"labels": [label_0, label_1, label_2, ...],
"predicted_label": predicted_label}
```

Se `accept` estiver definido como `application/json`, o modelo só gera probabilidades. 

## Recomendação de instância do Amazon EC2 para o algoritmo de classificação de texto TensorFlow
<a name="text-classification-tensorflow-instances"></a>

O TensorFlow algoritmo de classificação de texto é compatível com todas as instâncias de CPU e GPU para treinamento, incluindo:
+ `ml.p2.xlarge`
+ `ml.p2.16xlarge`
+ `ml.p3.2xlarge`
+ `ml.p3.16xlarge`
+ `ml.g4dn.xlarge`
+ `ml.g4dn.16.xlarge`
+ `ml.g5.xlarge`
+ `ml.g5.48xlarge`

Recomendamos o uso de instâncias de GPU com mais memória para treinamento com grandes tamanhos de lote. Tanto as instâncias de CPU (como M5) quanto as de GPU (P2, P3, G4dn ou G5) podem ser usadas para inferência. Para obter uma lista abrangente de instâncias de SageMaker treinamento e inferência em todas AWS as regiões, consulte [Amazon SageMaker Pricing](https://aws.amazon.com/sagemaker/pricing/).

## Classificação de texto - TensorFlow exemplos de cadernos
<a name="text-classification-tensorflow-sample-notebooks"></a>

Para obter mais informações sobre como usar o TensorFlow algoritmo SageMaker AI Text Classification para transferir o aprendizado em um conjunto de dados personalizado, consulte o caderno [Introdução à JumpStart Classificação de Texto](https://github.com/aws/amazon-sagemaker-examples/blob/main/introduction_to_amazon_algorithms/jumpstart_text_classification/Amazon_JumpStart_Text_Classification.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. Para abrir um caderno, escolha a guia **Uso** e depois escolha **Criar cópia**.

# Como TensorFlow funciona a classificação de texto
<a name="text-classification-tensorflow-HowItWorks"></a>

O TensorFlow algoritmo Classificação de Texto - considera o texto conforme o classifica em um dos rótulos da classe de saída. Redes de aprendizado profundo, como o [BERT](https://arxiv.org/pdf/1810.04805.pdf), são altamente precisas para classificação de textos. Também existem redes de aprendizado profundo treinadas em grandes conjuntos de dados de texto, como, por exemplo TextNet, que tem mais de 11 milhões de textos com cerca de 11.000 categorias. Depois que uma rede é treinada com TextNet dados, você pode então ajustar a rede em um conjunto de dados com um foco específico para realizar tarefas de classificação de texto mais específicas. O TensorFlow algoritmo Amazon SageMaker AI Text Classification suporta o aprendizado por transferência em muitos modelos pré-treinados que estão disponíveis no TensorFlow Hub.

De acordo com o número de rótulos de classe em seus dados de treinamento, uma camada de classificação de texto é anexada ao TensorFlow modelo pré-treinado de sua escolha. A camada de classificação consiste em uma camada suspensa, uma camada densa e uma camada totalmente conectada com regularização de duas normas e é inicializada com pesos aleatórios. Você pode alterar os valores dos hiperparâmetros para a taxa de eliminação da camada de eliminação e o fator de regularização L2 para a camada densa.

Você pode ajustar toda a rede (incluindo o modelo pré-treinado) ou somente a camada de classificação superior nos novos dados de treinamento. Com esse método de transferência de aprendizado, é possível treinar com conjuntos de dados menores.

# TensorFlow Modelos de hub
<a name="text-classification-tensorflow-Models"></a>

Os seguintes modelos pré-treinados estão disponíveis para uso no aprendizado por transferência com o TensorFlow algoritmo de Classificação de Texto. 

Os modelos a seguir variam significativamente em tamanho, número de parâmetros do modelo, tempo de treinamento e latência de inferência para qualquer conjunto de dados. O melhor modelo para seu caso de uso depende da complexidade do seu conjunto de dados de ajuste fino e de quaisquer requisitos que você tenha sobre tempo de treinamento, latência de inferência ou precisão do modelo.


| Nome do modelo | `model_id` | Fonte | 
| --- | --- | --- | 
|  Base BERT uncased  | `tensorflow-tc-bert-en-uncased-L-12-H-768-A-12-2` | [TensorFlow Link do hub](https://tfhub.dev/tensorflow/bert_en_uncased_L-12_H-768_A-12/3) | 
|  Base BERT cased  | `tensorflow-tc-bert-en-cased-L-12-H-768-A-12-2` | [TensorFlow Link do hub](https://tfhub.dev/tensorflow/bert_en_cased_L-12_H-768_A-12/3) | 
|  Estojo multilíngue Base BERT  | `tensorflow-tc-bert-multi-cased-L-12-H-768-A-12-2` | [TensorFlow Link do hub](https://tfhub.dev/tensorflow/bert_multi_cased_L-12_H-768_A-12/3) | 
|  BERT pequeno L-2\$1H-128\$1A-2  | `tensorflow-tc-small-bert-bert-en-uncased-L-2-H-128-A-2` | [TensorFlow Link do hub](https://tfhub.dev/tensorflow/small_bert/bert_en_uncased_L-2_H-128_A-2/1) | 
|  BERT pequeno L-2\$1H-256\$1A-4 | `tensorflow-tc-small-bert-bert-en-uncased-L-2-H-256-A-4` | [TensorFlow Link do hub](https://tfhub.dev/tensorflow/small_bert/bert_en_uncased_L-2_H-256_A-4/1) | 
|  BERT pequeno L-2\$1H-512\$1A-8  | `tensorflow-tc-small-bert-bert-en-uncased-L-2-H-512-A-8` | [TensorFlow Link do hub](https://tfhub.dev/tensorflow/small_bert/bert_en_uncased_L-2_H-512_A-8/1) | 
|  BERT pequeno L-2\$1H-768\$1A-12  | `tensorflow-tc-small-bert-bert-en-uncased-L-2-H-768-A-12` | [TensorFlow Link do hub](https://tfhub.dev/tensorflow/small_bert/bert_en_uncased_L-2_H-768_A-12/1) | 
|  BERT pequeno L-4\$1H-128\$1A-2  | `tensorflow-tc-small-bert-bert-en-uncased-L-4-H-128-A-2` | [TensorFlow Link do hub](https://tfhub.dev/tensorflow/small_bert/bert_en_uncased_L-4_H-128_A-2/1) | 
|  BERT pequeno L-4\$1H-256\$1A-4  | `tensorflow-tc-small-bert-bert-en-uncased-L-4-H-256-A-4` | [TensorFlow Link do hub](https://tfhub.dev/tensorflow/small_bert/bert_en_uncased_L-4_H-256_A-4/1) | 
|  BERT pequeno L-4\$1H-512\$1A-8  | `tensorflow-tc-small-bert-bert-en-uncased-L-4-H-512-A-8` | [TensorFlow Link do hub](https://tfhub.dev/tensorflow/small_bert/bert_en_uncased_L-4_H-512_A-8/1) | 
|  BERT pequeno L-4\$1H-768\$1A-12  | `tensorflow-tc-small-bert-bert-en-uncased-L-4-H-768-A-12` | [TensorFlow Link do hub](https://tfhub.dev/tensorflow/small_bert/bert_en_uncased_L-4_H-768_A-12/1) | 
|  BERT pequeno L-6\$1H-128\$1A-2  | `tensorflow-tc-small-bert-bert-en-uncased-L-6-H-128-A-2` | [TensorFlow Link do hub](https://tfhub.dev/tensorflow/small_bert/bert_en_uncased_L-6_H-128_A-2/1) | 
|  BERT pequeno L-6\$1H-256\$1A-4  | `tensorflow-tc-small-bert-bert-en-uncased-L-6-H-256-A-4` | [TensorFlow Link do hub](https://tfhub.dev/tensorflow/small_bert/bert_en_uncased_L-6_H-256_A-4/1) | 
|  BERT pequeno L-6\$1H-512\$1A-8  | `tensorflow-tc-small-bert-bert-en-uncased-L-6-H-512-A-8` | [TensorFlow Link do hub](https://tfhub.dev/tensorflow/small_bert/bert_en_uncased_L-6_H-512_A-8/1) | 
|  BERT pequeno L-6\$1H-768\$1A-12  | `tensorflow-tc-small-bert-bert-en-uncased-L-6-H-768-A-12` | [TensorFlow Link do hub](https://tfhub.dev/tensorflow/small_bert/bert_en_uncased_L-6_H-768_A-12/1) | 
|  BERT pequeno L-8\$1H-128\$1A-2  | `tensorflow-tc-small-bert-bert-en-uncased-L-8-H-128-A-2` | [TensorFlow Link do hub](https://tfhub.dev/tensorflow/small_bert/bert_en_uncased_L-8_H-128_A-2/1) | 
|  BERT pequeno L-8\$1H-256\$1A-4  | `tensorflow-tc-small-bert-bert-en-uncased-L-8-H-256-A-4` | [TensorFlow Link do hub](https://tfhub.dev/tensorflow/small_bert/bert_en_uncased_L-8_H-256_A-4/1) | 
|  BERT pequeno L-8\$1H-512\$1A-8  | `tensorflow-tc-small-bert-bert-en-uncased-L-8-H-512-A-8` | [TensorFlow Link do hub](https://tfhub.dev/tensorflow/small_bert/bert_en_uncased_L-8_H-512_A-8/1) | 
|  BERT pequeno L-8\$1H-768\$1A-12  | `tensorflow-tc-small-bert-bert-en-uncased-L-8-H-768-A-12` | [TensorFlow Link do hub](https://tfhub.dev/tensorflow/small_bert/bert_en_uncased_L-8_H-768_A-12/1) | 
|  BERT pequeno L-10\$1H-128\$1A-2  | `tensorflow-tc-small-bert-bert-en-uncased-L-10-H-128-A-2` | [TensorFlow Link do hub](https://tfhub.dev/tensorflow/small_bert/bert_en_uncased_L-10_H-128_A-2/1) | 
|  BERT pequeno L-10\$1H-256\$1A-4  | `tensorflow-tc-small-bert-bert-en-uncased-L-10-H-256-A-4` | [TensorFlow Link do hub](https://tfhub.dev/tensorflow/small_bert/bert_en_uncased_L-10_H-256_A-4/1) | 
|  BERT pequeno L-10\$1H-512\$1A-8  | `tensorflow-tc-small-bert-bert-en-uncased-L-10-H-512-A-8` | [TensorFlow Link do hub](https://tfhub.dev/tensorflow/small_bert/bert_en_uncased_L-10_H-512_A-8/1) | 
|  BERT pequeno L-10\$1H-768\$1A-12  | `tensorflow-tc-small-bert-bert-en-uncased-L-10-H-768-A-12` | [TensorFlow Link do hub](https://tfhub.dev/tensorflow/small_bert/bert_en_uncased_L-10_H-768_A-12/1) | 
|  BERT pequeno L-12\$1H-128\$1A-2  | `tensorflow-tc-small-bert-bert-en-uncased-L-12-H-128-A-2` | [TensorFlow Link do hub](https://tfhub.dev/tensorflow/small_bert/bert_en_uncased_L-12_H-128_A-2/1) | 
|  BERT pequeno L-12\$1H-256\$1A-4  | `tensorflow-tc-small-bert-bert-en-uncased-L-12-H-256-A-4` | [TensorFlow Link do hub](https://tfhub.dev/tensorflow/small_bert/bert_en_uncased_L-12_H-256_A-4/1) | 
|  BERT pequeno L-12\$1H-512\$1A-8  | `tensorflow-tc-small-bert-bert-en-uncased-L-12-H-512-A-8` | [TensorFlow Link do hub](https://tfhub.dev/tensorflow/small_bert/bert_en_uncased_L-12_H-512_A-8/1) | 
|  BERT pequeno L-12\$1H-768\$1A-12  | `tensorflow-tc-small-bert-bert-en-uncased-L-12-H-768-A-12` | [TensorFlow Link do hub](https://tfhub.dev/tensorflow/small_bert/bert_en_uncased_L-12_H-768_A-12/1) | 
|  BERT grande uncased  | `tensorflow-tc-bert-en-uncased-L-24-H-1024-A-16-2` | [TensorFlow Link do hub](https://tfhub.dev/tensorflow/bert_en_uncased_L-24_H-1024_A-16/3) | 
|  BERT grande cased  | `tensorflow-tc-bert-en-cased-L-24-H-1024-A-16-2` | [TensorFlow Link do hub](https://tfhub.dev/tensorflow/bert_en_cased_L-24_H-1024_A-16/3) | 
|  Máscara de palavras inteiras BERT grande uncased  | `tensorflow-tc-bert-en-wwm-uncased-L-24-H-1024-A-16-2` | [TensorFlow Link do hub](https://tfhub.dev/tensorflow/bert_en_wwm_uncased_L-24_H-1024_A-16/3) | 
|  Máscara de palavras inteiras BERT grande cased  | `tensorflow-tc-bert-en-wwm-cased-L-24-H-1024-A-16-2` | [TensorFlow Link do hub](https://tfhub.dev/tensorflow/bert_en_wwm_cased_L-24_H-1024_A-16/3) | 
|  Base ALBERT  | `tensorflow-tc-albert-en-base` | [TensorFlow Link do hub](https://tfhub.dev/tensorflow/albert_en_base/2) | 
|  ELECTRA Small\$1\$1  | `tensorflow-tc-electra-small-1` | [TensorFlow Link do hub](https://tfhub.dev/google/electra_small/2) | 
|  Base ELECTRA  | `tensorflow-tc-electra-base-1` | [TensorFlow Link do hub](https://tfhub.dev/google/electra_base/2) | 
|  BERT Base Wikipedia e BooksCorpus  | `tensorflow-tc-experts-bert-wiki-books-1` | [TensorFlow Link do hub](https://tfhub.dev/google/experts/bert/wiki_books/2) | 
|  BERT Base MEDLINE/ PubMed  | `tensorflow-tc-experts-bert-pubmed-1` | [TensorFlow Link do hub](https://tfhub.dev/google/experts/bert/pubmed/2) | 
|  Base Talking Heads  | `tensorflow-tc-talking-heads-base` | [TensorFlow Link do hub](https://tfhub.dev/tensorflow/talkheads_ggelu_bert_en_base/1) | 
|  Base Talking Heads  | `tensorflow-tc-talking-heads-large` | [TensorFlow Link do hub](https://tfhub.dev/tensorflow/talkheads_ggelu_bert_en_large/1) | 

# Classificação de texto - TensorFlow Hiperparâmetros
<a name="text-classification-tensorflow-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 TensorFlow algoritmo de detecção de objetos incorporado ao Amazon SageMaker AI. Para obter informações sobre ajuste de hiperparâmetros, consulte [Ajustar uma classificação de texto - TensorFlow modelo](text-classification-tensorflow-tuning.md). 


| Nome do parâmetro | Description | 
| --- | --- | 
| batch\$1size |  O tamanho do lote para treinamento. Para treinamento em instâncias com várias GPUs, esse tamanho de lote é usado em todo GPUs o.  Valores válidos: inteiro positivo. Valor padrão: `32`.  | 
| beta\$11 |  O beta1 para os otimizadores `"adam"` e `"adamw"`. Representa a taxa de degradação exponencial para as estimativas de primeiro momento. Ignorado por outros otimizadores. Valores válidos: flutuante, intervalo: [`0.0`, `1.0`]. Valor padrão: `0.9`.  | 
| beta\$12 |  O beta2 para os otimizadores `"adam"` e `"adamw"`. Representa a taxa de degradação exponencial para as estimativas de segundo momento. Ignorado por outros otimizadores. Valores válidos: flutuante, intervalo: [`0.0`, `1.0`]. Valor padrão: `0.999`.  | 
| dropout\$1rate | A taxa de eliminação da camada de eliminação na camada de classificação superior. Usado somente quando `reinitialize_top_layer` for definido como `"True"`. Valores válidos: flutuante, intervalo: [`0.0`, `1.0`]. Valor padrão: `0.2` | 
| early\$1stopping |  Defina para `"True"` para usar a lógica de interrupção antecipada durante o treinamento. Se `"False"`, a interrupção antecipada não é usada. Valores válidos: string, ou: (`"True"` ou `"False"`). Valor padrão: `"False"`.  | 
| early\$1stopping\$1min\$1delta | A alteração mínima necessária para se qualificar como uma melhoria. Uma mudança absoluta menor que o valor de early\$1stopping\$1min\$1delta não se qualifica como melhoria. Usado somente quando early\$1stopping for definido como "True".Valores válidos: flutuante, intervalo: [`0.0`, `1.0`].Valor padrão: `0.0`. | 
| early\$1stopping\$1patience |  O número de épocas para continuar treinando sem melhorias. Usado somente quando `early_stopping` for definido como `"True"`. Valores válidos: inteiro positivo. Valor padrão: `5`.  | 
| epochs |  O número de epochs de treinamento. Valores válidos: inteiro positivo. Valor padrão: `10`.  | 
| epsilon |  O épsilon para os otimizadores `"adam"`, `"rmsprop"`, `"adadelta"` e `"adagrad"`. Geralmente é definido como um valor baixo, para evitar a divisão por 0. Ignorado por outros otimizadores. Valores válidos: flutuante, intervalo: [`0.0`, `1.0`]. Valor padrão: `1e-7`.  | 
| initial\$1accumulator\$1value |  O valor inicial para os acumuladores, ou os valores de momentum por parâmetro, para o otimizador `"adagrad"`. Ignorado por outros otimizadores. Valores válidos: flutuante, intervalo: [`0.0`, `1.0`]. Valor padrão: `0.0001`.  | 
| learning\$1rate | A taxa de aprendizado do otimizador. Valores válidos: flutuante, intervalo: [`0.0`, `1.0`].Valor padrão: `0.001`. | 
| momentum |  A dinâmica dos otimizadores `"sgd"` e `"nesterov"`. Ignorado por outros otimizadores. Valores válidos: flutuante, intervalo: [`0.0`, `1.0`]. Valor padrão: `0.9`.  | 
| optimizer |  O tipo de otimizador. Para obter mais informações, consulte [Otimizadores](https://www.tensorflow.org/api_docs/python/tf/keras/optimizers) na TensorFlow documentação. Valores válidos: string, qualquer um dos seguintes: (`"adamw"`, `"adam"`, `"sgd"`, `"nesterov"`, `"rmsprop"`, ` "adagrad"` ou `"adadelta"`). Valor padrão: `"adam"`.  | 
| regularizers\$1l2 |  O fator de regularização L2 para a camada densa na camada de classificação. Usado somente quando `reinitialize_top_layer` for definido como `"True"`. Valores válidos: flutuante, intervalo: [`0.0`, `1.0`]. Valor padrão: `0.0001`.  | 
| reinitialize\$1top\$1layer |  Se definido como `"Auto"`, os parâmetros da camada de classificação superior são reinicializados durante o ajuste fino. Para treinamento incremental, os parâmetros da camada de classificação superior não são reinicializados, a menos que sejam definidos como `"True"`. Valores válidos: string, qualquer um dos seguintes: (`"Auto"`, `"True"` ou `"False"`). Valor padrão: `"Auto"`.  | 
| rho |  O fator de desconto para o gradiente dos otimizadores `"adadelta"` e `"rmsprop"`. Ignorado por outros otimizadores.  Valores válidos: flutuante, intervalo: [`0.0`, `1.0`]. Valor padrão: `0.95`.  | 
| train\$1only\$1on\$1top\$1layer |  Se `"True"`, somente os parâmetros da camada de classificação superior forem ajustados. Se `"False"`, todos os parâmetros do modelo são ajustados. Valores válidos: string, ou: (`"True"` ou `"False"`). Valor padrão: `"False"`.  | 
| validation\$1split\$1ratio |  A fração de dados de treinamento a ser dividida aleatoriamente para criar dados de validação. Usado somente se os dados de validação não forem fornecidos pelo canal `validation`. Valores válidos: flutuante, intervalo: [`0.0`, `1.0`]. Valor padrão: `0.2`.  | 
| warmup\$1steps\$1fraction |  A fração do número total de etapas de atualização do gradiente, em que a taxa de aprendizado aumenta de 0 para a taxa de aprendizado inicial como um aquecimento. Usado somente com o otimizador `adamw`. Valores válidos: flutuante, intervalo: [`0.0`, `1.0`]. Valor padrão: `0.1`.  | 

# Ajustar uma classificação de texto - TensorFlow modelo
<a name="text-classification-tensorflow-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 Texto TensorFlow
<a name="text-classification-tensorflow-metrics"></a>

Consulte a tabela a seguir para descobrir quais métricas são calculadas pelo TensorFlow algoritmo de Classificação de Texto.


| Nome da métrica | Description | Direção de otimização | Padrão Regex | 
| --- | --- | --- | --- | 
| validation:accuracy | A proporção do número de predições corretas para o número total de predições feitas. | Maximizar | `val_accuracy=([0-9\\.]+)` | 

## Classificação de texto ajustável - hiperparâmetros TensorFlow
<a name="text-classification-tensorflow-tunable-hyperparameters"></a>

Ajuste um modelo de classificação de texto com os seguintes hiperparâmetros: Os hiperparâmetros que têm o maior impacto nas métricas objetivas de classificação de texto são: `batch_size`, `learning_rate` e `optimizer`. Os hiperparâmetros ajustáveis relacionados ao otimizador como `momentum`, `regularizers_l2`, `beta_1`, `beta_2` e `eps` com base no `optimizer` selecionado. Por exemplo, use `beta_1` e `beta_2` somente quando `adamw` ou `adam` for o `optimizer`.

Para obter mais informações sobre quais hiperparâmetros são usados para cada `optimizer`, consulte [Classificação de texto - TensorFlow Hiperparâmetros](text-classification-tensorflow-Hyperparameter.md).


| Nome do parâmetro | Tipo de parâmetro | Intervalos recomendados | 
| --- | --- | --- | 
| batch\$1size | IntegerParameterRanges | MinValue: 4, MaxValue 128 | 
| 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 | 
| learning\$1rate | ContinuousParameterRanges | MinValue: 1e-6, 0,5 MaxValue | 
| momentum | ContinuousParameterRanges | MinValue: 0,0, MaxValue 0,99 | 
| optimizer | CategoricalParameterRanges | ['adamw', 'adam', 'sgd', 'rmsprop', 'nesterov', 'adagrad', 'adadelta'] | 
| regularizers\$1l2 | ContinuousParameterRanges | MinValue: 0,0, MaxValue 0,99 | 
| train\$1only\$1on\$1top\$1layer | CategoricalParameterRanges | ['True', 'False'] | 