Tensorflow es un marco de aprendizaje automático de código abierto que se utiliza para cálculos numéricos complejos. Fue desarrollado por el equipo de Google Brain en Google. Tensorflow puede entrenar y ejecutar redes neuronales profundas que se pueden usar para desarrollar varias aplicaciones de IA.
¿Qué es un tensor?
Un tensor se puede describir como una array numérica de n dimensiones. Un tensor puede llamarse array generalizada. Podría ser una array 0-D (un solo número), una array 1-D (un vector), una array 2-D o cualquier estructura dimensional superior. Un tensor se identifica por tres parámetros, a saber, rango, forma y tamaño. Se dice que el número de dimensiones del tensor es su rango. El número de columnas y filas que tiene el tensor, se dice que es su forma. Y se dice que el tipo de datos asignado a los elementos del tensor es su tipo.
Importancia del tensor en Tensorflow:
un tensor se puede llamar como el tipo de datos central de Tensorflow. Es porque los tensores son los componentes fundamentales de la computación dentro del marco Tensorflow. Como sugiere el nombre, Tensorflow es un marco que implica definir y ejecutar cálculos que involucran tensores.
Analicemos las diferentes formas de crear tensores en Tensorflow.
Método #1: Crear tensor usando la constant()
función.
La función más popular para crear tensores en Tensorflow es la constant()
función. Necesitamos dar valores o una lista de valores como argumento para crear el tensor. Si los valores proporcionados son de tipo entero, int32 es el tipo de datos predeterminado. Y si los valores proporcionados son de tipo flotante, entonces float32
es el tipo de datos predeterminado.
# Program to create tensor # using the constant() function import tensorflow as tf t1 = tf.constant([1, 2, 3]) t2 = tf.constant([[1.1, 2.2, 3.3], [4, 5, 6]]) t3 = tf.constant([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) t4 = tf.constant(["String_one", "String_two", "String_three"]) t5 = tf.constant([1.2, 2.3, 3.4], tf.float16, [3], 'N3', False) sess = tf.Session() print(t1) print(sess.run(t1)) print("\n") print(t2) print(sess.run(t2)) print("\n") print(t3) print(sess.run(t3)) print("\n") print(t4) print(sess.run(t4)) print("\n") print(t5) print(sess.run(t5))
Producción:
Aquí, t1 es un tensor unidimensional y tiene tres valores enteros de tipo de datos int32. t2 es un tensor bidimensional y contiene valores de coma flotante del tipo de datos float32. t3 es un tensor tridimensional y contiene valores enteros de tipo de datos int32. t4 es unidimensional que tiene tres strings de tipo de datos string. En t5, le hemos dado un nombre ‘N3’, especificado el tipo de datos como ‘float16’ y dado el valor de forma como 3. Dado que el valor de forma de t5 es 3, no podemos pasar más de 3 elementos en él. De lo contrario, arrojará un error.
Método #2: Crear tensor usando la zeros()
función.
La zeros()
función se usa para crear un tensor con todos sus elementos como cero. El shape
del tensor es el único argumento requerido.
# Program to create tensor using the zeros() function import tensorflow as tf zero_int = tf.zeros([3]) zero_float = tf.zeros([3], tf.int32, 'zero_float') zero_3d = tf.zeros([3, 3, 3], tf.int8, '3d') sess = tf.Session() print(zero_int) print(sess.run(zero_int)) print("\n") print(zero_float) print(sess.run(zero_float)) print("\n") print(zero_3d) print(sess.run(zero_3d))
Salida:
Método #3: Creando tensor usando la función “ones()”.
La ones()
función básicamente hace lo mismo que la zeros()
función, pero los elementos son uno en este caso en lugar de cero.
# Program to create tensor using the ones() function import tensorflow as tf one_float = tf.ones([3]) one_complex = tf.ones([2, 2], tf.complex64, 'complex_ones_tensor') one_3d = tf.ones([3, 3, 3], tf.int8, '3d') sess = tf.Session() print(one_float) print(sess.run(one_float)) print("\n") print(one_complex) print(sess.run(one_complex)) print("\n") print(one_3d) print(sess.run(one_3d))
Salida:
Método #4: Creando tensor usando la fill()
función.
La fill()
función se usa para crear tensores con todos los elementos del tensor que tienen el mismo valor. El valor del elemento debe pasarse como argumento y el tipo de datos depende de ese valor pasado.
# Program to create tensor using the fill() function import tensorflow as tf fill_1d = tf.fill([3], 10) fill_2d = tf.fill([2, 2], 6, '2d') fill_string = tf.fill([2, 2], "str", 'fill_tensor_string') fill_3d = tf.fill([3, 3, 3], 1.2, '3d') sess = tf.Session() print(fill_1d) print(sess.run(fill_1d)) print("\n") print(fill_2d) print(sess.run(fill_2d)) print("\n") print(fill_string) print(sess.run(fill_string)) print("\n") print(fill_3d) print(sess.run(fill_3d))
Producción:
Método #5: Creando tensores usando la linspace()
función.
La linspace()
función se usa para crear tensores en los que especificamos el valor inicial, el valor final y el número de elementos como argumentos y los elementos del tensor cambian sus valores en función de los argumentos.
# Program to create tensor using the linspace() function import tensorflow as tf linspace_inc = tf.linspace(1.0, 10.0, 5, "linspace_inc") linspace_dec = tf.linspace(100.0, 10.0, 20, "linspace_dec") sess = tf.Session() print(linspace_inc) print(sess.run(linspace_inc)) print("\n") print(linspace_dec) print(sess.run(linspace_dec))
Salida:
Método #6: Creando tensores usando la range()
función.
La range()
función es casi la misma que la función linspace(). La única diferencia es que en la función range(), especificamos un valor llamado delta
, que se usa para calcular los elementos sucesivos del tensor, en lugar del número de elementos en la linspace()
función.
# Program to create tensor using the range() function import tensorflow as tf range_inc = tf.range(10.0, 100.0, delta = 25.5) range_dec = tf.range(100.0, delta = 25.5, name ="range_dec") sess = tf.Session() print(range_inc) print(sess.run(range_inc)) print("\n") print(range_dec) print(sess.run(range_dec))
Producción: