Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Operaciones de Reducción | Tensores
Introducción a TensorFlow

bookOperaciones de Reducción

Operaciones de Reducción

En el ámbito de las operaciones con tensores, existen numerosas tareas en las que es necesario reducir las dimensiones de nuestros datos, ya sea resumiéndolos a lo largo de uno o más ejes. Por ejemplo, si tenemos un tensor 2D (una matriz), una operación de reducción puede calcular un valor para cada fila o columna, resultando en un tensor 1D (un vector). TensorFlow ofrece un conjunto de operaciones para lograr esto y, en este capítulo, exploraremos las operaciones de reducción más utilizadas.

Suma, Media, Máximo y Mínimo

TensorFlow ofrece los siguientes métodos para estos cálculos:

  • tf.reduce_sum(): calcula la suma de todos los elementos del tensor o a lo largo de un eje específico;
  • tf.reduce_mean(): calcula la media de los elementos del tensor;
  • tf.reduce_max(): determina el valor máximo en el tensor;
  • tf.reduce_min(): encuentra el valor mínimo en el tensor.
12345678910111213141516171819
import tensorflow as tf tensor = tf.constant([[1., 2., 3.], [4., 5., 6.], [7., 8., 9.]]) # Calculate sum of all elements total_sum = tf.reduce_sum(tensor) print("Total Sum:", total_sum.numpy()) # Calculate mean of all elements mean_val = tf.reduce_mean(tensor) print("Mean Value:", mean_val.numpy()) # Determine the maximum value max_val = tf.reduce_max(tensor) print("Maximum Value:", max_val.numpy()) # Find the minimum value min_val = tf.reduce_min(tensor) print("Minimum Value:", min_val.numpy())
copy
Note
Nota

El método .numpy() se utilizó para convertir los tensores en arreglos de NumPy, ofreciendo una presentación visual más clara de los números al mostrarlos.

Operaciones a lo largo de ejes específicos

Los tensores pueden tener múltiples dimensiones, y en ocasiones se desea realizar reducciones a lo largo de un eje específico. El parámetro axis permite especificar qué eje o ejes se desean reducir.

  • axis=0: realiza la operación a lo largo de las filas (resultando en un vector columna);
  • axis=1: realiza la operación a lo largo de las columnas (resultando en un vector fila);
  • Es posible reducir a lo largo de varios ejes simultáneamente proporcionando una lista al parámetro axis;
  • Cuando se reduce el rango del tensor, se puede usar keepdims=True para conservar la dimensión reducida como 1.

Para un tensor 2D (matriz):

1234567891011121314151617181920
import tensorflow as tf tensor = tf.constant([[1., 2.], [3., 4.], [5., 6.]]) # Calculate the sum of each column col_sum = tf.reduce_sum(tensor, axis=0) print("Column-wise Sum:", col_sum.numpy()) # Calculate the maximum of each row col_max = tf.reduce_max(tensor, axis=1) print("Row-wise Max:", col_max.numpy()) # Calculate the mean of the whole tensor (reduce along both directions) # Equivalent to not specifying the axis at all total_mean = tf.reduce_mean(tensor, axis=(0, 1)) print("Total Mean:", total_mean.numpy()) # Calculate the mean of the whole tensor (keeping reduced dimensions) total_mean_dim = tf.reduce_mean(tensor, axis=(0, 1), keepdims=True) print("Total Mean (saving dimensions):", total_mean_dim.numpy())
copy
Note
Nota

Cuando ejecutas una operación de reducción a lo largo de un eje específico, esencialmente eliminas ese eje del tensor, agregando todos los tensores dentro de ese eje elemento por elemento. El mismo efecto se mantiene para cualquier número de dimensiones.

Así es como se ve para un tensor 3D:

12345678910111213141516171819
import tensorflow as tf tensor = tf.constant([ [[1, 2], [3, 4]], [[5, 6], [7, 8]], [[9, 10], [11, 12]] ]) # Calculate the sum along axis 0 sum_0 = tf.reduce_sum(tensor, axis=0) print("Sum axis 0:\n", sum_0.numpy()) # Calculate the sum along axis 1 sum_1 = tf.reduce_sum(tensor, axis=1) print("Sum axis 1:\n", sum_1.numpy()) # Calculate the sum along axes 0 and 1 sum_0_1 = tf.reduce_sum(tensor, axis=(0, 1)) print("Sum axes 0 and 1:\n", sum_0_1.numpy())
copy
Note
Nota

Existen muchas otras operaciones de reducción en TensorFlow, pero funcionan bajo los mismos principios.

Tarea

Swipe to start coding

Contexto

Eres un científico de datos en una agencia de investigación meteorológica. Se te ha proporcionado un tensor que contiene lecturas meteorológicas de varias ciudades durante varios días. El tensor tiene la siguiente estructura:

  • Dimensión 1: representa diferentes ciudades;
  • Dimensión 2: representa diferentes días.
  • Cada entrada en el tensor es una tupla de (temperature, humidity).

Objetivo

  1. Calcular la temperatura promedio para cada ciudad durante todos los días.
  2. Calcular la humedad máxima registrada en todas las ciudades para cada día.

Nota

En este tensor, el primer número de cada tupla representa la temperatura (en grados Celsius) y el segundo número representa la humedad (en porcentaje) para ese día y ciudad.

Solución

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 1. Capítulo 12
single

single

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

Suggested prompts:

Can you explain what the axis parameter means in more detail?

How does keepdims=True affect the output shape?

Can you show more examples with higher-dimensional tensors?

