Primeros pasos con TensorFlow: Kit de herramientas

TensorFlow es una plataforma informática para la compilación de modelos de aprendizaje automático. Ofrece diversos kits de herramientas que te permiten crear modelos con el nivel de abstracción que prefieras. Puedes usar API de nivel inferior para compilar modelos definiendo una serie de operaciones matemáticas. O bien, puedes usar API de nivel superior (como tf.estimator) para especificar arquitecturas predefinidas, como regresores lineales o redes neuronales.

En la siguiente figura, se muestra la jerarquía actual de los kits de herramientas de TensorFlow:

Jerarquía de los kits de herramientas de TensorFlow. La API Estimator se encuentra en la parte superior.

Figura 1. Jerarquía de los kits de herramientas de TensorFlow.

En la siguiente tabla, se resumen los objetivos de las diferentes capas:

Kits de herramientas Descripción
Estimador (tf.estimator) API de POO de alto nivel
tf.layers/tf.losses/tf.metrics Bibliotecas de componentes comunes del modelo
TensorFlow API de nivel inferior

TensorFlow consiste en los siguientes dos componentes:

Estos dos componentes son análogos al código de Python y al intérprete de Python. Tal como se implementa el intérprete de Python en múltiples plataformas de hardware para ejecutar el código de Python, TensorFlow permite ejecutar el grafo en diversas plataformas de hardware, incluidas CPU, GPU y TPU.

¿Qué API debes usar? Debes usar el nivel de abstracción más alto que resuelva el problema. Los niveles de abstracción más altos son más fáciles de usar, pero también son menos flexibles (por su diseño). Te recomendamos comenzar con la API de nivel más alto y poner todo en funcionamiento. Si necesitas flexibilidad adicional por cuestiones de modelos especiales, usa un nivel más bajo. Ten en cuenta que cada nivel se crea con API de niveles inferiores, por lo que la reducción de jerarquía debería ser razonablemente directa.

API de tf.estimator

Usaremos tf.estimator en la mayoría de los ejercicios del Curso intensivo de aprendizaje automático. Todo lo que harás en el ejercicio se podría haber realizado con TensorFlow en un nivel inferior (sin procesar), pero el uso de tf.estimator disminuye considerablemente la cantidad de líneas de código.

tf.estimator es compatible con la API de scikit-learn. Scikit-learn es una biblioteca de AA de código abierto muy popular en Python, con más de 100,000 usuarios, varios de ellos de Google.

Aquí se muestra, en términos muy generales, el pseudocódigo de un programa de clasificación lineal implementado en tf.estimator:

import tensorflow as tf

# Set up a linear classifier.
classifier = tf.estimator.LinearClassifier(feature_columns)

# Train the model on some example data.
classifier.train(input_fn=train_input_fn, steps=2000)

# Use it to predict.
predictions = classifier.predict(input_fn=predict_input_fn)