Objeto Graph de TensorFlow

Posted on dom 11 febrero 2018 in Tutorial de Python • 2 min read

Continuando con la serie de artículos sobre Tensorflow, en este caso se explicará el significado y uso de Grapg.

Antes de continuar les dejo la lista de artículos de esta serie:

  1. Hola mundo desde TensorFlow
  2. Matemáticas básicas con TensorFlow
  3. Manejo de matrices con Tensorflow
  4. Variables y placeholders en Tensorflow

tf.Graph: Cada computo en Tensorflow es representado por un Grafo de flujo de datos, este tiene dos elementos:

  • Un objeto tf.Operation, que representa la unidad de computo.
  • Un objeto tf.Tensor, que representa unidades de datos, que se necesita para las operaciones.

A continuación se muestra una figura de la representación de un Grafo:

A continuación se muestra el uso de Graph:

In [1]:

#Se importa tensorflow
import tensorflow as tf

In [2]:

#Se define dos constantes
n1 = tf.constant(10)
n2 = tf.constant(20)

In [3]:

#Se realiza la suma de las dos constantes
n3 = n1+n2

In [4]:

#Se instancia la sesión y se ejecuta almacenando el resultado de n3 que se muestra

with tf.Session() as sess:
    result = sess.run(n3)
print (result)

30

In [5]:

#Se imprime la constante n3, es una suma, y de tipo int32
print(n3)

Tensor("add:0", shape=(), dtype=int32)

In [6]:

#Se obtiene el valor por defecto del grafo en memoria
print (tf.get_default_graph())

<tensorflow.python.framework.ops.Graph object at 0x7f1026aa1cf8>

In [7]:

#Se instancia el objeto grafo 
g = tf.Graph()

In [8]:

#Se imprime su valor, los valores en memoria serán distintos del por defecto al creado.
print(g)

<tensorflow.python.framework.ops.Graph object at 0x7f1026ad00b8>

In [9]:

#Se define graph1 como el grafo por defecto
graph1 = tf.get_default_graph()

In [10]:

#Se imprime graph1, será el valor por defecto en memoria
print(graph1)

<tensorflow.python.framework.ops.Graph object at 0x7f1026aa1cf8>

In [11]:

#Se instancia el grafo2
graph2 = tf.Graph()

In [12]:

#Se muestra el valor de grafo2
print(graph2)

<tensorflow.python.framework.ops.Graph object at 0x7f1026ad0390>

In [13]:

#Se define el grafo2 como si fuera  por defecto y se muestra si en verdad es por defecto 
with graph2.as_default():
    print(graph2 is tf.get_default_graph())

True

In [14]:

#Se evalua si grafo 2, es el de por defecto
print(graph2 is tf.get_default_graph())

False

Otro ejemplo de Grafo

In [15]:

#Se define el grafo
grafo = tf.Graph()

In [16]:

#Se define la sesión pasandole el grafo
with tf.Session(graph=grafo) as sess:
    #Se define las constantes x y y que son arreglos
    x = tf.constant([11,13,16])
    y = tf.constant([10,10,10])
    #Se realiza la operación de suma de x+y
    op = tf.add(x,y)
    #Se ejecuta la operación en la sesión
    resultado = sess.run(fetches=op)
    print(resultado)

[21 23 26]

In [ ]:


Si quiere investigar más sobre Graph puede revisar su documentación en tensorflow (documentación del api y guía para los progamadores), pueden revisar el artículo en medium Tensorflow in a nutshell-Part 1: Basics, también pueden revisar el tutorial de la gente de datacamp Tensorflow tutorial for beginners.

¡Haz tu donativo! Si te gustó el artículo puedes realizar un donativo con Bitcoin (BTC) usando la billetera digital de tu preferencia a la siguiente dirección: 17MtNybhdkA9GV3UNS6BTwPcuhjXoPrSzV

O Escaneando el código QR desde la billetera:

17MtNybhdkA9GV3UNS6BTwPcuhjXoPrSzV