Los artículos anteriores sobre TensorFlow son:
En este artículo se explica algunas operaciones con matrices, y funciones que se pueden utilizar con matrices, en el siguiente enlace se encuentra la documentación de funciones con matrices en TensorFlow.
A continuación se muestra los ejemplos usando jupyter notebook:
Continuaré con la serie de artículos sobre TensorFlow.
En este artículo se explica algunas operaciones con matrices, y funciones que se pueden utilizar con matrices, en el siguiente enlace se encuentra la documentación de funciones con matrices en TensorFlow.
A continuación se muestra los ejemplos usando jupyter notebook:
In [1]:
# Se importa numpy y tensorflow
importnumpyasnp
importtensorflowastf
In [2]:
#Se crea una matriz de 4x4
tensor_2d=np.array([(4,3,2,1),(4,5,6,7),(11,10,9,8),(12,13,14,15)])
In [3]:
#Se imprime la matriz
print(tensor_2d)
In [4]:
#Se muestra el elemento 3,3 de la matriz
tensor_2d[3][3]
Out[4]:
In [5]:
#Se muestra una sub matriz
tensor_2d[0:2,0:2]
Out[5]:
In [6]:
#Se crean dos matrices 3x3 de tipo int32
matriz1=np.array([(2,2,2),(2,2,2),(2,2,2)],dtype='int32')
matriz2=np.array([(1,1,1),(1,1,1),(1,1,1)],dtype='int32')
In [7]:
#Se muestra la matriz 1
print("Matriz 1-> \n{}".format(matriz1))
In [8]:
#Se muestra la matriz 2
print("Matriz 2-> \n{}".format(matriz2))
In [9]:
#Se define las 2 matrices como objeto tensorflow
matriz1=tf.constant(matriz1)
matriz2=tf.constant(matriz2)
In [10]:
# Se calcula el producto y la suma de dos matrices
matriz_prod=tf.matmul(matriz1,matriz2)
matriz_suma=tf.add(matriz1,matriz2)
In [11]:
#Se crea una matriz 3x3
matriz3=np.array([(2,7,2),(1,4,2),(9,0,2)],dtype='float32')
In [12]:
#Se imprime la matriz3
print("Matriz 3-> \n{}".format(matriz3))
In [13]:
#Se calcula la matriz determinante
matriz_det=tf.matrix_determinant(matriz3)
In [14]:
#Se crea la sesión y se ejecuta las matrices calculadas
withtf.Session()assess:
res1=sess.run(matriz_prod)
res2=sess.run(matriz_suma)
res3=sess.run(matriz_det)
In [15]:
#Se imprime el producto de las matrices
print("matriz1*matriz2-> \n{}".format(res1))
In [16]:
##Se imprime la suma de las matrices
print("matriz1+matriz2-> \n{}".format(res2))
In [17]:
# Se imprime el determinante de la matriz 3
print("det(matriz3)-> {}".format(res3))
In [18]:
#Se muestra la dimensión de la matriz1
matriz1.shape
Out[18]:
In [19]:
#Se crea un arreglo
a=np.array([[1,2,3],[4,5,6],[7,8,9]])
In [20]:
#Se muestra el arreglo
a
Out[20]:
In [21]:
#Se muestra el elemento [0,1]
a[0,1]
Out[21]:
In [22]:
#Se muestra el elemento a[0][1], 2 que es igual a a[0,1]
a[0][1]
Out[22]:
In [23]:
#Se crea el objeto tensorflow del arreglo a
a1=tf.constant(a)
In [24]:
#Se muestra el objeto tensorflow
a1
Out[24]:
In [25]:
#Se muestra los valores del arreglo
withtf.Session()assess:
print(sess.run(a1))
In [26]:
#Se crea un arreglo input, se define como objeto tensorflow
input=np.array([[1,0,0,0],[0,2,0,0],[0,0,3,0],[0,0,0,4]])
withtf.Session()assess:
print(sess.run(tf.constant(input)))
In [27]:
#Se calcula la matriz diagonal
diag=tf.diag_part(input)
In [28]:
#Se muestra la matriz diagonal
withtf.Session()assess:
print(sess.run(diag))
In [29]:
#Se muestra la suma de la matriz diagonal
withtf.Session()assess:
print(sess.run(tf.trace(input)))
In [30]:
#Se crea un arreglo y se calcula la traspuesta
b=np.array([[1,2,3],[4,5,6]])
withtf.Session()assess:
print(sess.run(tf.transpose(b)))
In [31]:
#Matriz identidad
i=tf.eye(3)
withtf.Session()assess:
print(sess.run(i))
In [32]:
#Se crea una matriz
diagonal=np.array([[1,2,3,4],[5,6,7,8]])
In [33]:
#Se muestra las dimensiones de la matriz
diagonal.shape
Out[33]:
In [34]:
#Se muestra la matriz diagonal
withtf.Session()assess:
print(sess.run(tf.matrix_diag(diagonal)))
In [35]:
#Se crea una matriz
input=np.array([[[1,0,0,0],[0,2,0,0],[0,0,3,0],[0,0,0,4]],
[[5,0,0,0],[0,6,0,0],[0,0,7,0],[0,0,0,8]]])
In [36]:
#Se muestra las dimensiones de la matriz input
input.shape
Out[36]:
In [37]:
#Se muestra la matriz diagonal y sus dimensiones
withtf.Session()assess:
res=sess.run(tf.matrix_diag_part(input))
print(res)
print(res.shape)
In [38]:
#Se crea una matriz 3x3 y se define como tensorflow de tipo int32
a=np.array([[1,2,3],[4,5,6],[7,8,9]])
a.shape
a=tf.constant(a,shape=[3,3],dtype="int32")
a
Out[38]:
In [39]:
#Se crea otra matriz 3x3
b=tf.constant(np.array([[9,8,7],[6,5,4],[3,2,1]]),shape=[3,3],dtype="int32")
b
Out[39]:
In [40]:
#Se realiza la multiplicación de las matrices a y b
c=tf.matmul(a,b)
In [41]:
#Se muestra el resultado de la multiplicación y las dimensiones de la nueva matriz
withtf.Session()assess:
res=sess.run(c)
print(res)
print(res.shape)
In [42]:
#Se define la matriz 3x3 como objeto tensorflow de tipo float32
input=tf.constant(np.array([[1,0,0],[-1,2,3],[0,1,2]]),shape=[3,3],dtype="float32")
In [43]:
#Se calcula la matriz inversa de la matriz anterior
inverse=tf.matrix_inverse(input)
In [44]:
#Se muestra el objeto tensorflow de la matriz inversa.
inverse
Out[44]:
In [45]:
#Se muestra los elementos de la matriz inversa calculada de la matriz input
withtf.Session()assess:
print(sess.run(inverse))
In [46]:
#Se crea una matriz 4x4 con puros números 10.
fill_mat=tf.fill((4,4),10)
In [47]:
#Se muestra la matriz
withtf.Session()assess:
print(sess.run(fill_mat))
In [48]:
#Se crea una matriz 4x4 de ceros
ceros_mat=tf.zeros((4,4))
In [49]:
#Se muestra la matriz
withtf.Session()assess:
print(sess.run(ceros_mat))
In [50]:
#Se crea una matriz 4x4 de puros 1s.
unos_mat=tf.ones((4,4))
In [51]:
#Se muestra la matriz
withtf.Session()assess:
print(sess.run(unos_mat))
In [52]:
#Se crea una matriz 4x4 de números aleatorios
random=tf.random_normal((4,4),mean=0,stddev=1.0)
In [53]:
#Se muestra la matriz
withtf.Session()assess:
print(sess.run(random))
In [54]:
#Se crea una matriz 4x4 de números aleatorios uniformes,con valor mínimo 0 y un valor máximo 1s.
ramdonu=tf.random_uniform((4,4),minval=0,maxval=1)
In [55]:
#Se muestra la matriz
withtf.Session()assess:
print(sess.run(ramdonu))
In [56]:
#Se crea una lista de los objetos tensorflow.
operaciones=[fill_mat,ceros_mat,unos_mat,random,ramdonu]
In [57]:
#Se crea una sesión interactiva, se usa normalmente con jupyter.
sess=tf.InteractiveSession()
In [58]:
#Se muestra las matrices
foropinoperaciones:
print(sess.run(op))
print("\n")
In [59]:
#Se muestra las matrices usando eval
foropinoperaciones:
print(op.eval())
print("\n")
Continuaré con la serie de artículos sobre TensorFlow.