Los tensores son los datos de Tensorflow, todos tienen tres características principales. Y además los podemos dividir en tipos.
- Escalares son tensores 0 dimensionales
- Vectores o listas [] son tensores 1 dimensionales
- Matrices [ [],[] ] son tensores 2 dimensionales
- Matrices n dimensionales son tensores n dimensionales
Es la dimensión del tensor, a partir de ella podemos hablar de:
Es el número de elementos en cada dimensión
Es el tipo de datos de cada elemento del tensor
En la siguiente tabla se pueden ver como varían las características según el rango
Se caracterizan porque nunca cambian su valor en distintas ejecuciones. Para crear una variable:
constante1 = tf.constant(3.5, dtype=tf.float32, name="cte1")donde 3.5 es el valor que le queremos dar, dtype el tipo y name el nombre que queremos que tenga para la representación en el grafo.
Tras ejecutar el archivo constantes.py obtenemos:
Información: Tensor("cte1:0", shape=(), dtype=float32), valor 3.5Por lo que vemos que por muchas veces que ejecutemos una constante, su valor no cambia ni se tiene que asignar.
Información: Tensor("cte2:0", shape=(), dtype=float32), valor 5.5
Suma 0 de constantes: 3.5+5.5=9.0
Suma 1 de constantes: 3.5+5.5=9.0
Suma 2 de constantes: 3.5+5.5=9.0
Suma 3 de constantes: 3.5+5.5=9.0
Suma 4 de constantes: 3.5+5.5=9.0
Suma 5 de constantes: 3.5+5.5=9.0
Suma 6 de constantes: 3.5+5.5=9.0
Suma 7 de constantes: 3.5+5.5=9.0
Suma 8 de constantes: 3.5+5.5=9.0
Suma 9 de constantes: 3.5+5.5=9.0
Se caracterizan porque se les asigna un valor en cada ejecución. Para crear un placeholder:
ph1 = tf.placeholder(tf.float32, shape=(None), name="ph1")donde tf.float32 es el tipo, shape el tamaño que queremos que tenga y name el nombre que queremos que tenga para la representación en el grafo.
Tras ejecutar el archivo placeholder.py obtenemos:
Suma de placeholders: 3.5+5.5=9.0 Suma 0 de placeholders: [1, 2, 10]+[4, 2, 10]=[ 5. 4. 20.]Podemos ver que los datos no varían ya que estamos introduciendo en todas las ejecuciones los mismos datos.
Suma 1 de placeholders: [1, 2, 10]+[4, 2, 10]=[ 5. 4. 20.]
Suma 2 de placeholders: [1, 2, 10]+[4, 2, 10]=[ 5. 4. 20.]
Suma 3 de placeholders: [1, 2, 10]+[4, 2, 10]=[ 5. 4. 20.]
Suma 4 de placeholders: [1, 2, 10]+[4, 2, 10]=[ 5. 4. 20.]
Suma 5 de placeholders: [1, 2, 10]+[4, 2, 10]=[ 5. 4. 20.]
Suma 6 de placeholders: [1, 2, 10]+[4, 2, 10]=[ 5. 4. 20.]
Suma 7 de placeholders: [1, 2, 10]+[4, 2, 10]=[ 5. 4. 20.]
Suma 8 de placeholders: [1, 2, 10]+[4, 2, 10]=[ 5. 4. 20.]
Suma 9 de placeholders: [1, 2, 10]+[4, 2, 10]=[ 5. 4. 20.]
Se caracterizan porque se les reasigna un valor en cada ejecución. Para crear una variable:
v1 = tf.Variable([3.5], dtype=tf.float32, name="v1")donde 3.5 es el valor que le queremos dar, dtype el tipo y name el nombre que queremos que tenga para la representación en el grafo.
Tras ejecutar el archivo variables.py obtenemos:
Información: <tf.Variable 'v1:0' shape=(1,) dtype=float32_ref>, valor [ 3.5]En este caso vemos que su valor disminuye 0.5 en cada ejecución, ya que estamos utilizando una asignación de la variable.
Información 0: <tf.Variable 'v1:0' shape=(1,) dtype=float32_ref>, valor [ 3.]
Información 1: <tf.Variable 'v1:0' shape=(1,) dtype=float32_ref>, valor [ 2.5]
Información 2: <tf.Variable 'v1:0' shape=(1,) dtype=float32_ref>, valor [ 2.]
Información 3: <tf.Variable 'v1:0' shape=(1,) dtype=float32_ref>, valor [ 1.5]
Información 4: <tf.Variable 'v1:0' shape=(1,) dtype=float32_ref>, valor [ 1.]
Información 5: <tf.Variable 'v1:0' shape=(1,) dtype=float32_ref>, valor [ 0.5]
Información 6: <tf.Variable 'v1:0' shape=(1,) dtype=float32_ref>, valor [ 0.]
Información 7: <tf.Variable 'v1:0' shape=(1,) dtype=float32_ref>, valor [-0.5]
Información 8: <tf.Variable 'v1:0' shape=(1,) dtype=float32_ref>, valor [-1.]
Información 9: <tf.Variable 'v1:0' shape=(1,) dtype=float32_ref>, valor [-1.5]