close

Awesome!

Completion rate improved to 5.56

bookOperaciones de Reducción

Desliza para mostrar el menú

Operaciones de Reducción

En el ámbito de las operaciones con tensores, existen numerosas tareas en las que es necesario reducir las dimensiones de nuestros datos, ya sea resumiéndolos a lo largo de uno o más ejes. Por ejemplo, si tenemos un tensor 2D (una matriz), una operación de reducción puede calcular un valor para cada fila o columna, resultando en un tensor 1D (un vector). TensorFlow ofrece un conjunto de operaciones para lograr esto y, en este capítulo, exploraremos las operaciones de reducción más utilizadas.

Suma, Media, Máximo y Mínimo

TensorFlow ofrece los siguientes métodos para estos cálculos:

  • tf.reduce_sum(): calcula la suma de todos los elementos del tensor o a lo largo de un eje específico;
  • tf.reduce_mean(): calcula la media de los elementos del tensor;
  • tf.reduce_max(): determina el valor máximo en el tensor;
  • tf.reduce_min(): encuentra el valor mínimo en el tensor.
12345678910111213141516171819
import tensorflow as tf tensor = tf.constant([[1., 2., 3.], [4., 5., 6.], [7., 8., 9.]]) # Calculate sum of all elements total_sum = tf.reduce_sum(tensor) print("Total Sum:", total_sum.numpy()) # Calculate mean of all elements mean_val = tf.reduce_mean(tensor) print("Mean Value:", mean_val.numpy()) # Determine the maximum value max_val = tf.reduce_max(tensor) print("Maximum Value:", max_val.numpy()) # Find the minimum value min_val = tf.reduce_min(tensor) print("Minimum Value:", min_val.numpy())
copy
Note
Nota

El método .numpy() se utilizó para convertir los tensores en arreglos de NumPy, ofreciendo una presentación visual más clara de los números al mostrarlos.

Operaciones a lo largo de ejes específicos

Los tensores pueden tener múltiples dimensiones, y en ocasiones se desea realizar reducciones a lo largo de un eje específico. El parámetro axis permite especificar qué eje o ejes se desean reducir.

  • axis=0: realiza la operación a lo largo de las filas (resultando en un vector columna);
  • axis=1: realiza la operación a lo largo de las columnas (resultando en un vector fila);
  • Es posible reducir a lo largo de varios ejes simultáneamente proporcionando una lista al parámetro axis;
  • Cuando se reduce el rango del tensor, se puede usar keepdims=True para conservar la dimensión reducida como 1.

Para un tensor 2D (matriz):

1234567891011121314151617181920
import tensorflow as tf tensor = tf.constant([[1., 2.], [3., 4.], [5., 6.]]) # Calculate the sum of each column col_sum = tf.reduce_sum(tensor, axis=0) print("Column-wise Sum:", col_sum.numpy()) # Calculate the maximum of each row col_max = tf.reduce_max(tensor, axis=1) print("Row-wise Max:", col_max.numpy()) # Calculate the mean of the whole tensor (reduce along both directions) # Equivalent to not specifying the axis at all total_mean = tf.reduce_mean(tensor, axis=(0, 1)) print("Total Mean:", total_mean.numpy()) # Calculate the mean of the whole tensor (keeping reduced dimensions) total_mean_dim = tf.reduce_mean(tensor, axis=(0, 1), keepdims=True) print("Total Mean (saving dimensions):", total_mean_dim.numpy())
copy
Note
Nota

Cuando ejecutas una operación de reducción a lo largo de un eje específico, esencialmente eliminas ese eje del tensor, agregando todos los tensores dentro de ese eje elemento por elemento. El mismo efecto se mantiene para cualquier número de dimensiones.

Así es como se ve para un tensor 3D:

12345678910111213141516171819
import tensorflow as tf tensor = tf.constant([ [[1, 2], [3, 4]], [[5, 6], [7, 8]], [[9, 10], [11, 12]] ]) # Calculate the sum along axis 0 sum_0 = tf.reduce_sum(tensor, axis=0) print("Sum axis 0:\n", sum_0.numpy()) # Calculate the sum along axis 1 sum_1 = tf.reduce_sum(tensor, axis=1) print("Sum axis 1:\n", sum_1.numpy()) # Calculate the sum along axes 0 and 1 sum_0_1 = tf.reduce_sum(tensor, axis=(0, 1)) print("Sum axes 0 and 1:\n", sum_0_1.numpy())
copy
Note
Nota

Existen muchas otras operaciones de reducción en TensorFlow, pero funcionan bajo los mismos principios.

Tarea

Swipe to start coding

Contexto

Eres un científico de datos en una agencia de investigación meteorológica. Se te ha proporcionado un tensor que contiene lecturas meteorológicas de varias ciudades durante varios días. El tensor tiene la siguiente estructura:

  • Dimensión 1: representa diferentes ciudades;
  • Dimensión 2: representa diferentes días.
  • Cada entrada en el tensor es una tupla de (temperature, humidity).

Objetivo

  1. Calcular la temperatura promedio para cada ciudad durante todos los días.
  2. Calcular la humedad máxima registrada en todas las ciudades para cada día.

Nota

En este tensor, el primer número de cada tupla representa la temperatura (en grados Celsius) y el segundo número representa la humedad (en porcentaje) para ese día y ciudad.

Solución

Switch to desktopCambia al escritorio para practicar en el mundo realContinúe desde donde se encuentra utilizando una de las siguientes opciones
¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 1. Capítulo 12
single

single

some-alt