Apéndice D. Gráficos TensorFlow

En este apéndice, exploraremos las gráficas generadas por las funciones TF (verCapítulo 12).

Funciones TF y funciones concretas

Las funciones TF son polimórficas, lo que significa que admiten entradas de distintos tipos (y formas). Por ejemplo, considera la siguiente función tf_cube():

@tf.function
def tf_cube(x):
    return x ** 3

Cada vez que llames a una función TF con una nueva combinación de tipos o formas de entrada, genera una nueva función concreta, con su propio gráfico especializado para esa combinación concreta. Tal combinación de tipos de argumentos y formas se denomina firma de entrada. Si llamas a la función TF con una firma de entrada que ya ha visto antes, reutilizará la función concreta que generó anteriormente. Por ejemplo, si llamas a tf_cube(tf.constant(3.0)), la función TF reutilizará la misma función concreta que utilizó para tf_cube(tf.constant(2.0)) (para tensores escalares float32). Pero generará una nueva función concreta si llamas a tf_cube(tf.constant([2.0])) o tf_cube(tf.constant([3.0])) (para tensores float32 de forma [1]), y otra más para tf_cube(tf.constant([[1.0, 2.0], [3.0, 4.0]])) (para tensores float32 de forma [2, 2]). Puedes obtener la función concreta para una determinada combinación de entradas llamando al método get_concrete_function() de la función TF. Entonces se puede llamar como una función normal, pero sólo admitirá una firma de entrada (en este ejemplo, tensores escalares float32):

>>> concrete_function ...

Get Aprendizaje automático práctico con Scikit-Learn, Keras y TensorFlow, 3ª edición now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.