

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Clasificación de textos - TensorFlow
<a name="text-classification-tensorflow"></a>

El algoritmo Amazon SageMaker AI Text Classification es un TensorFlow algoritmo de aprendizaje supervisado que admite el aprendizaje por transferencia con muchos modelos previamente entrenados desde el [TensorFlow Hub](https://tfhub.dev/). Utilice el aprendizaje por transferencia para ajustar uno de los modelos previamente entrenados disponibles en su propio conjunto de datos, aunque no haya una gran cantidad de datos de texto disponibles. El algoritmo de clasificación de texto toma una cadena de texto como entrada y genera una probabilidad para cada una de las etiquetas de clase. Los conjuntos de datos de entrenamiento deben estar en formato CSV. Esta página incluye información sobre las recomendaciones de instancias de Amazon EC2 y cuadernos de muestra para Text Classification -. TensorFlow

**Topics**
+ [Cómo utilizar el algoritmo de clasificación de texto mediante SageMaker IA TensorFlow](text-classification-tensorflow-how-to-use.md)
+ [Interfaz de entrada y salida para el TensorFlow algoritmo de clasificación de textos](text-classification-tensorflow-inputoutput.md)
+ [Recomendación de instancia de Amazon EC2 para el algoritmo de clasificación de textos TensorFlow](#text-classification-tensorflow-instances)
+ [Clasificación de textos: TensorFlow ejemplos de cuadernos](#text-classification-tensorflow-sample-notebooks)
+ [Cómo TensorFlow funciona la clasificación de textos](text-classification-tensorflow-HowItWorks.md)
+ [TensorFlow Modelos Hub](text-classification-tensorflow-Models.md)
+ [Clasificación de texto: TensorFlow hiperparámetros](text-classification-tensorflow-Hyperparameter.md)
+ [Ajuste un modelo de clasificación de texto TensorFlow](text-classification-tensorflow-tuning.md)

# Cómo utilizar el algoritmo de clasificación de texto mediante SageMaker IA TensorFlow
<a name="text-classification-tensorflow-how-to-use"></a>

Puede utilizar la clasificación de texto, TensorFlow como un algoritmo integrado de Amazon SageMaker AI. En la siguiente sección, se describe cómo utilizar la clasificación de texto TensorFlow con el SDK de Python para SageMaker IA. Para obtener información sobre cómo utilizar la clasificación de texto, TensorFlow desde la interfaz de usuario clásica de Amazon SageMaker Studio, consulte[SageMaker JumpStart modelos preentrenados](studio-jumpstart.md).

El TensorFlow algoritmo de clasificación de texto admite el aprendizaje por transferencia mediante cualquiera de los TensorFlow modelos preentrenados compatibles. Para obtener una lista de todos los modelos prentrenados disponibles, consulte [TensorFlow Modelos Hub](text-classification-tensorflow-Models.md). Cada modelo prentrenado tiene un `model_id` de modelo único. El siguiente ejemplo emplea BERT Base Uncased (`model_id`: `tensorflow-tc-bert-en-uncased-L-12-H-768-A-12-2`) para ajustar un conjunto de datos personalizado. Todos los modelos previamente entrenados se descargan previamente del TensorFlow Hub y se almacenan en buckets de Amazon S3 para que los trabajos de capacitación se puedan ejecutar de forma aislada en la red. Utilice estos artefactos de entrenamiento de modelos pregenerados para construir un estimador de IA. SageMaker 

En primer lugar, recupere el URI de la imagen de Docker, del script de entrenamiento y del modelo prentrenado. Luego, cambie los hiperparámetros como crea conveniente. Puede ver un diccionario de Python con todos los hiperparámetros disponibles y sus valores predeterminados con `hyperparameters.retrieve_default`. Para obtener más información, consulte [Clasificación de texto: TensorFlow hiperparámetros](text-classification-tensorflow-Hyperparameter.md). Usa estos valores para construir un SageMaker estimador de IA.

**nota**  
Los valores de hiperparámetros predeterminados son diferentes para los distintos modelos. Por ejemplo, para los modelos más grandes, el tamaño de lote predeterminado es menor. 

En este ejemplo, se utiliza el conjunto de datos [https://www.tensorflow.org/datasets/catalog/glue#gluesst2](https://www.tensorflow.org/datasets/catalog/glue#gluesst2), que contiene reseñas positivas y negativas sobre películas. Hemos descargado previamente el conjunto de datos y hemos hecho que esté disponible en Amazon S3. Para ajustar su modelo, llame a `.fit` utilizando la ubicación de Amazon S3 del conjunto de datos de entrenamiento. Cualquier bucket de S3 utilizado en un bloc de notas debe estar en la misma AWS región que la instancia de portátil que accede a él.

```
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 obtener más información sobre cómo utilizar el TensorFlow algoritmo de clasificación de SageMaker textos para transferir el aprendizaje en un conjunto de datos personalizado, consulte el cuaderno [Introducción a JumpStart la clasificación de textos](https://github.com/aws/amazon-sagemaker-examples/blob/main/introduction_to_amazon_algorithms/jumpstart_text_classification/Amazon_JumpStart_Text_Classification.ipynb).

# Interfaz de entrada y salida para el TensorFlow algoritmo de clasificación de textos
<a name="text-classification-tensorflow-inputoutput"></a>

Cada uno de los modelos previamente entrenados que figuran en TensorFlow Hub Models se puede ajustar a cualquier conjunto de datos compuesto por oraciones de texto con cualquier número de clases. El modelo prentrenado asocia una capa de clasificación al modelo de incrustación de texto e inicia los parámetros de la capa en valores aleatorios. La dimensión de salida de la capa de clasificación se determina en función del número de clases detectadas en los datos de entrada. 

Ten cuidado con el formato de los datos de entrenamiento para introducirlos en el modelo de clasificación de textos. TensorFlow 
+ **Formato de entrada de los datos de entrenamiento:** un directorio con un archivo `data.csv`. Cada fila de la primera columna debe tener etiquetas de clase entera entre 0 y el número de clases. Cada fila de la segunda columna debe tener los datos de texto correspondientes.

Lo que sigue es un ejemplo de una entrada de archivo CSV: Tenga en cuenta que el archivo no debería tener ningún encabezado. El archivo debe alojarse en un bucket de Amazon S3 con una ruta similar a `s3://bucket_name/input_directory/`. Tenga en cuenta que es obligatorio incluir `/` al final.

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

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

Puedes iniciar el entrenamiento de un nuevo modelo con artefactos de un modelo que hayas entrenado previamente con SageMaker IA. El entrenamiento incremental supone un ahorro de tiempo cuando queremos entrenar un nuevo modelo con datos idénticos o similares.

**nota**  
Solo puedes sembrar un modelo de clasificación de texto basado en SageMaker IA (un TensorFlow modelo con otro de clasificación de textos) TensorFlow entrenado en SageMaker IA. 

Para el entrenamiento incremental, puede utilizar cualquier conjunto de datos, siempre y cuando el conjunto de clases siga siendo el mismo. El paso de entrenamiento incremental es similar al paso de ajuste; la diferencia es que, en lugar de comenzar con un modelo previamente entrenado, se comienza con un modelo de ajuste fino existente. 

Para obtener más información sobre el uso del entrenamiento incremental con el TensorFlow algoritmo de clasificación de textos mediante SageMaker IA, consulte el cuaderno de muestra [Introducción a JumpStart la clasificación de textos](https://github.com/aws/amazon-sagemaker-examples/blob/main/introduction_to_amazon_algorithms/jumpstart_text_classification/Amazon_JumpStart_Text_Classification.ipynb).

## Inferencia con el algoritmo de clasificación de textos TensorFlow
<a name="text-classification-tensorflow-inference"></a>

Puede alojar el modelo ajustado que resulta de su formación en clasificación de TensorFlow textos para la inferencia. Para la inferencia, todos los formatos de texto sin procesar deben ser del tipo de contenido `application/x-text`.

Al ejecutar la inferencia, se obtienen valores de probabilidad, etiquetas de clase para todas las clases y la etiqueta pronosticada correspondiente al índice de clase con la probabilidad más alta, codificada en formato JSON. El TensorFlow modelo de clasificación de texto procesa una sola cadena por solicitud y genera solo una línea. Lo siguiente es un ejemplo de una respuesta en formato JSON:

```
accept: application/json;verbose

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

Si `accept` se establece en `application/json`, el modelo solo genera probabilidades. 

## Recomendación de instancia de Amazon EC2 para el algoritmo de clasificación de textos TensorFlow
<a name="text-classification-tensorflow-instances"></a>

El TensorFlow algoritmo de clasificación de texto es compatible con todas las instancias de CPU y GPU para el entrenamiento, incluidas las siguientes:
+ `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`

Para el entrenamiento con lotes grandes, recomendamos utilizar instancias de GPU con más memoria. Para la inferencia, se pueden usar instancias de CPU (como M5) o de GPU (P2, P3, G4dn o G5). Para obtener una lista completa de instancias de SageMaker formación e inferencia en todas AWS las regiones, consulta [Amazon SageMaker Pricing](https://aws.amazon.com/sagemaker/pricing/).

## Clasificación de textos: TensorFlow ejemplos de cuadernos
<a name="text-classification-tensorflow-sample-notebooks"></a>

Para obtener más información sobre cómo utilizar el TensorFlow algoritmo de clasificación de texto de SageMaker IA para el aprendizaje por transferencia en un conjunto de datos personalizado, consulte la [introducción al JumpStart cuaderno de clasificación de textos](https://github.com/aws/amazon-sagemaker-examples/blob/main/introduction_to_amazon_algorithms/jumpstart_text_classification/Amazon_JumpStart_Text_Classification.ipynb).

Para obtener instrucciones sobre cómo crear instancias del cuaderno de Jupyter y acceder a ellas, que puede utilizar para ejecutar el ejemplo en SageMaker IA, consulte. [Instancias de Amazon SageMaker Notebook](nbi.md) Una vez que haya creado una instancia de bloc de notas y la haya abierto, seleccione la pestaña **Ejemplos de SageMaker IA** para ver una lista de todos los ejemplos de SageMaker IA. Para abrir un cuaderno, elija su pestaña **Usar** y elija **Crear copia**.

# Cómo TensorFlow funciona la clasificación de textos
<a name="text-classification-tensorflow-HowItWorks"></a>

El TensorFlow algoritmo de clasificación de texto toma el texto tal como lo clasifica en una de las etiquetas de clase de salida. Las redes de aprendizaje profundo, como [BERT](https://arxiv.org/pdf/1810.04805.pdf), son muy precisas a la hora de clasificar textos. También hay redes de aprendizaje profundo que se entrenan con conjuntos de datos de texto de gran tamaño, por ejemplo TextNet, que tiene más de 11 millones de textos repartidos en unas 11 000 categorías. Después de entrenar una red con TextNet datos, puede ajustarla en un conjunto de datos con un enfoque particular para realizar tareas de clasificación de textos más específicas. El TensorFlow algoritmo de clasificación de textos de Amazon SageMaker AI admite el aprendizaje por transferencia en muchos modelos previamente entrenados que están disponibles en el TensorFlow Hub.

Según el número de etiquetas de clase que contengan tus datos de entrenamiento, se adjunta una capa de clasificación de texto al TensorFlow modelo previamente entrenado que elijas. La capa de clasificación está compuesta por una capa de eliminación, una capa densa y una capa totalmente conectada con regularización L2, y se inicia con ponderaciones aleatorias. Puede cambiar los valores de los hiperparámetros de la tasa de eliminación (en la capa de eliminación) y el factor de regularización L2 (en la capa densa).

Puede ajustar toda la red (lo que incluye el modelo prentrenado) o solo la capa de clasificación superior en los nuevos datos de entrenamiento. Con este método de aprendizaje por transferencia, es posible llevar a cabo el entrenamiento con conjuntos de datos más pequeños.

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

Los siguientes modelos previamente entrenados están disponibles para su uso en el aprendizaje por transferencia con el TensorFlow algoritmo de clasificación de textos. 

El tamaño, la cantidad de parámetros, el tiempo de entrenamiento y la latencia de inferencia de estos modelos puede variar considerablemente para un conjunto de datos determinado. El mejor modelo para su caso de uso dependerá de la complejidad del conjunto de datos de ajuste y de sus necesidades con respecto al tiempo de entrenamiento, la latencia de inferencia o la precisión del modelo.


| Nombre del modelo | `model_id` | origen | 
| --- | --- | --- | 
|  BERT Base Uncased  | `tensorflow-tc-bert-en-uncased-L-12-H-768-A-12-2` | [TensorFlow Enlace al hub](https://tfhub.dev/tensorflow/bert_en_uncased_L-12_H-768_A-12/3) | 
|  BERT Base Cased  | `tensorflow-tc-bert-en-cased-L-12-H-768-A-12-2` | [TensorFlow Enlace al hub](https://tfhub.dev/tensorflow/bert_en_cased_L-12_H-768_A-12/3) | 
|  BERT Base Multilingual Cased  | `tensorflow-tc-bert-multi-cased-L-12-H-768-A-12-2` | [TensorFlow Enlace al hub](https://tfhub.dev/tensorflow/bert_multi_cased_L-12_H-768_A-12/3) | 
|  Small BERT L-2\$1H-128\$1A-2  | `tensorflow-tc-small-bert-bert-en-uncased-L-2-H-128-A-2` | [TensorFlow Enlace al hub](https://tfhub.dev/tensorflow/small_bert/bert_en_uncased_L-2_H-128_A-2/1) | 
|  Small BERT L-2\$1H-256\$1A-4 | `tensorflow-tc-small-bert-bert-en-uncased-L-2-H-256-A-4` | [TensorFlow Enlace al hub](https://tfhub.dev/tensorflow/small_bert/bert_en_uncased_L-2_H-256_A-4/1) | 
|  Small BERT L-2\$1H-512\$1A-8  | `tensorflow-tc-small-bert-bert-en-uncased-L-2-H-512-A-8` | [TensorFlow Enlace al hub](https://tfhub.dev/tensorflow/small_bert/bert_en_uncased_L-2_H-512_A-8/1) | 
|  Small BERT L-2\$1H-768\$1A-12  | `tensorflow-tc-small-bert-bert-en-uncased-L-2-H-768-A-12` | [TensorFlow Enlace al hub](https://tfhub.dev/tensorflow/small_bert/bert_en_uncased_L-2_H-768_A-12/1) | 
|  Small BERT L-4\$1H-128\$1A-2  | `tensorflow-tc-small-bert-bert-en-uncased-L-4-H-128-A-2` | [TensorFlow Enlace al hub](https://tfhub.dev/tensorflow/small_bert/bert_en_uncased_L-4_H-128_A-2/1) | 
|  Small BERT L-4\$1H-256\$1A-4  | `tensorflow-tc-small-bert-bert-en-uncased-L-4-H-256-A-4` | [TensorFlow Enlace al hub](https://tfhub.dev/tensorflow/small_bert/bert_en_uncased_L-4_H-256_A-4/1) | 
|  Small BERT L-4\$1H-512\$1A-8  | `tensorflow-tc-small-bert-bert-en-uncased-L-4-H-512-A-8` | [TensorFlow Enlace al hub](https://tfhub.dev/tensorflow/small_bert/bert_en_uncased_L-4_H-512_A-8/1) | 
|  Small BERT L-4\$1H-768\$1A-12  | `tensorflow-tc-small-bert-bert-en-uncased-L-4-H-768-A-12` | [TensorFlow Enlace al hub](https://tfhub.dev/tensorflow/small_bert/bert_en_uncased_L-4_H-768_A-12/1) | 
|  Small BERT L-6\$1H-128\$1A-2  | `tensorflow-tc-small-bert-bert-en-uncased-L-6-H-128-A-2` | [TensorFlow Enlace al hub](https://tfhub.dev/tensorflow/small_bert/bert_en_uncased_L-6_H-128_A-2/1) | 
|  Small BERT L-6\$1H-256\$1A-4  | `tensorflow-tc-small-bert-bert-en-uncased-L-6-H-256-A-4` | [TensorFlow Enlace al hub](https://tfhub.dev/tensorflow/small_bert/bert_en_uncased_L-6_H-256_A-4/1) | 
|  Small BERT L-6\$1H-512\$1A-8  | `tensorflow-tc-small-bert-bert-en-uncased-L-6-H-512-A-8` | [TensorFlow Enlace al hub](https://tfhub.dev/tensorflow/small_bert/bert_en_uncased_L-6_H-512_A-8/1) | 
|  Small BERT L-6\$1H-768\$1A-12  | `tensorflow-tc-small-bert-bert-en-uncased-L-6-H-768-A-12` | [TensorFlow Enlace al hub](https://tfhub.dev/tensorflow/small_bert/bert_en_uncased_L-6_H-768_A-12/1) | 
|  Small BERT L-8\$1H-128\$1A-2  | `tensorflow-tc-small-bert-bert-en-uncased-L-8-H-128-A-2` | [TensorFlow Enlace al hub](https://tfhub.dev/tensorflow/small_bert/bert_en_uncased_L-8_H-128_A-2/1) | 
|  Small BERT L-8\$1H-256\$1A-4  | `tensorflow-tc-small-bert-bert-en-uncased-L-8-H-256-A-4` | [TensorFlow Enlace al hub](https://tfhub.dev/tensorflow/small_bert/bert_en_uncased_L-8_H-256_A-4/1) | 
|  Small BERT L-8\$1H-512\$1A-8  | `tensorflow-tc-small-bert-bert-en-uncased-L-8-H-512-A-8` | [TensorFlow Enlace al hub](https://tfhub.dev/tensorflow/small_bert/bert_en_uncased_L-8_H-512_A-8/1) | 
|  Small BERT L-8\$1H-768\$1A-12  | `tensorflow-tc-small-bert-bert-en-uncased-L-8-H-768-A-12` | [TensorFlow Enlace al hub](https://tfhub.dev/tensorflow/small_bert/bert_en_uncased_L-8_H-768_A-12/1) | 
|  Small BERT L-10\$1H-128\$1A-2  | `tensorflow-tc-small-bert-bert-en-uncased-L-10-H-128-A-2` | [TensorFlow Enlace al hub](https://tfhub.dev/tensorflow/small_bert/bert_en_uncased_L-10_H-128_A-2/1) | 
|  Small BERT L-10\$1H-256\$1A-4  | `tensorflow-tc-small-bert-bert-en-uncased-L-10-H-256-A-4` | [TensorFlow Enlace al hub](https://tfhub.dev/tensorflow/small_bert/bert_en_uncased_L-10_H-256_A-4/1) | 
|  Small BERT L-10\$1H-512\$1A-8  | `tensorflow-tc-small-bert-bert-en-uncased-L-10-H-512-A-8` | [TensorFlow Enlace al hub](https://tfhub.dev/tensorflow/small_bert/bert_en_uncased_L-10_H-512_A-8/1) | 
|  Small BERT L-10\$1H-768\$1A-12  | `tensorflow-tc-small-bert-bert-en-uncased-L-10-H-768-A-12` | [TensorFlow Enlace al hub](https://tfhub.dev/tensorflow/small_bert/bert_en_uncased_L-10_H-768_A-12/1) | 
|  Small BERT L-12\$1H-128\$1A-2  | `tensorflow-tc-small-bert-bert-en-uncased-L-12-H-128-A-2` | [TensorFlow Enlace al hub](https://tfhub.dev/tensorflow/small_bert/bert_en_uncased_L-12_H-128_A-2/1) | 
|  Small BERT L-12\$1H-256\$1A-4  | `tensorflow-tc-small-bert-bert-en-uncased-L-12-H-256-A-4` | [TensorFlow Enlace al hub](https://tfhub.dev/tensorflow/small_bert/bert_en_uncased_L-12_H-256_A-4/1) | 
|  Small BERT L-12\$1H-512\$1A-8  | `tensorflow-tc-small-bert-bert-en-uncased-L-12-H-512-A-8` | [TensorFlow Enlace al hub](https://tfhub.dev/tensorflow/small_bert/bert_en_uncased_L-12_H-512_A-8/1) | 
|  Small BERT L-12\$1H-768\$1A-12  | `tensorflow-tc-small-bert-bert-en-uncased-L-12-H-768-A-12` | [TensorFlow Enlace al hub](https://tfhub.dev/tensorflow/small_bert/bert_en_uncased_L-12_H-768_A-12/1) | 
|  BERT Large Uncased  | `tensorflow-tc-bert-en-uncased-L-24-H-1024-A-16-2` | [TensorFlow Enlace al hub](https://tfhub.dev/tensorflow/bert_en_uncased_L-24_H-1024_A-16/3) | 
|  BERT Large Cased  | `tensorflow-tc-bert-en-cased-L-24-H-1024-A-16-2` | [TensorFlow Enlace al hub](https://tfhub.dev/tensorflow/bert_en_cased_L-24_H-1024_A-16/3) | 
|  BERT Large Uncased Whole Word Masking  | `tensorflow-tc-bert-en-wwm-uncased-L-24-H-1024-A-16-2` | [TensorFlow Enlace al hub](https://tfhub.dev/tensorflow/bert_en_wwm_uncased_L-24_H-1024_A-16/3) | 
|  BERT Large Cased Whole Word Masking  | `tensorflow-tc-bert-en-wwm-cased-L-24-H-1024-A-16-2` | [TensorFlow Enlace al hub](https://tfhub.dev/tensorflow/bert_en_wwm_cased_L-24_H-1024_A-16/3) | 
|  ALBERT Base  | `tensorflow-tc-albert-en-base` | [TensorFlow Enlace al hub](https://tfhub.dev/tensorflow/albert_en_base/2) | 
|  ELECTRA Small\$1\$1  | `tensorflow-tc-electra-small-1` | [TensorFlow Enlace al hub](https://tfhub.dev/google/electra_small/2) | 
|  ELECTRA Base  | `tensorflow-tc-electra-base-1` | [TensorFlow Enlace al hub](https://tfhub.dev/google/electra_base/2) | 
|  BERT Base Wikipedia y BooksCorpus  | `tensorflow-tc-experts-bert-wiki-books-1` | [TensorFlow Enlace al hub](https://tfhub.dev/google/experts/bert/wiki_books/2) | 
|  BERT BASE MEDLINE/ PubMed  | `tensorflow-tc-experts-bert-pubmed-1` | [TensorFlow Enlace hub](https://tfhub.dev/google/experts/bert/pubmed/2) | 
|  Talking Heads Base  | `tensorflow-tc-talking-heads-base` | [TensorFlow Enlace al hub](https://tfhub.dev/tensorflow/talkheads_ggelu_bert_en_base/1) | 
|  Talking Heads Large  | `tensorflow-tc-talking-heads-large` | [TensorFlow Enlace al hub](https://tfhub.dev/tensorflow/talkheads_ggelu_bert_en_large/1) | 

# Clasificación de texto: TensorFlow hiperparámetros
<a name="text-classification-tensorflow-Hyperparameter"></a>

Los hiperparámetros son parámetros que se establecen antes de que un modelo de machine learning comience a aprender. Los siguientes hiperparámetros son compatibles con el TensorFlow algoritmo integrado de detección de objetos de Amazon SageMaker AI. Para obtener más información sobre el ajuste de hiperparámetros, consulte [Ajuste un modelo de clasificación de texto TensorFlow](text-classification-tensorflow-tuning.md). 


| Nombre del parámetro | Description (Descripción) | 
| --- | --- | 
| batch\$1size |  El tamaño del lote para la capacitación. Para el entrenamiento en instancias con múltiples GPUs, este tamaño de lote se usa en todas las GPUs.  Valores válidos: número entero positivo. Valor predeterminado: `32`.  | 
| beta\$11 |  El beta1 para los optimizadores `"adam"` y `"adamw"`. Representa la tasa de degradación exponencial para las estimaciones del primer momento. No se tiene en cuenta para otros optimizadores. Valores válidos: flotante, con el rango [`0.0`, `1.0`]. Valor predeterminado: `0.9`.  | 
| beta\$12 |  El beta2 para los optimizadores `"adam"` y `"adamw"`. Representa la tasa de degradación exponencial para las estimaciones del segundo momento. No se tiene en cuenta para otros optimizadores. Valores válidos: flotante, con el rango [`0.0`, `1.0`]. Valor predeterminado: `0.999`.  | 
| dropout\$1rate | La tasa de eliminación en la capa de eliminación, dentro de la capa de clasificación superior. Solo se usa cuando `reinitialize_top_layer` está establecido en `"True"`. Valores válidos: flotante, con el rango [`0.0`, `1.0`]. Valor predeterminado: `0.2` | 
| early\$1stopping |  Se establece en `"True"` a fin de usar una lógica de detención temprana durante el entrenamiento. Si es `"False"`, no se utiliza la interrupción temprana. Valores válidos: cadena (`"True"` o `"False"`). Valor predeterminado: `"False"`.  | 
| early\$1stopping\$1min\$1delta | El cambio mínimo necesario para considerarse una mejora. Un cambio absoluto inferior al valor de early\$1stopping\$1min\$1delta no se considera mejora. Solo se usa cuando early\$1stopping está establecido en "True".Valores válidos: flotante, con el rango [`0.0`, `1.0`].Valor predeterminado: `0.0`. | 
| early\$1stopping\$1patience |  El número de epochs (fechas de inicio) para seguir entrenando sin que haya mejoras. Solo se usa cuando `early_stopping` está establecido en `"True"`. Valores válidos: número entero positivo. Valor predeterminado: `5`.  | 
| epochs |  El número de fechas de inicio de capacitación. Valores válidos: número entero positivo. Valor predeterminado: `10`.  | 
| epsilon |  El valor épsilon para los optimizadores `"adam"`, `"rmsprop"`, `"adadelta"` y `"adagrad"`. Se suele establecer en un valor pequeño para evitar la división por 0. No se tiene en cuenta para otros optimizadores. Valores válidos: flotante, con el rango [`0.0`, `1.0`]. Valor predeterminado: `1e-7`.  | 
| initial\$1accumulator\$1value |  El valor inicial de los acumuladores o los valores de impulso por parámetro del optimizador `"adagrad"`. No se tiene en cuenta para otros optimizadores. Valores válidos: flotante, con el rango [`0.0`, `1.0`]. Valor predeterminado: `0.0001`.  | 
| learning\$1rate | La tasa de aprendizaje del optimizador. Valores válidos: flotante, con el rango [`0.0`, `1.0`].Valor predeterminado: `0.001`. | 
| momentum |  El valor de impulso para los optimizadores `"sgd"` y `"nesterov"`. No se tiene en cuenta para otros optimizadores. Valores válidos: flotante, con el rango [`0.0`, `1.0`]. Valor predeterminado: `0.9`.  | 
| optimizer |  El tipo de optimizador. Para obtener más información, consulte [Optimizadores](https://www.tensorflow.org/api_docs/python/tf/keras/optimizers) en la TensorFlow documentación. Valores válidos: cadena, `"adamw"`, `"adam"`, `"sgd"`, `"nesterov"`, `"rmsprop"`, ` "adagrad"` o `"adadelta"`. Valor predeterminado: `"adam"`.  | 
| regularizers\$1l2 |  El factor de regularización L2 de la capa densa en la capa de clasificación. Solo se usa cuando `reinitialize_top_layer` está establecido en `"True"`. Valores válidos: flotante, con el rango [`0.0`, `1.0`]. Valor predeterminado: `0.0001`.  | 
| reinitialize\$1top\$1layer |  Si se establece en `"Auto"`, los parámetros de la capa de clasificación superior se reinicializan durante el ajuste. Para el entrenamiento incremental, los parámetros de la capa de clasificación superior no se reinicializan, a no ser que se establezca en `"True"`. Valores válidos: cadena, `"Auto"`, `"True"` o `"False"`. Valor predeterminado: `"Auto"`.  | 
| rho |  El factor de descuento para el gradiente de los optimizadores `"adadelta"` y `"rmsprop"`. No se tiene en cuenta para otros optimizadores.  Valores válidos: flotante, con el rango [`0.0`, `1.0`]. Valor predeterminado: `0.95`.  | 
| train\$1only\$1on\$1top\$1layer |  Si es `"True"`, solo se refinan los parámetros de la capa de clasificación superior. Si es `"False"`, todos los parámetros del modelo se refinan. Valores válidos: cadena (`"True"` o `"False"`). Valor predeterminado: `"False"`.  | 
| validation\$1split\$1ratio |  La fracción de datos de entrenamiento que se va a dividir aleatoriamente para crear datos de validación. Solo se usa si no se suministran datos de validación a través del canal `validation`. Valores válidos: flotante, con el rango [`0.0`, `1.0`]. Valor predeterminado: `0.2`.  | 
| warmup\$1steps\$1fraction |  La fracción del número total de pasos de actualización del gradiente; la tasa de aprendizaje aumenta desde 0 hasta la tasa de aprendizaje inicial durante la fase de preparación. Solo se usa con el optimizador `adamw`. Valores válidos: flotante, con el rango [`0.0`, `1.0`]. Valor predeterminado: `0.1`.  | 

# Ajuste un modelo de clasificación de texto TensorFlow
<a name="text-classification-tensorflow-tuning"></a>

El *ajuste de modelo automático*, también conocido como ajuste de hiperparámetros, encuentra la mejor versión de un modelo ejecutando muchas tareas que probar una serie de hiperparámetros en su conjunto de datos. Usted elige los hiperparámetros que pueden ajustarse, un rango de valores para cada uno de ellos y una métrica objetiva. Puede elegir la métrica objetiva de las métricas que el algoritmo computa. El ajuste de modelo automático busca los hiperparámetros elegidos para encontrar la combinación de valores que obtienen el modelo que optimiza la métrica objetiva.

Para obtener más información acerca del ajuste de modelos, consulte [Ajuste automático de modelos con IA SageMaker](automatic-model-tuning.md).

## Métricas calculadas mediante el algoritmo de clasificación de textos TensorFlow
<a name="text-classification-tensorflow-metrics"></a>

Consulte la siguiente tabla para ver qué métricas calcula el TensorFlow algoritmo de clasificación de texto:.


| Nombre de métrica | Description (Descripción) | Dirección de optimización | Patrón de expresiones regulares | 
| --- | --- | --- | --- | 
| validation:accuracy | La ratio del número de predicciones correctas con respecto al número total de predicciones realizadas. | Maximizar | `val_accuracy=([0-9\\.]+)` | 

## Clasificación de texto ajustable: hiperparámetros TensorFlow
<a name="text-classification-tensorflow-tunable-hyperparameters"></a>

Puede ajustar un modelo de clasificación de texto con los siguientes hiperparámetros. Los hiperparámetros con un mayor impacto en las métricas de objetivos de clasificación de texto son `batch_size`, `learning_rate` y `optimizer`. Ajuste los hiperparámetros relacionados con el optimizador, como `momentum`, `regularizers_l2`, `beta_1`, `beta_2` y `eps`, en función del `optimizer` seleccionado. Por ejemplo, utilice `beta_1` y `beta_2` solo cuando el `optimizer` sea `adamw` o `adam`.

Para obtener más información sobre los hiperparámetros que se utilizan en cada `optimizer`, consulte [Clasificación de texto: TensorFlow hiperparámetros](text-classification-tensorflow-Hyperparameter.md).


| Nombre del parámetro | Tipo de parámetro | Intervalos recomendados | 
| --- | --- | --- | 
| batch\$1size | IntegerParameterRanges | MinValue: 4, MaxValue: 128 | 
| beta\$11 | ContinuousParameterRanges | MinValue: 1e-6, 0,999 MaxValue | 
| beta\$12 | ContinuousParameterRanges | MinValue: 1e-6, 0,999 MaxValue | 
| eps | ContinuousParameterRanges | MinValue: 1e-8,: 1,0 MaxValue | 
| learning\$1rate | ContinuousParameterRanges | MinValue: 1e-6,: 0,5 MaxValue | 
| momentum | ContinuousParameterRanges | MinValue: 0,0, 0,999 MaxValue | 
| optimizer | CategoricalParameterRanges | ['adamw', 'adam', 'sgd', 'rmsprop', 'nesterov', 'adagrad', 'adadelta'] | 
| regularizers\$1l2 | ContinuousParameterRanges | MinValue: 0,0, MaxValue 0,999 | 
| train\$1only\$1on\$1top\$1layer | CategoricalParameterRanges | ['True', 'False'] | 