

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.

# Interfaz de entrada y salida para el algoritmo TabTransformer
<a name="InputOutput-TabTransformer"></a>

TabTransformer funciona con datos tabulares, donde las filas representan las observaciones, una columna representa la variable o etiqueta objetivo y las columnas restantes representan las características. 

La implementación de SageMaker IA TabTransformer es compatible con CSV para el entrenamiento y la inferencia:
+ Para la **formación ContentType**, las entradas válidas deben ser *texto/csv*.
+ *Para la **inferencia ContentType**, las entradas válidas deben ser text/csv.*

**nota**  
Para la capacitación de CSV, el algoritmo asume la variable de destino en la primera columna y ese CSV no dispone de un registro de encabezado.   
Para la inferencia de CSV, el algoritmo asume que la entrada de CSV no dispone de la columna de etiqueta. 

**Formato de entrada para los datos de entrenamiento, los datos de validación y las características categóricas**

Ten cuidado con el formato de los datos de entrenamiento para introducirlos en el modelo. TabTransformer Debe proporcionar la ruta a un bucket de Amazon S3 que contenga los datos de entrenamiento y de validación. También puede incluir una lista de características categóricas. Utilice los canales `training` y `validation` para proporcionar los datos de entrada. o utilice solo el canal `training` si lo prefiere.

**Uso de ambos canales (`training` y `validation`)**

Puede proporcionar los datos de entrada mediante dos rutas S3, una para el canal `training` y otra para el canal `validation`. Cada ruta S3 puede ser un prefijo S3 que apunte a uno o más archivos CSV, o una ruta S3 completa que apunte a un archivo CSV específico. Las variables de destino deben estar en la primera columna del archivo CSV. Las variables predictoras (características) deben estar en las columnas restantes. Si se proporcionan varios archivos CSV para los `validation` canales `training` o, el TabTransformer algoritmo concatena los archivos. Los datos de validación se utilizan para calcular una puntuación de validación al final de cada iteración de potenciación. Hay una interrupción anticipada cuando la puntuación de validación deja de mejorar.

Si los predictores incluyen características categóricas, puede proporcionar un archivo JSON con el nombre `categorical_index.json` en la misma ubicación que los archivos de datos de entrenamiento. Si proporciona un archivo JSON para las características categóricas, el canal `training` debe apuntar a un prefijo S3, y no a un archivo CSV específico. Este archivo debe contener un diccionario de Python donde la clave sea la cadena `"cat_index_list"` y el valor sea una lista de enteros únicos. Cada número entero de la lista de valores debe indicar el índice de columnas de las características categóricas correspondientes en el archivo CSV de datos de entrenamiento. Cada valor debe ser un entero positivo (mayor de cero, ya que cero representa el valor objetivo), menor que el `Int32.MaxValue` (2147483647) y menor que el número total de columnas. Solo debe haber un archivo JSON de índice categórico.

**Uso del canal `training` exclusivamente**

También puede proporcionar sus datos de entrada mediante una única ruta S3 para el canal `training`. Esta ruta S3 debe apuntar a un directorio con un subdirectorio denominado `training/` que contenga uno o más archivos CSV. Si lo desea, puede incluir otro subdirectorio en la misma ubicación, denominado `validation/`, que también tenga uno o más archivos CSV. Si no se proporcionan los datos de validación, se toma una muestra aleatoria del 20 % de los datos de entrenamiento para que ejerzan como datos de validación. Si los predictores contienen características categóricas, puede proporcionar un archivo JSON con el nombre `categorical_index.json` en la misma ubicación que los subdirectorios de datos.

**nota**  
En el modo de entrada de entrenamiento de CSV, la memoria total disponible para el algoritmo (el recuento de instancias multiplicado por la memoria disponible en `InstanceType`) debe poder contener el conjunto de datos de entrenamiento.