Creación de Tensores
Creación de tensores
Esta lección se centra en la creación de tensores utilizando TensorFlow. TensorFlow proporciona numerosos métodos para inicializar tensores. Al finalizar esta lección, dominará la generación de tensores para una amplia variedad de aplicaciones.
Inicializadores básicos de tensores
tf.constant()
: esta es la forma más sencilla de crear un tensor. Como su nombre indica, los tensores inicializados con este método contienen valores constantes y son inmutables;
12345import tensorflow as tf # Create a 2x2 constant tensor tensor_const = tf.constant([[1, 2], [3, 4]]) print(tensor_const)
tf.Variable()
: a diferencia detf.constant()
, un tensor definido usandotf.Variable()
es mutable. Esto significa que su valor puede cambiarse, lo que lo hace ideal para parámetros entrenables en modelos;
12345import tensorflow as tf # Create a variable tensor tensor_var = tf.Variable([[1, 2], [3, 4]]) print(tensor_var)
tf.zeros()
: crea un tensor lleno de ceros;
12345import tensorflow as tf # Zero tensor of shape (3, 3) tensor_zeros = tf.zeros((3, 3)) print(tensor_zeros)
tf.ones()
: por el contrario, crea un tensor lleno de unos;
12345import tensorflow as tf # Ones tensor of shape (2, 2) tensor_ones = tf.ones((2, 2)) print(tensor_ones)
tf.fill()
: crea un tensor rellenado con un valor específico;
12345import tensorflow as tf # Tensor of shape (2, 2) filled with 6 tensor_fill = tf.fill((2, 2), 6) print(tensor_fill)
tf.linspace()
ytf.range()
: ideales para crear secuencias;
123456789import tensorflow as tf # Generate a sequence of numbers starting from 0, ending at 9 tensor_range = tf.range(10) print(tensor_range) # Create 5 equally spaced values between 0 and 10 tensor_linspace = tf.linspace(0, 10, 5) print(tensor_linspace)
tf.random
: genera tensores con valores aleatorios. Este módulo ofrece varias distribuciones y funciones, comotf.random.normal()
para valores de una distribución normal ytf.random.uniform()
para valores de una distribución uniforme.
También es posible establecer una semilla fija para obtener resultados consistentes en cada generación de números aleatorios utilizando tf.random.set_seed()
. Sin embargo, tenga en cuenta que al hacer esto, recibirá el mismo número para cualquier generación aleatoria dentro de TensorFlow.
Si desea obtener números consistentes solo para un comando específico, puede proporcionar un argumento seed
a ese comando con el valor de semilla deseado.
1234567891011121314import tensorflow as tf # Set random seed tf.random.set_seed(72) # Tensor of shape (2, 2) with random values normally distributed # (by default `mean=0` and `std=1`) tensor_random = tf.random.normal((2, 2), mean=4, stddev=0.5) print(tensor_random) # Tensor of shape (2, 2) with random values uniformly distributed # (by default `min=0` and `max=1`) tensor_random = tf.random.uniform((2, 2), minval=-2, maxval=2) print(tensor_random)
Conversión entre estructuras de datos
Los tensores de TensorFlow pueden convertirse fácilmente hacia y desde estructuras de datos familiares de Python.
- Desde arreglos de Numpy: Los tensores de TensorFlow y los arreglos de Numpy son bastante interoperables. Utilice
tf.convert_to_tensor()
;
12345678910import numpy as np import tensorflow as tf # Create a NumPy array based on a Python list numpy_array = np.array([[1, 2], [3, 4]]) # Convert a NumPy array to a tensor tensor_from_np = tf.convert_to_tensor(numpy_array) print(tensor_from_np)
- Desde DataFrames de Pandas: para quienes prefieren el análisis de datos con Pandas, convertir un DataFrame o una Serie en un tensor de TensorFlow es sencillo. Utilice también
tf.convert_to_tensor()
;
12345678910import pandas as pd import tensorflow as tf # Create a DataFrame based on dictionary df = pd.DataFrame({'A': [1, 2], 'B': [3, 4]}) # Convert a DataFrame to a tensor tensor_from_df = tf.convert_to_tensor(df.values) print(tensor_from_df)
Asegúrese siempre de que los tipos de datos de sus estructuras originales (arrays de Numpy o DataFrames de Pandas) sean compatibles con los tipos de datos de tensor de TensorFlow. Si hay una incompatibilidad, considere realizar una conversión de tipo.
- Convertir un tensor constante en una
Variable
: se puede inicializar unaVariable
utilizando varios métodos de creación de tensores comotf.ones()
,tf.linspace()
,tf.random
, entre otros. Simplemente pase la función o el tensor preexistente atf.Variable()
.
12345678910111213import tensorflow as tf # Create a variable from a tensor tensor = tf.random.normal((2, 3)) variable_1 = tf.Variable(tensor) # Create a variable based on other generator variable_2 = tf.Variable(tf.zeros((2, 2))) # Display tensors print(variable_1) print('-' * 50) print(variable_2)
Para mejorar en la creación de tensores, practique con diferentes formas y valores. Para más detalles sobre comandos específicos, consulte la documentación oficial de TensorFlow. Allí encontrará toda la información necesaria sobre cualquier comando o módulo de la biblioteca.
Swipe to start coding
Tu tarea es crear, modificar y convertir varios tensores en este desafío.
Parte 1 — Inicialización de tensores
- Crear un tensor llamado
tensor_A
con forma(3, 3)
y todos los elementos iguales a 5. - Crear un tensor mutable llamado
tensor_B
con forma(2, 3)
y cualquier valor de tu elección. - Crear un tensor llamado
tensor_C
con forma(3, 3)
lleno de ceros. - Crear un tensor llamado
tensor_D
con forma(4, 4)
lleno de unos. - Crear un tensor llamado
tensor_E
con 5 valores espaciados linealmente entre 3 y 15. - Crear un tensor llamado
tensor_F
con valores aleatorios y forma(2, 2)
.
Parte 2 — Conversiones
- Convertir el arreglo de NumPy
np_array
en un tensor de TensorFlow llamadotensor_from_array
. - Convertir el DataFrame
df
en un tensor de TensorFlow llamadotensor_from_dataframe
.
Nota
- Utiliza las funciones más apropiadas de TensorFlow (por ejemplo,
tf.ones()
,tf.zeros()
,tf.fill()
, etc.). - Para conversiones, utiliza
tf.convert_to_tensor()
. - Para tensores con valores espaciados linealmente, utiliza
tf.linspace(start, stop, num)
. - Para tensores aleatorios, utiliza
tf.random.normal(shape)
.
Solución
¡Gracias por tus comentarios!
single
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla
Awesome!
Completion rate improved to 5.56
Creación de Tensores
Desliza para mostrar el menú
Creación de tensores
Esta lección se centra en la creación de tensores utilizando TensorFlow. TensorFlow proporciona numerosos métodos para inicializar tensores. Al finalizar esta lección, dominará la generación de tensores para una amplia variedad de aplicaciones.
Inicializadores básicos de tensores
tf.constant()
: esta es la forma más sencilla de crear un tensor. Como su nombre indica, los tensores inicializados con este método contienen valores constantes y son inmutables;
12345import tensorflow as tf # Create a 2x2 constant tensor tensor_const = tf.constant([[1, 2], [3, 4]]) print(tensor_const)
tf.Variable()
: a diferencia detf.constant()
, un tensor definido usandotf.Variable()
es mutable. Esto significa que su valor puede cambiarse, lo que lo hace ideal para parámetros entrenables en modelos;
12345import tensorflow as tf # Create a variable tensor tensor_var = tf.Variable([[1, 2], [3, 4]]) print(tensor_var)
tf.zeros()
: crea un tensor lleno de ceros;
12345import tensorflow as tf # Zero tensor of shape (3, 3) tensor_zeros = tf.zeros((3, 3)) print(tensor_zeros)
tf.ones()
: por el contrario, crea un tensor lleno de unos;
12345import tensorflow as tf # Ones tensor of shape (2, 2) tensor_ones = tf.ones((2, 2)) print(tensor_ones)
tf.fill()
: crea un tensor rellenado con un valor específico;
12345import tensorflow as tf # Tensor of shape (2, 2) filled with 6 tensor_fill = tf.fill((2, 2), 6) print(tensor_fill)
tf.linspace()
ytf.range()
: ideales para crear secuencias;
123456789import tensorflow as tf # Generate a sequence of numbers starting from 0, ending at 9 tensor_range = tf.range(10) print(tensor_range) # Create 5 equally spaced values between 0 and 10 tensor_linspace = tf.linspace(0, 10, 5) print(tensor_linspace)
tf.random
: genera tensores con valores aleatorios. Este módulo ofrece varias distribuciones y funciones, comotf.random.normal()
para valores de una distribución normal ytf.random.uniform()
para valores de una distribución uniforme.
También es posible establecer una semilla fija para obtener resultados consistentes en cada generación de números aleatorios utilizando tf.random.set_seed()
. Sin embargo, tenga en cuenta que al hacer esto, recibirá el mismo número para cualquier generación aleatoria dentro de TensorFlow.
Si desea obtener números consistentes solo para un comando específico, puede proporcionar un argumento seed
a ese comando con el valor de semilla deseado.
1234567891011121314import tensorflow as tf # Set random seed tf.random.set_seed(72) # Tensor of shape (2, 2) with random values normally distributed # (by default `mean=0` and `std=1`) tensor_random = tf.random.normal((2, 2), mean=4, stddev=0.5) print(tensor_random) # Tensor of shape (2, 2) with random values uniformly distributed # (by default `min=0` and `max=1`) tensor_random = tf.random.uniform((2, 2), minval=-2, maxval=2) print(tensor_random)
Conversión entre estructuras de datos
Los tensores de TensorFlow pueden convertirse fácilmente hacia y desde estructuras de datos familiares de Python.
- Desde arreglos de Numpy: Los tensores de TensorFlow y los arreglos de Numpy son bastante interoperables. Utilice
tf.convert_to_tensor()
;
12345678910import numpy as np import tensorflow as tf # Create a NumPy array based on a Python list numpy_array = np.array([[1, 2], [3, 4]]) # Convert a NumPy array to a tensor tensor_from_np = tf.convert_to_tensor(numpy_array) print(tensor_from_np)
- Desde DataFrames de Pandas: para quienes prefieren el análisis de datos con Pandas, convertir un DataFrame o una Serie en un tensor de TensorFlow es sencillo. Utilice también
tf.convert_to_tensor()
;
12345678910import pandas as pd import tensorflow as tf # Create a DataFrame based on dictionary df = pd.DataFrame({'A': [1, 2], 'B': [3, 4]}) # Convert a DataFrame to a tensor tensor_from_df = tf.convert_to_tensor(df.values) print(tensor_from_df)
Asegúrese siempre de que los tipos de datos de sus estructuras originales (arrays de Numpy o DataFrames de Pandas) sean compatibles con los tipos de datos de tensor de TensorFlow. Si hay una incompatibilidad, considere realizar una conversión de tipo.
- Convertir un tensor constante en una
Variable
: se puede inicializar unaVariable
utilizando varios métodos de creación de tensores comotf.ones()
,tf.linspace()
,tf.random
, entre otros. Simplemente pase la función o el tensor preexistente atf.Variable()
.
12345678910111213import tensorflow as tf # Create a variable from a tensor tensor = tf.random.normal((2, 3)) variable_1 = tf.Variable(tensor) # Create a variable based on other generator variable_2 = tf.Variable(tf.zeros((2, 2))) # Display tensors print(variable_1) print('-' * 50) print(variable_2)
Para mejorar en la creación de tensores, practique con diferentes formas y valores. Para más detalles sobre comandos específicos, consulte la documentación oficial de TensorFlow. Allí encontrará toda la información necesaria sobre cualquier comando o módulo de la biblioteca.
Swipe to start coding
Tu tarea es crear, modificar y convertir varios tensores en este desafío.
Parte 1 — Inicialización de tensores
- Crear un tensor llamado
tensor_A
con forma(3, 3)
y todos los elementos iguales a 5. - Crear un tensor mutable llamado
tensor_B
con forma(2, 3)
y cualquier valor de tu elección. - Crear un tensor llamado
tensor_C
con forma(3, 3)
lleno de ceros. - Crear un tensor llamado
tensor_D
con forma(4, 4)
lleno de unos. - Crear un tensor llamado
tensor_E
con 5 valores espaciados linealmente entre 3 y 15. - Crear un tensor llamado
tensor_F
con valores aleatorios y forma(2, 2)
.
Parte 2 — Conversiones
- Convertir el arreglo de NumPy
np_array
en un tensor de TensorFlow llamadotensor_from_array
. - Convertir el DataFrame
df
en un tensor de TensorFlow llamadotensor_from_dataframe
.
Nota
- Utiliza las funciones más apropiadas de TensorFlow (por ejemplo,
tf.ones()
,tf.zeros()
,tf.fill()
, etc.). - Para conversiones, utiliza
tf.convert_to_tensor()
. - Para tensores con valores espaciados linealmente, utiliza
tf.linspace(start, stop, num)
. - Para tensores aleatorios, utiliza
tf.random.normal(shape)
.
Solución
¡Gracias por tus comentarios!
single