El comprender como funcionan los gr谩ficos computacionales en Tensorflow pasa por conocer a fondo los placeholders y las variables, conocer sus diferencias, y saber cuando usar una u otra.
驴diferencia entre placeholders y variables?
Como resumen podemos decir que las variables las usa tensorflow para modificarlas y as铆 optimizar el algoritmo, por ejemplo, los pesos de las redes neuronales son variables, las cuales se van modificando a medida que se ajusta el modelo.
Por otro lado los placeholders, podemos definirlos las posiciones donde se introducir谩n los datos con los que entrenamos el modelo y luego nos devuelve el modelo luego de hacer la predicci贸n.
Variables en tensorflow
Para crear las variables lo hacemos con tf.variable() que toma un tensor como entrada y genera una variable, no obstante a煤n necesitamos inicializar la variable. Esta inicializaci贸n es lo que coloca la variable con los m茅todos correspondientes en el gr谩fico computacional. Veamos un ejemplo de creaci贸n e inicializaci贸n de una variable:

Antes de pasar a ver los placeholders, es importante decirle a Tensorflow cuando inicializar las variables, usando del m茅todo initializer, sobretodo en casos donde la inicializaci贸n de una variable depende del resultado de la inicializaci贸n de otra u otras.
En el ejemplo anterior con tf.global_vatiables_initializer(), tenemos la forma correcta para inicializar TODAS las variables en el gr谩fico computacional. Ahora veremos un ejemplo donde tenemos que inicializar cada variable por separado ya que unas dependen de la inicializaci贸n de otras:

Placeholders en Tensorflow
Los placeholders solo mantienen la posici贸n para que los datos se introduzcan en el gr谩fico computacional. Estos placeholders obtienen datos de un argumento feed_dict en la sesi贸n. Para poner un placeholder en el gr谩fico computacional debemos realizar al menos una operaci贸n en el marcador de posici贸n. En el siguiente ejemplo inicializamos el gr谩fico, declaramos a:
- x como un placeholder
- y como la operaci贸n de identidad en x
- dataX son los datos para alimentar el placeholder
Para finalizar ejecutamos la operaci贸n con sess.run()

Usando matrices con TensorFlow
Al igual que los placeholders y las variables, aprender a usar las matrices dentro de tensorflow es importante para comprender el flujo de trabajo de los gr谩ficos computacionales de tensorflow.
Dentro de Tensorflow, much铆simos algoritmos dependen de operaciones matriciales. Veamos al igual que hicimos con las matrices en numpy y en pandas, usos b谩sicos dentro de tensorflow.
Creando matrices con TensorFlow
tf.convert_to_tensor()
Si ya tenemos matrices creadas con numpy, podemos a帽adirla a nuestra sesi贸n de tensorflow con la funci贸n tf.convert_to_tensor():

tf.random_uniform([4,5])
Podemos inicializar una matriz de dos dimensiones con n煤meros aleatorios a partir de una distribuci贸n uniforme usando tf.random_uniform():

tf.truncated_normal()
Otra forma de inicializar una matriz en dos dimensiones con n煤meros aleatorios es con el m茅todo tf.truncated_normal() donde se generan n煤meros aleatorios a partir de una distribuci贸n normal especificando la media y la desviaci贸n est谩ndar:

tf.fill()
Si queremos crear una matriz con n煤meros iguales podemos usar tf.fill():

Operaciones con matrices en TensorFlow
Podemos ejecutar operaciones con matrices dentro de la sesi贸n de tensorflow:
Adici贸n

Sustracci贸n

Multiplicaci贸n
Antes de ver el ejemplo, recordad que para multiplicar una matriz A con dimensiones (m x n), con otra matriz B con dimensiones (l x r), n y r tienen que ser iguales. Si ten茅is dudas pod茅is consultarlo aqu铆. Precisamente por esto la funci贸n tf.matmul() que vamos a utilizar, a parte de tener las dos matrices a multiplicar como los dos primers argumentos tambi茅n podemos especificar si transponemos alguna de las dos matrices:

No obstante, tensorflow tiene reservada una funci贸n para transponer:

Calcular el determinante de matrices con Tensorflow
Para calcular el determinante de una matriz dentro de tensorflow lo podemos hacer con la funci贸n tf.matrix_determinant():

Calcular la inversa de una matriz con tensorflow
Tambi茅n podemos obtener la inversa de una matriz:

Operaciones aritm茅ticas con TensorFlow
Por supuesto que tensorflow tiene incorporada las operaciones a trav茅s de tf.math est谩ndar:
tf.math.add()
Con tf.math.add() tenemos la suma:

tf.math.subtract()
Con tf.math.subtract() tenemos la sustracci贸n:

tf.math.multiply()
Con tf.math.multiply() tenemos la multiplicaci贸n:

Divisi贸n en TensorFlow
En el caso de la divisi贸n tenemos varias opciones teniendo en cuenta el tipo n煤mero del dividendo, divisor y cociente. Para no tener millones de ejemplos y combinatorias vamos a definir dos funciones, tf.truediv() si quieremos un resultado de tipo flotante y tf.floordiv() si quieremos un resultado entero. Tener en cuenta que generalmente, tanto el dividendo como el divisor tienen que ser del mismo tipo num茅rico, o sea integer o float. Veamos varios ejemplos:

Existen m谩s funciones para realizar divisiones en tensorflow, pero creo que con est谩s podemos resolver.
Solamente me gustar铆a a帽adir la funci贸n tf.mod() la cual me devuelve el resto de la divisi贸n:

Existen much铆simas m谩s funciones matem谩ticas dentro de tf. Pod茅is consultar muchas m谩s desde aqu铆.