TensorFlow te ofrece un gran variedad de herramientas que te ayudan en el procesamiento de los macrodatos dentro del área del Deep Learning. Por ello, en el desarrollo de este post, te exponemos un breve ejemplo de Tensor 1D en TensorFlow.
Ejemplo de Tensor 1D en TensorFlow
Para este ejemplo de Tensor 1D en TensorFlow te exponemos un conjunto de estudiantes y sus respectivas notas a las asignaturas.
# Con una sola nota no habría mucho que defender e, incluso, podría decirse # que alguien se la ha inventado. Es mejor guardar las notas de TODAS las # asignaturas cursadas por el alumno. Podemos usar un tensor 1D para ello: # Tensor 1D (vector) array_1D = np.array([2, 8, 6]) tensor_1D = tf.convert_to_tensor(array_1D,tf.float64) print("Notas de las asignaturas: {}".format(tensor_1D)) print("Dimensiones del tensor: {}".format(tensor_1D.ndim)) print("Tamaño del tensor: {}".format(tensor_1D.shape)) print("Tipo del tensor: {}".format(tensor_1D.dtype))
Notas de las asignaturas: [2 8 6]
Dimensiones del tensor: 1
Tamaño del tensor: (3,)
Tipo del tensor: int64
# ¿No sería mejor que estructurásemos las notas por asignatura? # ¿Cómo podríamos hacerlo, si cada asignatura consta de 3 exámenes? # Podemos hacerlo con un tensor 2D, una matriz de números # Tensor 2D (matriz) array_2D = np.array([[0, 1, 1], # asignatura 1 [2, 3, 3], # asignatura 2 [1, 3, 2]]) # asignatura 3 tensor_2D = tf.convert_to_tensor(array_2D,tf.float64) print("Las puntuaciones de Tristina en sus exámenes son:\n{}".format(tensor_2D)) print("Asignatura 1:\n{}".format(tensor_2D[0])) print("Asignatura 2:\n{}".format(tensor_2D[1])) print("Asignatura 3:\n{}".format(tensor_2D[2])) print("Dimensiones del tensor: {}".format(tensor_2D.ndim)) print("Tamaño del tensor: {}".format(tensor_2D.shape)) print("Tipo del tensor: {}".format(tensor_2D.dtype))
Las puntuaciones de Tristina en sus exámenes son:
[[0 1 1]
[2 3 3]
[1 3 2]]
Asignatura 1:
[0 1 1]
Asignatura 2:
[2 3 3]
Asignatura 3:
[1 3 2]
Dimensiones del tensor: 2
Tamaño del tensor: (3, 3)
Tipo del tensor: int64
# Sin embargo, como somos muy ordenados y no queremos que se nos pierda # nada, mejor si guardamos las notas de las asignaturas (que son anuales) por # cuatrimestres, así será más fácil acceder a ellas si hiciese falta en un futuro. # Añadimos una dimensión a nuestro tensor 2D que indique el cuatrimestre # Tensor 3D (matriz 3D o cubo) array_3D = np.array([[[0, 1, 1], # Primer cuatrimestre [2, 3, 3], [1, 3, 2]], [[1, 3, 2], # Segundo cuatrimestre [2, 4, 2], [0, 1, 1]]]) tensor_3D = tf.convert_to_tensor(array_3D,tf.float64) print("Las notas de Tristina por cuatrimestre son:\n{}".format(tensor_3D)) print("Primer cuatrimestre:\n{}".format(tensor_3D[0])) print("Segundo cuatrimestre:\n{}".format(tensor_3D[1])) print("Dimensiones del tensor: {}".format(tensor_3D.ndim)) print("Tamaño del tensor: {}".format(tensor_3D.shape)) print("Tipo del tensor: {}".format(tensor_3D.dtype))
Las notas de Tristina por cuatrimestre son:
[[[0 1 1]
[2 3 3]
[1 3 2]]
[[1 3 2]
[2 4 2]
[0 1 1]]]
Primer cuatrimestre:
[[0 1 1]
[2 3 3]
[1 3 2]]
Segundo cuatrimestre:
[[1 3 2]
[2 4 2]
[0 1 1]]
Dimensiones del tensor: 3
Tamaño del tensor: (2, 3, 3)
Tipo del tensor: int64
# Ya tenemos perfectamente guardadas las notas de Tristina, # para que no se pierdan, pero ¿los demás alumnos? # Añadimos una dimensión a nuestro tensor para tener las # notas por cuatrimestre de cada asignatura para cada alumno # Tensor 4D (vector de matrices 3D o vector de cubos) array_4D = np.array([[[[0, 1, 1], # Tristina [2, 3, 3], [1, 3, 2]], [[1, 3, 2], [2, 4, 2], [0, 1, 1]]], [[[0, 3, 1], # Facundo [2, 4, 1], [1, 3, 2]], [[1, 1, 1], [2, 3, 4], [1, 3, 2]]], [[[2, 2, 4], # Celedonio [2, 1, 3], [0, 4, 2]], [[2, 4, 1], [2, 3, 0], [1, 3, 3]]]]) tensor_4D = tf.convert_to_tensor(array_4D,tf.float64) print("Las notas de Tristina, Facundo y Celedonio por cuatrimestre son:\n{}".format(tensor_4D)) print("Notas de Tristina:\n{}".format(tensor_4D[0])) print("Notas de Facundo:\n{}".format(tensor_4D[1])) print("Notas de Celedonio:\n{}".format(tensor_4D[2])) print("Dimensiones del tensor: {}".format(tensor_4D.ndim)) print("Tamaño del tensor: {}".format(tensor_4D.shape)) print("Tipo del tensor: {}".format(tensor_4D.dtype))
Las notas de Tristina, Facundo y Celedonio por cuatrimestre son:
[[[[0 1 1]
[2 3 3]
[1 3 2]]
[[1 3 2]
[2 4 2]
[0 1 1]]]
[[[0 3 1]
[2 4 1]
[1 3 2]]
[[1 1 1]
[2 3 4]
[1 3 2]]]
[[[2 2 4]
[2 1 3]
[0 4 2]]
[[2 4 1]
[2 3 0]
[1 3 3]]]]
Notas de Tristina:
[[[0 1 1]
[2 3 3]
[1 3 2]]
[[1 3 2]
[2 4 2]
[0 1 1]]]
Notas de Facundo:
[[[0 3 1]
[2 4 1]
[1 3 2]]
[[1 1 1]
[2 3 4]
[1 3 2]]]
Notas de Celedonio:
[[[2 2 4]
[2 1 3]
[0 4 2]]
[[2 4 1]
[2 3 0]
[1 3 3]]]
Dimensiones del tensor: 4
Tamaño del tensor: (3, 2, 3, 3)
Tipo del tensor: int64
En este post te hemos expuesto un breve ejemplo de Tensor 1D en TensorFlow, sin embargo, existen muchas más alternativas, ¡así que debe seguir aprendiendo sobre el Big Data!
Desde KeepCoding te presentamos el Bootcamp Full Stack Big Data, Inteligencia Artificial & Machine Learning. Por medio del mismo, podrás aprender más sobre la suite de Talend Open Studio junto a las demás herramientas Big Data a través de diferentes módulos, como el de Big Data Architecture. Además, podrás instruirte tanto de manera teórica como práctica. ¡No esperes más y apúntate ya!