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.